Stack Innovations / Services / Web / Jamstack

Build once. Serve from everywhere.

Jamstack isn't a framework — it's an architecture. Prerender the markup, source content from headless APIs, push the JavaScript only where it earns its weight, and let a global CDN do the serving. Same idea whether the build runs Astro, SvelteKit, Next.js, or any of the others we ship.

01 — In numbers

Five years building
at the edge.

Each stat is a fragment of the netlify.toml/vercel.json configs that ship every Jamstack project we run. Hover any to see the section. Counters scrub with scroll.

[build] · projects
0+ Jamstack sites shipped
[build]
  command = "pnpm build"
  publish = "dist"
  shipped  = 120
[edge] · regions
0+ Edge PoPs in production
[edge]
  cdn     = "global"
  regions = 330
  cache   = "tagged"
[ttfb] · p50
0ms p50 time to first byte
[metrics.ttfb]
  p50 = 38
  p95 = 92
  budget = 200
[origin] · servers
0 Origin servers to babysit
[origin]
  servers = 0
  vms     = 0
  pagers  = "silent"
02 — What we build

A full-stack Jamstack practice.

Click an entry on the left — the active capability opens in the deploy dashboard. Each pane is a working pattern we've shipped.

Stack · Jamstack production ~/stack/jamstack/netlify.toml build · ready J S
build/output SSG · ISR · SWR · on-demand SHIPPED

Prerender & ISR, HTML before the request.

uid: build.prerender updated: 09:42 today by: stack-eng
summary · what this gets you

Marketing, content, and catalogue routes are prerendered at build. Long-tail and frequently-edited routes use ISR / on-demand revalidation. Dynamic data still works — we just don't make every request render from scratch on the origin.

items · what we customize
  • Per-route prerender config
  • ISR with tag-based revalidation
  • SWR for catalogues / search
  • Stream-on-demand for slow tail
  • Build-time content fetching
headless Sanity · Contentful · Strapi · Storyblok CURATED

Headless CMS, content at the speed of editors.

uid: cms.headless updated: yesterday by: stack-eng
summary

We pick the CMS for the editor first, the developer second. Sanity for schema-driven structured content, Contentful for enterprise multi-channel, Strapi for self-hosted control, Ghost for editorial. Webhook on publish → build → deploy.

items
  • Schema modeled with the editor
  • Live preview wired to a draft branch
  • Webhook → on-demand revalidate
  • Image CDN · on-the-fly transform
  • Migration scripts from monolith
edge/functions workers · edge-runtime · deno DEPLOYED

Edge functions, compute at the request boundary.

uid: edge.functions updated: 2d ago by: stack-eng
summary

The bits that have to be dynamic — auth checks, A/B routing, geo-redirects, rate limiting, CSRF, request rewriting, lightweight personalization — live as edge functions. Cold starts under 10ms, no provisioning, billed per request. The rest of the site stays static.

items
  • Auth check · cookie → headers
  • Geo redirect · country → locale
  • A/B routing · bucketed by hash
  • Rate limit · KV-backed
  • Web standards Request / Response
forms / auth native forms · identity · oauth SECURE

Forms, auth, identity, without standing up a server.

uid: auth.forms updated: 4d ago by: stack-eng
summary

Native form submissions land directly with the host (Netlify Forms, Cloudflare Pages Functions). Auth via Auth.js / Clerk / Supabase / your IdP. Identity, sessions, and CSRF handled with HTTP-only cookies. No app server to operate, no auth library half-rolled.

items
  • Native form submission + spam guard
  • Auth.js / Clerk / Supabase
  • HTTP-only cookie sessions
  • Magic link / OAuth / SSO
  • RBAC at the edge function
ci/cd git push → deploy · preview · rollback ATOMIC

Build & deploy CI, git push is the deploy command.

uid: ci.deploy updated: 1w ago by: stack-eng
summary

Every push gets a deploy preview at a URL. Every merge atomically swaps production. Every previous deploy is one click to roll back. Lighthouse, Pa11y, link-check, visual-diff run in CI — the build fails before bad code reaches the CDN.

items
  • Deploy previews per PR
  • Atomic swap, instant rollback
  • Lighthouse / Pa11y / link-check
  • Visual regression diff
  • Branch deploys for staging / QA
cache tags · revalidate · on-demand purge TAGGED

Cache & invalidation, tagged, never guessed.

uid: cache.tags updated: 2w ago by: stack-eng
summary

Every response has a cache tag tied to the content type that produced it. When an editor publishes, only the affected tags revalidate — a homepage edit doesn't blow away the whole catalogue. SWR for catalogue routes, immutable for static assets, no caching for auth-shaped responses.

items
  • Per-content-type cache tags
  • Webhook → tag purge
  • SWR for hot-path routes
  • Immutable hashed assets
  • Cache-aware response headers
03 — pick → architecture

Pick four parts.
Architecture rebuilds.

There's no single "Jamstack" framework — there's a shape: a generator, a content source, a host, and the add-ons that make it real. Pick one of each below; the architecture diagram, the metric estimates (TTFB, build time, monthly cost, Lighthouse), and the recipe name all rebuild live. Each option links into the dedicated service page if we have one for it.

generatorAstro
  • ASAstro
  • SKSvelteKit
  • NXNext.js
  • NUNuxt
  • RXRemix
  • GBGatsby
  • HGHugo
  • 11Eleventy
