Self-Hosted Setup
DriftGrid can run entirely on your own infrastructure. The core app is MIT-licensed.
Local Only (No Cloud)
The simplest setup — no database, no accounts, no cloud:
git clone https://github.com/jsbzy/driftgrid.git
cd driftgrid && npm install
npm run devEverything runs on your filesystem. Projects live in projects/. No data leaves your machine.
Cloud Setup (Vercel + Supabase)
To enable sharing, accounts, and cloud sync:
1. Supabase Project
Create a project at supabase.com . Then run the migrations:
# From the driftgrid directory
npx supabase db pushOr manually copy the SQL from supabase/migrations/ into the Supabase SQL editor.
2. Environment Variables
Create .env.local:
NEXT_PUBLIC_SUPABASE_URL=https://your-project.supabase.co
NEXT_PUBLIC_SUPABASE_ANON_KEY=your-anon-key
SUPABASE_SERVICE_ROLE_KEY=your-service-role-key3. Deploy to Vercel
npx vercelSet the same environment variables in the Vercel dashboard (Settings → Environment Variables).
4. Custom Domain
Add your domain in Vercel (Settings → Domains). Point your DNS CNAME to cname.vercel-dns.com.
5. Stripe (Optional)
For paid tiers, add Stripe keys:
NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY=pk_live_...
STRIPE_SECRET_KEY=sk_live_...Create products and prices in Stripe, then update the price IDs in the pricing page.
Database Schema
DriftGrid uses 3 tables:
- profiles — extends Supabase Auth with tier (free/pro) and Stripe metadata
- share_links — tokens for public share URLs
- client_comments — anonymous comments from clients on shared designs
All tables use Row Level Security. See supabase/migrations/ for the full schema.
Storage
Project files (manifest, HTML, thumbnails) are stored in a Supabase Storage bucket called projects, scoped to {userId}/{client}/{project}/.