Build comprehensive financial models for startups and SaaS businesses with multi-year projections, scenario comparisons, and professional financial statement generation.
- Multi-year financial projections (1-20 years, default 5)
- Cash Flow, P&L, and Balance Sheet generation
- Multiple scenarios (base/best/worst/custom)
- SaaS metrics (MRR, ARR, CAC, LTV, churn)
- Professional Excel export
- Employee and loan tracking
- Real-time calculations with Decimal.js (no floating-point errors)
- Framework: Next.js 15 (App Router) with React 19
- Language: TypeScript 5.6 (strict mode)
- Styling: Tailwind CSS 4.x + shadcn/ui
- State: Zustand 5
- Forms: React Hook Form 7 + Zod 4
- Database: Neon PostgreSQL + Drizzle ORM
- Financial: Decimal.js 10 + Finance.js 4
- Visualization: Recharts 3 + TanStack Table 8
- Export: SheetJS (xlsx) 0.18
- Node.js 20+
- Neon account (free tier: https://neon.tech)
-
Clone the repository:
git clone https://github.com/Nitzan94/financemodel.git cd financemodel -
Install dependencies:
npm install
-
Set up Neon database:
- Create a new project at https://console.neon.tech
- Copy your connection string
-
Create
.envfile:cp .env.example .env
-
Add your Neon connection string to
.env:DATABASE_URL=postgresql://user:password@host/database?sslmode=require -
Push database schema:
npm run db:push
-
Start development server:
npm run dev
npm run db:generate- Generate migrations from schema changesnpm run db:push- Push schema directly to database (development)npm run db:migrate- Run migrations (production)npm run db:studio- Open Drizzle Studio (database GUI)
npm run dev- Start dev server with Turbopacknpm run build- Build for productionnpm run start- Start production servernpm run lint- Run ESLintnpm run typecheck- Run TypeScript compiler
financemodel/
├── app/ # Next.js app router
├── components/
│ └── ui/ # shadcn/ui components
├── features/ # Feature-based modules
│ ├── projections/
│ ├── assumptions/
│ └── scenarios/
├── lib/
│ ├── db/ # Database schema & client
│ ├── financial/ # Calculation engine
│ ├── services/ # API services
│ └── utils/ # Utilities
├── stores/ # Zustand stores
└── types/ # TypeScript types
See GitHub Issues for the full implementation plan.
ISC