contentSanity
  • SASanity
  • CFContentful
  • STStrapi
  • SBStoryblok
  • GHGhost
  • WPWordPress (headless)
  • SHShopify (Storefront API)
  • MDMarkdown / MDX
hostCloudflare Pages
  • CFCloudflare Pages
  • VCVercel
  • NLNetlify
  • FYFly.io
  • AWAWS S3 + CloudFront
  • GPGitHub Pages
add-onsedge fns · forms · search
  • Edge functions
  • Forms
  • Search (Algolia / Typesense)
  • Auth (Auth.js / Clerk)
  • Payments (Stripe)
  • Analytics (Plausible / PostHog)
  • i18n (multi-locale)
  • Comments (Giscus)
architecture your stack
source Sanity webhook on publish
git push
build Astro CI · prerender
upload
edge / CDN Cloudflare 330 PoPs · workers
request
user browser prerendered HTML
add-ons in this build edge functions forms search auth payments analytics i18n comments
estimates your stack · production
p50 ttfb 38ms
build time 42s
monthly cost $28
lighthouse 100/100
looks like A content-rich marketing site — calm builds, fast pages.
04 — Why us

Stack Innovations vs the typical Jamstack build.

Same architecture, two very different ways it ends up shipping. Eight criteria your team will actually feel — in plain English, with the receipts.

  1. 01

    Performance

    × Typical
    72/100
    Lighthouse, mobile

    "It's static, so it's fast" — until 800 KB of unused JS hydrates the marketing page.

    Stack Innovations
    100/100
    Lighthouse, mobile

    Lighthouse 100s as a starting line. CI fails the build on any regression.

  2. 02

    Where it runs

    × Typical
    1 origin
    one server, one region
    origin CDN edge fns ISR

    Everyone in the world hits one box in one region. SLA is whatever that box can manage.

    Stack Innovations
    330 PoPs
    CDN at the origin
    CDN edge fns ISR tagged cache

    Static at the edge, dynamic at edge functions, dynamic-dynamic on origin only when there's no choice.

  3. 03

    Content workflow

    × Typical
    ?
    "ping a dev to publish"

    Editors ship through devs. Publish-day Slack threads, manual cache busts, frequent "did it go live?" questions.

    Stack Innovations
    webhook
    CMS publish → live

    Headless CMS publish triggers an on-demand revalidate. Affected pages refresh; the rest stay cached.

  4. 04

    SEO

    × Typical
    0/4
    coverage at launch
    × Sitemap × JSON-LD × hreflang × OG images

    Bolted on as a follow-up engagement. The "we'll get to it" version of SEO.

    Stack Innovations
    4/4
    shipped at launch
    Sitemap JSON-LD hreflang OG images

    Sitemaps, structured data, hreflang, Open Graph images — live on day one.

  5. 05

    Deploy & rollback

    × Typical
    manual
    SSH and a checklist
    CI build Preview Atomic Rollback Branch envs

    "Don't deploy on Friday" is in the runbook. Rollbacks need a meeting.

    Stack Innovations
    git push
    deploy is the workflow
    CI build Preview Atomic Rollback Branch envs

    Every PR has a preview URL. Every merge is atomic. Every previous deploy is one click to revert.

  6. 06

    Migration

    × Typical
    ×
    "out of scope"
    Old monolith New site

    You move the content yourself. URLs break, search rankings drop, editors hate you.

    Stack Innovations
    mapped
    redirects + SEO continuity
    WP / Drupal / Sitecore Jamstack

    Source connector, content port, redirect map, dry-run, cutover. SEO continuity holds.

  7. 07

    Editor handoff

    × Typical
    0/4
    onboarding artifacts
    × Walkthroughs × Role setup × Dry runs × In-app help

    "Good luck with the admin." Editors learn by trial and error in production.

    Stack Innovations
    4/4
    shipped with the site
    Loom walkthroughs Role setup Dry-run publishes In-context help

    Editors leave training feeling fluent. First publish goes through without a Slack ping.

  8. 08

    Care plan

    × Typical
    0 mo
    post-launch coverage
    launch silence

    Hand-off, then silence. Six months later your stack is two majors behind.

    Stack Innovations
    monthly cadence
    launch m+1 m+2

    Monthly version bumps, perf monitoring, real Slack channel. Features, not tickets.

05 — recipes we ship

Four working
stack recipes.

Pick a project shape on the left — the exact stack we'd reach for shows on the right, with links into the dedicated service page for each piece. These aren't theoretical: they're the four recipes we ship most often, with the trade-offs that pushed us toward each.

06 — How it ships

Six weeks,
build to edge.

  1. w 01

    Audit + stack pick

    Inventory routes + content shape. Pick the SSG, the headless CMS, the host, the add-ons. Lighthouse + TTFB baseline.

  2. w 02

    Schema + scaffold

    Model the content with the editor. Scaffold the SSG + adapter, wire CMS, layouts, design tokens, baseline meta.

  3. w 02–04

    Routes + edge functions

    Pages, layouts, components, ISR routes, edge functions for auth/geo/AB. Forms wired to the host's native handler.

  4. w 04

    Performance + SEO

    Image pipeline, prefetch tuning, JSON-LD, sitemap, OG images. Cache tags wired, edge regions pinned.

  5. w 06

    Migration + launch

    Content migration, redirect map. Build against the target host, dry-run on staging, atomic deploy, DNS cutover.

  6. Care plan

    Stack upgrades, perf monitoring, route-level Lighthouse, tag-purge audit, monthly review.

Booking Q3 2026 · Avg engagement: 6 weeks · Reply within 24h