Skip to content

Repository files navigation

Compare Rough Cloud Hosting Costs

A rough multi-cloud cost comparison web app for exploring directional compute, storage, bandwidth, and managed database estimates across major cloud providers before deployment.

Important disclaimer: Planning estimates only. This app is a comparison model, not an invoice-grade billing predictor. It uses local pricing JSON, with optional public AWS/Azure refresh scripts, and does not require private cloud credentials or billing data. Always verify final numbers with official provider pricing before buying, migrating, or making financial decisions.

Who It’s For

  • Founders and small teams comparing hosting options before launching
  • Students learning how cloud cost categories affect a bill
  • Consultants/MSPs preparing rough client planning reports
  • Anyone who wants a quick way to spot whether compute, storage, bandwidth, or databases are driving a scenario

v1 Features

  • Compare six cloud providers:
    • AWS
    • Azure
    • Google Cloud
    • Oracle Cloud
    • IBM Cloud
    • DigitalOcean
  • Estimate compute, storage, bandwidth, managed database, monthly, and yearly costs
  • Region selector with three modeled regional buckets
  • AWS pricing refresh script powered by AWS public offer files
  • Azure pricing refresh script powered by the Azure Retail Prices API
  • Shareable scenario links using URL-encoded scenario state; do not include secrets, project IDs, or billing account details in public share links
  • CSV export for spreadsheet workflows
  • PDF export via browser print/save-as-PDF
  • Clean landing section explaining who the tool is for
  • Methodology page explaining assumptions, omissions, pricing-source context, and privacy boundaries
  • Clear estimator disclaimer in the UI and README
  • Highlight the Lowest Cost provider
  • Highlight Best Value using a simple balanced-score heuristic
  • Scenario Builder with starter scenarios and saved custom scenarios
  • Workload description builder for everyday workload descriptions
  • Budget Mode with monthly target and over/under-budget flags
  • Reduce Estimate button that targets the largest cost driver
  • Example profiles for quickly testing different buyer profiles
  • Beginner glossary tooltips for common cloud-cost terms
  • Cost story cards that explain what is driving the estimate
  • Responsive chart visualization with Recharts
  • Local/provider-refreshed pricing metadata in data/pricing/

Starter Scenarios

Included starter scenarios:

  • Student lab server
  • Small business website
  • Backup storage
  • Data workstation

Included example profiles:

  • Maya — founder choosing where to host a launch site
  • Theo — student managing a lab budget
  • Rin — data analyst planning a weekend workstation

Tech Stack

  • Next.js
  • React
  • TypeScript
  • Tailwind CSS
  • Recharts

Run Locally

npm install
npm run dev

Open http://localhost:3000.

Build

npm run build

Lint

npm run lint

Test

npm test

The automated suite covers:

  • pricing-source badge metadata and source taxonomy
  • workload-description parsing heuristics
  • share payload sanitization and legacy region compatibility
  • local scenario persistence with browser localStorage
  • derived estimator view-model helpers
  • estimator region recalculation, shared-scenario loading, local save/delete, and malformed share-link fallback

Recommended local verification before committing:

npm test
npm run lint
npm run build

Refresh Real Pricing

AWS pricing can be refreshed from AWS public offer files:

npm run update-prices:aws

Azure pricing can be refreshed from Microsoft’s public Azure Retail Prices API:

npm run update-prices:azure

The scripts update local provider JSON with real USD retail rates for the mapped VM, storage, bandwidth, and database storage SKUs. Google Cloud’s official Billing Catalog API requires an API key or authenticated Google Cloud project before its adapter can be refreshed.

Pricing source taxonomy used in the app:

  • public-refresh — mapped from public provider pricing refreshes
  • sample-local — local comparison data for rough estimation
  • manual-curated — local curated comparison values maintained in-repo

Project Structure

app/                 Next.js app routes and metadata
components/          Main estimator UI
data/pricing/        Sample provider pricing JSON
lib/costs/           Cost calculation engine and types

No Secrets / No Cloud Access

This project is intentionally portfolio-safe:

  • No real cloud credentials
  • No environment variables required
  • No private billing exports, project IDs, or billing account IDs required
  • No paid services required
  • Pricing data is local JSON
  • AWS and Azure pricing can be refreshed from public pricing sources by local scripts
  • Public share links should contain only scenario assumptions, never private account details

How Best Value Works

The app identifies the lowest-cost provider by raw monthly total. It also identifies Best Value with a transparent heuristic that favors low monthly cost while slightly penalizing bills dominated by one cost category. This is intended as a transparent comparison model.

Why this exists

This project demonstrates cloud budgeting concepts, frontend state management, data modeling, charting, and clean portfolio-safe engineering without requiring access to any real cloud account.

Methodology

The app models rough monthly compute, storage, outbound bandwidth, and managed database storage costs. It does not fully model managed database instance compute, request charges, IOPS, backups, snapshots, load balancers, NAT gateways, taxes, support plans, reserved/committed discounts, or negotiated pricing.

See /methodology in the app for the user-facing methodology and privacy explanation.

About

Compare cloud compute costs across providers and workload profiles.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages