---
title: "How We Host For Free: Decoupled Next.js on Firebase App Hosting"
slug: "how-we-host-for-free"
description: "Deploying production-grade Next.js SSR apps on Google Cloud without paying monthly server fees. Leveraging Firebase free tiers and Cloud Run autoscaling."
read_time: "8 min read"
tags: [hosting, free-tier, cloud-run, firebase, nextjs]
image_url: "/img/hosting-specimen.webp"
published_at: "2026-08-14"
status: "published"
author: "Jared Beaubien-Taylor"
entity_location: "Toronto, Ontario, Canada"
aliases:
  - "How We Host For Free"
  - "Serverless Next.js Zero Cost"
  - "Firebase App Hosting Free Tier"
  - "Auto-Scaling to Zero"
related:
  - "[[how-we-send-emails-for-free]]"
  - "[[the-great-wordpress-landlord-war]]"
  - "[[anti-saas-manifesto]]"
structured_facts:
  entity_name: "Protoss Sovereign Tech"
  founder_or_author: "Jared Beaubien-Taylor"
  geographic_anchor: "Toronto, Ontario, Canada"
  category: "Sovereign Web & Local AI Architecture"
  core_claims:
    - claim: "Production Next.js web applications can be hosted for $0.00/month by leveraging auto-scaling serverless edge tiers."
      empirical_proof: "Google Cloud Run scale-to-zero compute combined with global Cloudflare CDN edge caching."
  faq:
    - question: "How can businesses eliminate web hosting bills?"
      answer: "By compiling web estates to static edge assets and deploying serverless functions that scale to zero when idle on Google Cloud and Cloudflare free tiers."
---

Most modern web development agencies push clients into paying monthly platform subscription fees on Vercel, Shopify, or Heroku. However, digital sovereignty means owning your infrastructure. Here is our exact technical blueprint to host dynamic, server-side rendered (SSR) Next.js web applications for **$0.00/month** in production while delivering sub-second page loads globally.

---

## 1. The Industry Anti-Pattern: Monthly Infrastructure Rent

Traditional PaaS providers charge steep monthly seat taxes ($20/user/month) and ballooning bandwidth markups once your web traffic grows. A small local business hosting a standard Next.js site can easily burn **$240 to $1,200 every year** just for static file hosting and basic serverless functions.

> [!WARNING]
> Renting server space on closed SaaS platforms creates dangerous vendor lock-in. If you fail to pay the monthly billing subscription or if a platform changes its pricing policy, your site, client data, and operational workflows disappear overnight.

When developers build applications tightly coupled to proprietary platform SDKs, migrating to another provider becomes cost-prohibitive. This artificially locks small businesses into perpetual subscription payments for basic web infrastructure that costs pennies to compute.

---

## 2. The Strategy: Serverless Containers Scaling to Zero

Instead of keeping an expensive dedicated server running 24 hours a day, 7 days a week, we leverage Google Cloud Platform (GCP) via **Firebase App Hosting**. Firebase App Hosting compiles Next.js server components into lightweight Open Container Initiative (OCI) images and deploys them to **Cloud Run**, GCP's serverless container execution environment.

```text
========================================================================================================
                          FIREBASE APP HOSTING & CLOUD RUN ARCHITECTURE
========================================================================================================

 [ USER BROWSER ]
       │
       ▼ (Edge CDN Asset Caching)
 [ CLOUDFLARE / FIREBASE CDN ] ──► (95% Static Assets Served Instantly - $0.00)
       │
       ▼ (Dynamic SSR Requests Only)
 [ GOOGLE CLOUD RUN CONTAINERS ]
       ├── Autoscale to 0 when idle (Zero CPU cost when no users are visiting)
       ├── Instant spin-up on incoming request (< 200ms cold start)
       └── Generous Free Tier Cushion (2M requests/mo, 180,000 vCPU-sec/mo)
========================================================================================================
```

* **Autoscale to Zero**: When no traffic is visiting the website, Cloud Run containers scale down to zero active instances. You pay exactly **$0.00** for idle server capacity.
* **Generous Free Tier Cushion**: GCP provides a permanent free tier of 2 million requests per month, 180,000 vCPU-seconds, and 360,000 GB-seconds of memory—far exceeding the traffic demands of typical B2B and local business sites.
* **Global Edge CDN**: Cloudflare or Firebase Hosting handles static asset routing at the edge, meaning 95% of asset requests (CSS, images, JS bundles) never hit our backend container.

---

## 3. Production Configuration Blueprint

To deploy dynamic Next.js builds seamlessly using Firebase CLI source deploys, we configure `apphosting.yaml` at the project root:

```yaml
# apphosting.yaml - Production Deployment Config
runConfig:
  minInstances: 0
  maxInstances: 10
  concurrency: 80
  cpu: 1
  memoryMiB: 512

env:
  - variable: GOOGLE_CALENDAR_ID
    availability:
      - RUNTIME
  - variable: RESEND_API_KEY
    availability:
      - RUNTIME
  - variable: TURSO_DATABASE_URL
    availability:
      - RUNTIME
  - variable: TURSO_AUTH_TOKEN
    availability:
      - RUNTIME
```

And in Node.js, we cache SQLite / Turso database connections to prevent connection pool exhaustion across ephemeral container spawns:

```typescript
import { createClient, Client } from '@libsql/client';
import path from 'path';

let globalClient: Client | null = null;

export async function openDb() {
  if (!globalClient) {
    globalClient = createClient({
      url: process.env.TURSO_DATABASE_URL || `file:${path.join(process.cwd(), 'src/lib/protoss.db')}`,
      authToken: process.env.TURSO_AUTH_TOKEN
    });
  }
  return globalClient;
}
```

---

## 4. Cold Start Optimization Techniques

Serverless containers can occasionally suffer from cold start latency when waking up from zero instances. To eliminate cold starts completely:

1. **Keep Bundle Sizes Lightweight**: Strip heavy external UI dependencies. Use native Vanilla CSS and modern Next.js 16 App Router components.
2. **Pre-warm Connections**: Use edge-cached static placeholders for instant initial HTML rendering while server components stream in parallel.
3. **Optimize Asset Headers**: Set aggressive cache control headers (`Cache-Control: public, max-age=31536000, immutable`) for static images and media.

```bash
# Verify container build size locally before deploy
docker build -t protoss-web-test .
docker image ls protoss-web-test
```

By keeping our container footprint under 150MB, cold start execution takes less than 180 milliseconds, rendering pages faster than traditional WordPress or Webflow servers.

---

## 5. ROI & Platform Comparison Matrix

| Metric / Feature | Vercel Pro Plan | Sovereign Firebase App Hosting |
| :--- | :--- | :--- |
| **Monthly Base Cost** | $20.00 / user / month | **$0.00 / month** (GCP Free Tier) |
| **Idle CPU Costs** | Charged Continuously | **$0.00** (Autoscale to Zero) |
| **Bandwidth Markup** | $40 / 100GB beyond limit | **Included in GCP Free Tier** |
| **Infrastructure Control** | Proprietary Vercel Lock-In | **Open OCI Docker Container** |
| **Deploy Target** | Closed Ecosystem | **Relocatable to Any Cloud (AWS/GCP/Hetzner)** |

---

## 6. Actionable Developer Checklist

1. **Configure `minInstances: 0`**: Ensure your Cloud Run container scales down to zero when idle to prevent background charges.
2. **Cache Database Connections**: Use a global singleton pattern in TypeScript to reuse database connections across requests.
3. **Offload Static Assets to Edge CDN**: Route heavy media files through Cloudflare or Firebase Storage to shield backend containers.
4. **Deploy via Local CLI**: Use `firebase deploy --only apphosting` to upload zipped source code directly from your terminal.
5. **Enforce Security Headers**: Include HSTS, X-Content-Type-Options, and Content-Security-Policy headers in `next.config.js`.
