Skip to content

VINODvoid/pluffy

Repository files navigation

Pluffy

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.

Screenshots

Signed-out landing

Landing (Signed Out)

Signed-in landing

Landing (Signed In)

Features

  • Next.js App Router (15): File-based routing, server components, edge-ready.
  • Type-safe APIs with tRPC: End-to-end types using @trpc/server and 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.

Tech Stack

  • Next.js, React 19
  • TypeScript
  • Tailwind CSS v4
  • tRPC 11 + @tanstack/react-query 5
  • Prisma ORM
  • Clerk (auth)
  • Inngest (jobs)

Getting Started

Prerequisites

  • Node.js 18+ (recommended 20+)
  • A PostgreSQL database (local or hosted)

1) Clone and install

git clone <your-fork-or-repo-url> pluffy
cd pluffy
npm install

2) Environment variables

Copy .env.example to .env and fill in your values:

cp .env.example .env

Required variables:

  • DATABASE_URL: PostgreSQL connection string
  • GEMINI_API_KEY: Google Gemini API key for AI code generation
  • E2B_API_KEY: E2B API key for sandboxed code execution
  • NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY and CLERK_SECRET_KEY: Clerk authentication keys
  • NEXT_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.

3) Database setup

Generate Prisma client (done automatically on install) and run migrations:

npx prisma migrate dev

Optionally seed data (if you add a seeder):

npx prisma db seed

4) Start the dev server

npm run dev

Visit http://localhost:3000.

Scripts

  • npm run dev: Start Next.js in development
  • npm run build: Production build
  • npm run start: Start production server
  • npm run lint: Lint

Project Structure

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)

Development Notes

  • Prisma client is generated postinstall. If you change schema.prisma, re-run npx prisma generate and create a migration.
  • The generated/prisma folder exists to support environments where bundling the Prisma engine is desirable; prefer @prisma/client imports exposed there when running at the edge.
  • Clerk routes are mounted under src/app/(home)/sign-in and sign-up segments.
  • tRPC HTTP handler is under src/app/api/trpc/[trpc]/route.ts.
  • Inngest endpoint is under src/app/api/inngest/route.ts.

Deployment

Vercel (Recommended)

See DEPLOYMENT.md for comprehensive deployment instructions.

Quick steps:

  1. Deploy to Vercel
  2. IMPORTANT: Install the Inngest Vercel Integration - this is required for background jobs to work
  3. Configure all environment variables in Vercel dashboard
  4. Redeploy

Self-Hosting

  • 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_KEY and INNGEST_SIGNING_KEY
  • Run npm run build and npm run start

License

This project is licensed under the terms of the license in LICENSE.

Acknowledgements

  • 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.

About

Platform like Lovable

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages