Installation
Get Zutra running locally in under 5 minutes.
Prerequisites
You need:
- Node.js 20+ (LTS recommended) —
node -vto check - pnpm 9+ — install with
npm i -g pnpm - Git — for cloning
A GitHub account helps if you want to fork first.
Clone the repo
git clone https://github.com/Juanalfaros/zutra-saa.git my-saas
cd my-saas
Or fork on GitHub first, then clone your fork:
git clone https://github.com/<your-username>/zutra-saa.git my-saas
cd my-saas
Install dependencies
pnpm install
This installs Astro, Tailwind v4, the Phosphor icon set, and all other deps in package.json. Takes ~30 seconds on a clean cache.
Configure environment
Copy the example file and edit the values you need:
cp .env.example .env
Only PUBLIC_SUPABASE_URL, PUBLIC_SUPABASE_ANON_KEY, PUBLIC_STRIPE_KEY, and STRIPE_SECRET_KEY are required if you want the auth forms and pricing CTAs to work end-to-end. The build will succeed with empty .env — every variable has a safe default. See the Environment Variables reference for the full list.
Start the dev server
pnpm dev
The server boots at http://localhost:4321. Astro will print:
┃ Local http://localhost:4321/
┃ Network use --host to expose
Hot module reload is on — every file save triggers a refresh.
Verify it works
Open http://localhost:4321 in your browser. You should see:
- The homepage with the hero, features, pricing, and FAQ sections
- The dark industrial design with the floating accent picker (bottom-right)
- The nav with all menu items rendering
Click around — /pricing, /about, /blog, /es/pricing, /es/about (Spanish mirror) should all return 200.
Run the tests
pnpm test # unit tests (vitest)
pnpm lint # eslint
pnpm typecheck # astro check + tsc
All three should pass on a fresh clone. If something fails, see Troubleshooting.
Build for production
pnpm build
Output goes to dist/. Since this project uses the @astrojs/node adapter with mode: 'standalone', you can run the production server with:
node ./dist/server/entry.mjs
See Deploy to Vercel or Deploy to Cloudflare for hosted deployment guides.
Next steps
- Configuration Reference — what each
src/config/*.tsdoes - Environment Variables — full list with defaults
- Project Architecture — where things live and why