# How to Vibe Code Your Own Indy (and Stop Paying for It)

> All-in-one CRM and business management for freelancers

- Site: https://weareindy.com
- Category: Productivity SaaS
- Verdict: **Solid side project** (68/100 vibecodeable)
- Estimated effort: 2-3 weeks part-time

## Verdict

Build a personal-use subset of Indy to handle your own invoicing, contracts, and task tracking without paying for Pro tier, but expect heavy lifting on document state machines and client portal access control.

Indy is essentially nine CRUD apps strapped together into a unified dashboard. As a solo developer vibecoding this, you can knock out the database schemas, task boards, and invoice generators in a few intense sessions using Next.js. However, you will hit friction when wiring up the contract signature audit trails, document versioning, and strict relational constraints between clients, projects, and invoices. Skipping real payment gateways in favor of a manual 'Mark as Paid' toggle saves you weeks of webhook debugging.

### What you can't replicate

- Pre-vetted legal contract templates reviewed by attorneys
- Built-in network directory of active freelancers
- Native ongoing integrations with external enterprise software

## What it does

Consolidates freelance administrative workflows into a single dashboard: proposals, legally binding contracts, project management, time tracking, task boards, and online invoicing with Stripe and PayPal payments.

### Core features

- Relational CRM (People, Projects, Clients)
- Interactive Proposal and Contract Editor with digital signatures
- Invoice Generator with PDF export and simulated payment webhooks
- Time Tracker with billable hours reporting
- Task board and calendar view
- Client file sharing and approval comments
- LLM-powered AI writing assistant for contracts and proposals
- Custom lead generation form builder

## The business

### Pricing

- Free: $0 — Basic tools with strict monthly caps
- Pro Bundle: $12.50/mo — Unlimited workflow automation for freelancers

### Funding

$1.1M raised.
- Seed (September 2014) - $1.1M
Investors: Undisclosed early-stage venture capital

Founded 2014.
Team size: ~45 employees.

## The hard parts

- Managing complex relational document state machines (Draft -> Sent -> Viewed -> Signed -> Paid)
- Implementing secure client portal access control lists (ACLs) separate from internal dashboards
- Handling bi-directional Google Calendar sync and webhook reconciliation
- Building a flexible layout/document editor for legally binding contracts and proposals

## How to vibe code Indy

### Prerequisites

- Node.js (free): Runtime environment for the Next.js full-stack application
- GitHub (free): Source code repository and deployment bridge
- OpenAI Account (pay-as-you-go): API keys for the AI digital assistant contract/proposal writer

### Recommended AI tools

- Claude Code: Handles multi-file scaffolding of complex database models, API routes, and UI components in one flow
- Cursor: Ideal for iterative refinement of complex form editors, client portal views, and Tailwind styling

### Stack

- Frontend: Next.js
- Backend: Next.js Server Actions
- Database: Turso
- Auth: better-auth
- Payments: Stripe
- Other: Vercel AI SDK, Tailwind CSS, shadcn/ui

### Hosting

- Vercel (Hosting the Next.js full-stack web application and serverless endpoints): $0-20/mo
- Turso (Edge SQLite database storing clients, projects, invoices, and time logs): $0/mo

### Build guide

1. **Scaffold Project and Database Schema** — Initialize the Next.js project with Tailwind CSS, shadcn/ui, Turso database connection, and better-auth configuration.

```
Create a new Next.js project with TypeScript, Tailwind CSS, and App Router. Set up Turso for database connectivity using Drizzle ORM. Configure better-auth with email/password authentication. Create database schemas for Users, Clients, Projects, Tasks, TimeEntries, Invoices, Contracts, and Proposals with proper relational foreign keys, timestamps, and status enums (draft, sent, signed, paid). Provide clean migration scripts and a seed script for local testing.
```

2. **Build CRM and Project Management Dashboard** — Implement the core dashboard views for managing clients (People), projects, and associated task boards.

```
Build the CRM and Project Management module in Next.js App Router. Create a /dashboard/clients page listing clients with contact details, linked projects, and historical invoices. Create a /dashboard/projects/[id] view showing project status, task lists with drag-and-drop or status toggles, and an embedded timer widget for tracking billable hours. Ensure server actions handle all CRUD operations securely with user ownership validation.
```

3. **Build Proposal, Contract, and Invoice Editors** — Develop document generation modules supporting dynamic fields, status transitions, and PDF printing.

```
Implement the document generation system for Proposals, Contracts, and Invoices at /dashboard/proposals, /dashboard/contracts, and /dashboard/invoices. Build a clean document editor supporting line items, tax calculations, issue dates, due dates, and custom text blocks. Add state machine logic allowing documents to transition from draft to sent to signed/paid. Include a printable CSS view for exporting documents to PDF or sharing public viewing links with clients.
```

4. **Integrate AI Assistant and Client Portals** — Add LLM-powered drafting tools using Vercel AI SDK and public client-facing portal pages for approvals and signing.

```
Integrate the Vercel AI SDK to power a 'Digital Assistant' panel inside the proposal and contract editors, allowing users to prompt the model to generate professional project scope clauses and payment terms. Build a secure, unauthenticated client portal view at /portal/[token] where external clients can view shared project files, approve proposals, type their name to legally sign contracts, and view invoice payment statuses.
```

5. **Time Tracking, Calendar, and Polish** — Add time-tracking widgets, calendar scheduling views, and final UI polish across all modules.

```
Build a dedicated Time Tracker widget that allows users to record billable hours against specific projects and convert logged time directly into an invoice line item. Create a Calendar view (/dashboard/calendar) mapping out project deadlines and task due dates. Refine the navigation sidebar, dashboard summary metrics cards, and responsive layout across mobile and desktop breakpoints.
```

### Cost vs paying

**Starting costs (one-time):**

- Custom domain name (optional): $12 one-time
- AI Coding Assistant subscription: $20 one-time
- Total: ~$32 one-time

**Ongoing costs (monthly):**

- Vercel Hobby Hosting: $0/mo
- Turso Database: $0/mo
- OpenAI API usage for AI Assistant: ~$2/mo
- Total: ~$2/mo

- Paying for the SaaS instead: $12.50/mo
- Build time: 35-50 hours
- AI tool credits: $20 one-time (Claude Pro)
- Break-even: 3 months

## Sources

- [Indy Official Homepage](https://weareindy.com)
- [Indy Pricing Page](https://weareindy.com/pricing)
- [PitchBook - Indy Company Profile](https://pitchbook.com/profiles/company/108915-18)