Skip to Content
DocsSelf-HostingSelf-Hosted Setup

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 dev

Everything 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 push

Or 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-key

3. Deploy to Vercel

npx vercel

Set 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}/.

Last updated on