Skip to content

Instantly share code, notes, and snippets.

@bedwards
Last active October 26, 2025 12:37
Show Gist options
  • Select an option

  • Save bedwards/485849de07edf1788a956c4c2fb24a11 to your computer and use it in GitHub Desktop.

Select an option

Save bedwards/485849de07edf1788a956c4c2fb24a11 to your computer and use it in GitHub Desktop.
Forever free

Project Architecture Overview (Hobby / Portfolio App)

  • Overall Goals
    • Full control and visibility (minimal platform magic)
    • Stack combines static front end + edge logic + SaaS commerce + multiple data stores
    • Transparent architecture where internals are visible in the UI
    • No user auth; treat every visit as one global user

  • Front End
    • GitHub Pages (for static hosting of front end)
      • Hosts React (or other framework) single-page application
      • Versioned, static deployment from Git
    • Alternative static + serverless hosts (for reference)
      • Netlify Free plan: static + built-in functions, generous quotas
      • Vercel Hobby plan: static + serverless, built-in previews, generous quotas
      • Cloudflare Pages: static + function bindings, daily free request caps / bandwidth / build minutes / invocation ceilings

  • Edge Logic / Back End
    • Cloudflare Workers
      • Custom API surface in Workers
      • GraphQL endpoint via small runtime‐aware solution like Helix
        • Helix: fetch-native, standards-based runtime support, works well in Workers, same Request/Response objects, minimal bundle
        • Apollo Server: heavier, Node-centric, more abstractions/plugins/federation, larger cold-start and bundle size
      • Proxy and sign calls to Shopify Storefront/Admin GraphQL APIs
      • Serve GraphQL requests to Neon Postgres
    • Other serverless/container options (for reference)
      • Google Cloud Run: containerized (Docker) service, ~2 million free requests + CPU/RAM time
      • AWS Lambda: always-free tier (~1 million requests/month + compute allowance)
      • Azure Container Apps: free grant of requests + compute, but after that costs apply

  • Data Stores
    • MongoDB Atlas
      • M0 “forever free” shared cluster (with documented rate limits)
      • Live/ephemeral activity state, high-churn data
      • Note: Change Streams and advanced features may not be forever free
    • Neon Postgres
      • Free plan available, suspend compute when idle
      • Structured, durable data: configuration, metadata, analytics
    • Supabase (Postgres + auth/storage) — alternative for structured data
    • MySQL-style managed (PlanetScale) — hobby tier retired April 2024

  • Commerce Platform
    • Shopify Liquid API (JSON mode)
      • Shopify handles products, variants, inventory, carts, checkout
      • You use Storefront and Admin GraphQL APIs, not Shopify-rendered HTML
      • Free development stores via Partner account for unlimited testing

  • Container / Orchestration Reference
    • Docker: runs on Google Cloud Run, Azure Container Apps
    • AWS Fargate: no perpetual free tier
    • VM: e.g., Google e2-micro always-free for container hosting
    • Kubernetes: rarely fits always-free; e.g., GKE charges node usage, Oracle Cloud offers free Ampere A1 VMs but control-plane may cost

  • Hyperscalers / Free Tier Infrastructure
    • Google Cloud Always Free: Cloud Run + one e2-micro VM
    • Azure: 65+ always free services including Static Web Apps
    • AWS: always-free Lambda tier
    • Cloudflare: free edge network for Workers + Pages

  • Excluded / Not Suitable for Free Hobby Stack
    • Apex on Salesforce: Developer Edition useful for learning, but not general-purpose hosting
    • SuiteScript on NetSuite: requires paid subscription or developer tenant, not free runtime you control
    • Boomi: paid iPaaS, time-limited trials, not free always

  • Separation of Concerns Summary
    • GitHub Pages + React: Static front end, UI layer
    • Cloudflare Workers: API glue, routing, caching, GraphQL surface
    • Shopify Liquid APIs: Commerce backend (source of truth for product/order/inventory)
    • Neon Postgres: Structured relational data (metadata, analytics, configuration)
    • MongoDB Atlas: Live, high-churn activity and signals, experimentation state
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment