Newsletter
Join the Community
Subscribe to our newsletter for the latest news and updates
Static-first Astro framework for brand sites, Sanity CMS, and read-only Shopify retail catalogs. 0.x preview.

Software factory built on eve: AI agents work each stage of the development loop, and people make the judgment calls.
ZUnfurl is an open-source, static-first brand-site framework built on Astro, with optional Sanity CMS and a read-only Shopify retail catalog foundation.
ZUnfurl is an Apache-2.0 licensed, static-first website framework that packages four delivery profiles — A1 (pure static brand site), A2 (static site with a contact form), B (brand site with Sanity CMS), and C (retail catalog foundation with Sanity CMS and a read-only Shopify Storefront API mapping) — into a single configurable template repository. It takes a gcss.project.json config (project name, brand, domain, profile, locales) as input and produces a static Astro storefront, an optional Sanity Studio workspace, a Cloudflare Worker for contact forms and webhooks, and GitHub Actions workflow files. The framework is authored by Noodle Freeman and is currently at version 0.3.0-preview.1, explicitly labeled as a preview that does not promise production SLAs.
static-brand, cms-brand, and retail profiles; the default is cms-brand so new projects don't require Shopify, webhooks, or catalog permissions until explicitly switched.npm run preview only serves built assets and is not a Sanity draft preview.preview.yml runs CI without production secrets; deploy.yml only triggers manually from main, requires PRODUCTION_DEPLOYMENT_ARMED=true, and rejects templateMode=true..env.example scopes variables to the selected profile (A1 needs no external services; B and C require Sanity; C adds Shopify).test:phase5 covers all four profiles).init:project with a config file, enforce dry-run and audit, then hand off with docs; customers own all production accounts.retail profile to map Shopify products and media into a static storefront, letting editors manage product content in Sanity without touching code.Create a private repository from the public template (via GitHub's Use this template), clone it, and run npm run init:project against a client config. The CLI first audits and generates a dry-run plan; only after review does the --write flag apply controlled changes, followed by npm run project:scan for verification. Deployments are manual from main with explicit production arming, and the framework does not auto-deploy on push.
Yes, the source code is open source under the Apache-2.0 license. There is no paid tier or hosted SaaS; you deploy the framework to your own GitHub, Cloudflare, Sanity, and Shopify accounts.
No. The retail profile only maps product catalog and media facts via the Shopify Storefront API in read-only mode. Cart, checkout, payments, orders, tax, shipping, and fulfillment are deliberately not part of the template.
The repository requires Node 22.12.0 or Node 24, and npm 11.9.0 as pinned by the lockfile. Development commands use npm ci and npm run dev.
Not yet. Authenticated editorial draft preview is on the roadmap. Local astro preview and PR CI checks only serve the built static output and do not include draft-aware content preview.
The customer owns all external accounts (GitHub, Cloudflare, domain, Sanity, Shopify, Resend). The maintainer works with member-level access during development and removes access after handoff, as documented in the project startup handoff guide.