Pluffy AI is a platform that enables users to build web applications from a prompt. It provides a modern developer experience with authentication, type-safe APIs, database integration, background jobs, and a clean component architecture. The application includes features for managing projects and messages, usage tracking, and supports rapid development with a robust tech stack.
Signed-out landing
Signed-in landing
- Next.js App Router (15): File-based routing, server components, edge-ready.
- Type-safe APIs with tRPC: End-to-end types using
@trpc/serverand React Query. - Authentication with Clerk: Drop-in sign-in/sign-up flows and user management.
- Database with Prisma: PostgreSQL via Prisma schema and migrations.
- Background jobs with Inngest: Event-driven functions for async work.
- UI with shadcn/ui + Radix: Accessible components and utility-first styling.
- Usage tracking: Basic metering primitives for projects.
- Next.js, React 19
- TypeScript
- Tailwind CSS v4
- tRPC 11 + @tanstack/react-query 5
- Prisma ORM
- Clerk (auth)
- Inngest (jobs)
- Node.js 18+ (recommended 20+)
- A PostgreSQL database (local or hosted)
git clone <your-fork-or-repo-url> pluffy
cd pluffy
npm installCopy .env.example to .env and fill in your values:
cp .env.example .envRequired variables:
DATABASE_URL: PostgreSQL connection stringGEMINI_API_KEY: Google Gemini API key for AI code generationE2B_API_KEY: E2B API key for sandboxed code executionNEXT_PUBLIC_CLERK_PUBLISHABLE_KEYandCLERK_SECRET_KEY: Clerk authentication keysNEXT_PUBLIC_APP_URL: Your app URL (http://localhost:3000 for local dev)
For local development, INNGEST_EVENT_KEY and INNGEST_SIGNING_KEY can be left empty.
Generate Prisma client (done automatically on install) and run migrations:
npx prisma migrate devOptionally seed data (if you add a seeder):
npx prisma db seednpm run devVisit http://localhost:3000.
npm run dev: Start Next.js in developmentnpm run build: Production buildnpm run start: Start production servernpm run lint: Lint
src/
app/ # App Router pages and routes
components/ # Reusable UI components (incl. shadcn/ui)
generated/prisma/ # Generated Prisma client (committed for edge)
hooks/ # Client hooks
inngest/ # Inngest client, functions, utils
lib/ # Server utilities: db, usage, helpers
modules/ # Feature modules (home, projects, messages, usage)
trpc/ # tRPC router, client, server wiring
types.ts # Shared types
prisma/
schema.prisma # Data model
migrations/ # Migration history
public/ # Static assets (including screenshots)
- Prisma client is generated postinstall. If you change
schema.prisma, re-runnpx prisma generateand create a migration. - The
generated/prismafolder exists to support environments where bundling the Prisma engine is desirable; prefer@prisma/clientimports exposed there when running at the edge. - Clerk routes are mounted under
src/app/(home)/sign-inandsign-upsegments. - tRPC HTTP handler is under
src/app/api/trpc/[trpc]/route.ts. - Inngest endpoint is under
src/app/api/inngest/route.ts.
See DEPLOYMENT.md for comprehensive deployment instructions.
Quick steps:
- Deploy to Vercel
- IMPORTANT: Install the Inngest Vercel Integration - this is required for background jobs to work
- Configure all environment variables in Vercel dashboard
- Redeploy
- Works on platforms that support Next.js 15
- Ensure all required env vars are set in your host environment
- For Inngest, manually configure
INNGEST_EVENT_KEYandINNGEST_SIGNING_KEY - Run
npm run buildandnpm run start
This project is licensed under the terms of the license in LICENSE.
- Built with Next.js and the App Router.
- UI primitives from Radix and shadcn/ui.
- Data layer powered by Prisma.
- Auth by Clerk.
- Background jobs by Inngest.

