Quickstart
This guide walks you through setting up folksbase on your local machine.Prerequisites
Before you start, make sure you have:- Node.js 24+ — download here
- pnpm 10+ — install with
npm install -g pnpm - A Neon Postgres database — create one for free
- A Supabase project — create one for free (for authentication)
- Upstash Redis — caching and rate limiting
- Vercel Blob — CSV file storage
- Inngest — background job processing
- Anthropic API key — AI-powered CSV column mapping
1. Clone and Install
2. Configure Environment Variables
Copy the example files and fill in your values:apps/api/.env — backend configuration:
| Variable | Description |
|---|---|
DATABASE_URL | Neon Postgres connection string |
SUPABASE_URL | Your Supabase project URL |
SUPABASE_PUBLISHABLE_KEY | Supabase anon/public key |
SUPABASE_SECRET_KEY | Supabase service role key |
ENCRYPTION_KEY | 64-char hex string for AES-256-GCM encryption |
apps/web/.env — frontend configuration:
| Variable | Description |
|---|---|
NEXT_PUBLIC_API_URL | http://localhost:3001/api |
NEXT_PUBLIC_SUPABASE_URL | Your Supabase project URL |
NEXT_PUBLIC_SUPABASE_PUBLISHABLE_KEY | Supabase anon/public key |
See the Environment Variables page for the full list of configuration options.
3. Set Up the Database
Push the Drizzle schema to your Neon database:4. Start Development
Run all apps in dev mode with a single command:| App | URL |
|---|---|
| Web (Next.js) | http://localhost:3000 |
| API (Hono) | http://localhost:3001 |
5. Verify It Works
- Open http://localhost:3000 in your browser
- Sign up or log in through Supabase Auth
- Try importing a CSV file or creating a contact manually
- Check the dashboard for stats and recent activity