startup
intermediate
Modern Jamstack: Next.js + Supabase
Solution Components
Architecture Visual
%% Autogenerated infra-node-jamstack
graph TD
classDef standard fill:#1e293b,stroke:#38bdf8,stroke-width:1px,color:#e5e7eb;
classDef c-actor fill:#1e293b,stroke:#e5e7eb,stroke-width:1px,stroke-dasharray: 5 5,color:#e5e7eb;
classDef c-compute fill:#422006,stroke:#fb923c,stroke-width:1px,color:#fed7aa;
classDef c-database fill:#064e3b,stroke:#34d399,stroke-width:1px,color:#d1fae5;
classDef c-network fill:#2e1065,stroke:#a855f7,stroke-width:1px,color:#f3e8ff;
classDef c-storage fill:#450a0a,stroke:#f87171,stroke-width:1px,color:#fee2e2;
classDef c-security fill:#450a0a,stroke:#f87171,stroke-width:1px,color:#fee2e2;
classDef c-gateway fill:#2e1065,stroke:#a855f7,stroke-width:1px,color:#f3e8ff;
classDef c-container fill:#422006,stroke:#facc15,stroke-width:1px,color:#fef9c3;
subgraph platform ["Managed Platform"]
direction TB
supabase_auth("<img src="/icons/inframap/compute.png" width="32" height="32" /><br/><b>Supabase Auth</b><br/><i>service</i><br/><span style='font-size:0.8em'>JWT Management</span>")
class supabase_auth c-compute
supabase_db[("<img src="/icons/inframap/database.png" width="32" height="32" /><br/><b>Postgres (Supabase)</b><br/><i>database</i><br/><span style='font-size:0.8em'>Primary Data Store</span>")]
class supabase_db c-database
edge_func("<img src="/icons/inframap/compute.png" width="32" height="32" /><br/><b>Edge Functions</b><br/><i>function</i><br/><span style='font-size:0.8em'>Custom Logic</span>")
class edge_func standard
end
%% Orphans
user(("<img src="/icons/inframap/user.png" width="32" height="32" /><br/><b>User / Browser</b><br/><i>actor</i>"))
class user c-actor
cdn(("<img src="/icons/inframap/edge.png" width="32" height="32" /><br/><b>Edge Network (CDN)</b><br/><i>gateway</i><br/><span style='font-size:0.8em'>Vercel / Cloudflare</span>"))
class cdn c-network
frontend("<img src="/icons/inframap/compute.png" width="32" height="32" /><br/><b>Next.js / Astro App</b><br/><i>service</i><br/><span style='font-size:0.8em'>SSR / ISR</span>")
class frontend c-compute
content[("<img src="/icons/inframap/database.png" width="32" height="32" /><br/><b>Headless CMS</b><br/><i>database</i><br/><span style='font-size:0.8em'>Sanity / Contentful</span>")]
class content c-database
%% Edges
cdn -.-> frontend
frontend -.-> supabase_auth
frontend -.-> supabase_db
frontend -.-> content
edge_func -.-> supabase_db
Modern Jamstack: Next.js + Supabase
This architecture leverages the "Global Edge" for content delivery and "Serverless" for logic. It requires zero server maintenance and scales to zero efficiently.
Core Components:
- CDN / Edge Network: Cloudflare / Vercel Edge for static assets and cached HTML.
- Frontend: Next.js or Astro app utilizing hydration for interactivity.
- BaaS (Backend as a Service): Supabase provides Auth, Database (Postgres), and Realtime subscriptions.
- Edge Functions: Custom business logic runs in V8 isolates close to the user.
Tech Stack
| Component | Technology |
|---|---|
| Segment | startup |
| Deployment | serverless |
| Language | typescript |
| Orchestrator | none |
| Database | postgres-managed |
| Storage | s3-compatible |
Cloud Cost Estimator
Dynamic Pricing Calculator
$0 / month
MVP (1x) Startup (5x) Growth (20x) Scale (100x)
MVP Level
Compute Resources
$ 15
Database Storage
$ 25
Load Balancer
$ 10
CDN / Bandwidth
$ 5
* Estimates vary by provider & region