Can I vibecode Indy?

price variesyou'd save no subscriptionbuild time not a true replacement; consolation build in one to two dayscategory finance-accountingreplaced by 0 people
NOT REALLY
MOATcompliance regulationintegrationsbrand trust

Do not mistake the interface for the product. Indy's durable value is banking, compliance, trust, which a solo one-shot build cannot reproduce responsibly. The prompt therefore builds only the closest honest personal consolation tool.

In-List Ad$79/30 days
promote your product in the vibecoded list

The Build Prompt

copy it and go build
ready to paste · 2,984 chars
Build a detailed, self-hosted clone inspired by Indy focusing on its core freelance business tools capabilities. Use exactly this stack: Next.js 15 (App Router), TypeScript, Tailwind CSS, SQLite, and Drizzle ORM.

**DATA MODEL & SCHEMA SPECIFICS**
Implement the following core entities in SQLite with Drizzle ORM:
- `clients`: `id`, `name`, `email`, `company`, `created_at`.
- `projects`: `id`, `client_id`, `name`, `status` (active, completed), `budget`.
- `invoices`: `id`, `project_id`, `issue_date`, `due_date`, `status` (draft, sent, paid), `total_amount`.
- `tasks`: `id`, `project_id`, `title`, `description`, `status` (todo, in_progress, done).
- `time_entries`: `id`, `task_id`, `duration_minutes`, `date`.
Ensure all relations have cascading deletes where appropriate. Use foreign key constraints.

**SCREENS & UX PATTERNS**
1. **Dashboard (`/dashboard`)**: A masonry layout with quick stats cards (Outstanding Invoices, Active Projects, Hours Tracked this week).
2. **Client/Project CRM (`/clients`)**: A data table with column sorting, pagination, and expandable rows to view associated projects and invoices.
3. **Invoice Builder (`/invoices/new`)**: A WYSIWYG form layout resembling the final invoice document, allowing users to add line items, adjust taxes, and set discounts dynamically.
4. **Task Kanban & Timer (`/tasks`)**: A drag-and-drop Kanban board for project tasks, featuring a persistent global floating widget for starting/stopping a time tracker.

**STEP-BY-STEP USER JOURNEYS**
- **Journey 1 (Onboarding)**: User logs in, adds their first Client via a modal, and creates a new Project.
- **Journey 2 (Work Tracking)**: User navigates to the Kanban board, moves a task to "In Progress", and starts the global timer widget. Later, they stop the timer, automatically logging a `time_entry`.
- **Journey 3 (Billing)**: User generates an invoice from the project. The app automatically pulls in billable time entries as line items. The user reviews the totals and marks it as 'sent'.
- **Journey 4 (Reporting)**: User visits the Reports tab to view a generated income summary, exporting it as a CSV.

**TECHNICAL SPECIFICATIONS & PROTOCOLS**
- Use Server Actions for all form submissions and data mutations.
- Implement optimistic UI updates using React's `useOptimistic` hook, especially for Kanban drag-and-drop.
- For data fetching, use React Suspense boundaries with fallback skeleton loaders.
- Invoice generation: Use a library like `jspdf` or `react-pdf` to generate downloadable PDF files directly from the invoice data.
- Data import: Allow users to upload CSV files to bulk-import clients and historical invoices.

Start from an empty folder, create the complete project, and ensure the default mode is single-user and private. Do not add analytics or telemetry. Put all secrets in `.env`. Validate untrusted input with Zod. Write unit tests for the core logic and one end-to-end smoke test using Playwright. Run the tests and build before finishing.
In-List Ad$79/30 days
promote your product in the vibecoded list

What you lose

  • Hosted infrastructure and managed operations from Indy
  • The original service's mature integrations and ecosystem
In-List Ad$79/30 days
promote your product in the vibecoded list
Share on X ->Your vote helps rank the vibecoded list.

Questions

5 answers