Stop writing proposals from scratch.
Clent is a SaaS tool that streamlines client intake for freelancers and agencies. Collect project requirements via structured, shareable forms, instantly generate polished proposals using AI, and export them as client-ready PDFs — all from one dashboard.
- Custom Intake Forms — Build structured questionnaires tailored to your services. Share a unique public link with clients; no account required on their end.
- AI-Powered Proposal Generation — Turn client responses into a polished, professional proposal draft in seconds, powered by Google Gemini.
- PDF Export — Export finalized proposals as clean, client-ready PDFs instantly.
- Submissions Dashboard — All client responses stay organized in one place, linked to the form that created them.
- Proposals Tracker — Manage proposals across
DRAFTandFINALstatuses. - Authentication — Secure sign-up/sign-in via Supabase Auth (email/password).
- Free-tier & Plan Support — Built-in user plan tracking to support freemium or paid tiers.
| Layer | Technology |
|---|---|
| Framework | Next.js 16 (App Router) |
| Language | TypeScript |
| Styling | Tailwind CSS v4 + tw-animate-css |
| UI Components | Radix UI + shadcn/ui conventions |
| Animations | Framer Motion |
| Auth | Supabase Auth + @supabase/ssr |
| Database | PostgreSQL (via Supabase) |
| ORM | Prisma 7 |
| AI | Google Gemini (@google/genai) |
| PDF Generation | pdf-lib, pdfkit, pdfmake |
| Icons | Lucide React |
User → Form → Question
↓
Submission → Answer
↓
Proposal
- User — Linked to a Supabase auth account; tracks plan (
free/ paid). - Form — A set of intake questions; has a unique public URL (
publicId). - Question — Supports
TEXT,TEXTAREA,EMAIL, andSELECTtypes. - Submission — A client's response to a form, including optional name/email.
- Answer — Snapshot of each question label + value at submission time.
- Proposal — AI-generated content tied to a submission; status:
DRAFTorFINAL.
- Node.js ≥ 18
- A Supabase project (for auth + database)
- A Google Gemini API key
git clone <your-repo-url>
cd clentnpm installCreate a .env.local file in the project root:
# Supabase
NEXT_PUBLIC_SUPABASE_URL=your_supabase_project_url
NEXT_PUBLIC_SUPABASE_ANON_KEY=your_supabase_anon_key
SUPABASE_SERVICE_ROLE_KEY=your_supabase_service_role_key
# Database (PostgreSQL connection string from Supabase)
DATABASE_URL=your_postgresql_connection_string
# Google Gemini
GEMINI_API_KEY=your_gemini_api_keynpx prisma migrate devnpm run devOpen http://localhost:3000 in your browser.
clent/
├── app/
│ ├── (auth)/ # Sign-in / Sign-up pages
│ ├── dashboard/ # Protected dashboard (forms, submissions, proposals, settings)
│ ├── f/ # Public form submission pages (/f/[publicId])
│ └── api/ # API route handlers
├── components/
│ ├── landing/ # Landing page sections (Hero, HowItWorks, Benefits, etc.)
│ ├── dashboard/ # Dashboard UI components
│ ├── forms/ # Form builder & public form components
│ ├── proposals/ # Proposal viewer & generator components
│ └── ui/ # Base UI primitives (Button, Dropdown, Tooltip…)
├── lib/
│ ├── auth/ # Auth server actions & session helpers
│ ├── submissions/ # Submission server actions & queries
│ ├── supabase/ # Supabase client factories (browser, server, admin)
│ └── db.ts # Prisma client singleton
└── prisma/
└── schema.prisma # Database schema
- Create an intake form — Build a structured form with custom questions from the dashboard.
- Share the link — Send your client a unique public URL. They fill it out once; no signup needed.
- Generate & export the proposal — Clent feeds the responses to Gemini AI, generates a clean proposal, and lets you export it as a PDF.
| Command | Description |
|---|---|
npm run dev |
Start the development server |
npm run build |
Build for production |
npm run start |
Start the production server |
npm run lint |
Run ESLint |
npm run format |
Format code with Prettier |
Clent is built for freelancers, consultants, and small agencies who:
- Write proposals regularly for clients
- Want client inputs organized before drafting
- Need professional, polished proposals without the manual grind
- Want a repeatable workflow that gets better over time
Private — all rights reserved.