Getting Started
Getting Started
Prereqs, setup, and local configuration you can reuse.
Jump hereKnowledge Base
A practical notebook of what I am actively building, why those choices were made, and how we keep systems usable as experiments move into stable flow.
Getting Started
Prereqs, setup, and local configuration you can reuse.
Jump hereCore Architecture
How the platform layers, data boundaries, and flow boundaries fit together.
Jump hereIntegrations
Supabase, Clerk, Stripe, worker, and cache patterns in practice.
Jump hereSecurity & Scale
Trust boundaries, monitoring, and reliability practices.
Jump hereUse this as a fast map when you need exact implementation context.
Start here
Prerequisites
Get local copy running
Installation
Secrets and service keys
Configuration
Vercel-ready path
Deployment
Layered model
Architecture Overview
Org-level safety
Multi-tenancy
Clerk + context
Authentication
State that lasts
Database Model
RLS and org isolation
Supabase Setup
Identity boundaries
Clerk Access
Async execution
Trigger.dev Workflows
Safety and speed
Upstash Cache
Trust, logs, resilience
Security and Scale
Active lanes
In progressZalaStack core lab notes
In progressFRAME YYC content and execution workflows
In progressOwned Cloud operations and reporting reliability
In progressCalgary Compute Lab infrastructure experiments
Before diving in, make sure your environment and service accounts are set so the local path matches the public-safe model used on this site.
Before you begin:
Clone and install dependencies:
git clone https://github.com/mizoz/zalastack-website.git
cd zalastack-website
pnpm installCopy environment values and configure core services:
cp .env.example .env.local
NEXT_PUBLIC_SUPABASE_URL=your_supabase_url
NEXT_PUBLIC_SUPABASE_ANON_KEY=your_anon_key
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=your_clerk_key
CLERK_SECRET_KEY=your_clerk_secret
STRIPE_SECRET_KEY=your_stripe_secret
STRIPE_WEBHOOK_SECRET=your_webhook_secret
TRIGGER_DEV_SECRET_KEY=your_trigger_key
UPSTASH_REDIS_REST_URL=your_upstash_url
UPSTASH_REDIS_REST_TOKEN=your_upstash_tokenDesign goal is to keep flow clear and failure-safe:
Control layer first, then workflow, then service and observability layers. If you can explain each layer to your future self, the system is mature enough to ship.
Scope all critical records by `org_id`, and enforce boundaries in policies and server-side reads to avoid cross-tenant drift.
Clerk handles identity and context so access checks are explicit and repeatable. Protected routes should fail fast when context is missing.
Use predictable schemas for state transitions and events so workflows remain inspectable in time order.
Stripe is used where transactional events need durable and auditable handoff into background jobs or internal logs.
Upstash provides lightweight control on endpoints and metadata checks without adding heavy infrastructure overhead.
Deploy through Vercel branches and use environment-specific previews for validation. Keep infra config in the project and rotate shared credentials on major changes.
Move to the operational layer or back to the lab notes to keep this build evolving.