MiCasa is a personal and household finance manager focused on biweekly planning.
It helps you organize incomes, expenses, budgets, wallets, and card activity by fortnight so you can plan cash flow with more precision.
- Why MiCasa
- Core Features
- Tech Stack
- Getting Started
- Environment Variables
- Available Scripts
- Project Architecture
- Quality and CI
- Releases
- Roadmap
- Contributing
- License
Most budgeting apps treat months as a single block. MiCasa uses fortnights (FIRST: days 1-15, SECOND: days 16-end) as the core planning unit, which better matches real-life pay cycles and recurring obligations.
MiCasa also supports both individual and shared household contexts, so financial data can belong to a single user or a house.
- Fortnight-first planning for expenses, incomes, and budget allocation (recurrent budgets and budget periods).
- Dashboard with monthly and period summaries, chart insights, liquidity projection (~180 days), and upcoming obligations (cards and loans).
- Multi-context ownership (user vs house) with role-based house membership (
OWNER,ADMIN,MEMBER). - Wallets and transfers across payment method types (cash, debit, credit, department-store cards).
- Credit cards — statement cycles, payments, imports (Mercado Pago, CA Departamental, CA Efectivo, DiDi Card) with rollback.
- Loans (Préstamos) — schedules, wallet or payroll payment sources, integration with expenses, liquidity, dashboard, and transactions.
- Pantry — receipt upload, product catalog, shopping carts, expense ↔ receipt linking.
- Tasks — lists, habits, routines (household productivity alongside finance).
- Categories with optional icons across expense UI and API.
- Framework: Next.js 16 (App Router), React 19, TypeScript
- Database: PostgreSQL with Prisma 7
- Auth: NextAuth v5 (JWT strategy)
- UI: Tailwind CSS v4, Radix UI, shadcn patterns
- Validation and Forms: Zod v4, react-hook-form
- Tables and Charts: TanStack Table, Recharts
- Testing: Vitest
See CONTRIBUTING.md and docs/agents/workflow.md for PR checks and Cursor skills (/ship-feature, /prd).
git clone <your-repo-url>
cd micasa
npm installCreate a .env file in the project root:
DATABASE_URL="postgresql://..."
NEXTAUTH_SECRET="replace-with-a-strong-secret"
NEXTAUTH_URL="http://localhost:3000"npx prisma generatenpm run devOpen http://localhost:3000.
DATABASE_URL: PostgreSQL connection stringNEXTAUTH_SECRET: NextAuth signing secretNEXTAUTH_URL: Base URL for auth callbacks and session behavior
npm run dev: start local development server (webpack mode)npm run dev:turbo: start local development server (Turbopack mode)npm run build: production buildnpm run start: run production servernpm run lint: run ESLintnpm test: run Vitest test suite (vitest run)npm run validate:dashboard-ui: validate dashboard metric strip consistency rulesnpm run backfill:pantry-products: backfill pantry products from receipt linesnpm run ci: run local CI pipeline (validate:dashboard-ui,prisma generate, tests, build)
High-level flow:
- Server-rendered pages and layouts fetch from API routes.
- Client-side mutations use typed fetch helpers in
src/lib/api. - Route handlers validate payloads with Zod schemas.
- Prisma queries are scoped through owner context (
userorhouse).
Important directories:
src/app: App Router pages and route handlerssrc/components: UI and feature componentssrc/lib/finance: domain services (expenses, wallets, loans, liquidity projection, etc.)src/lib/server: owner context, statement import parsers, pantry processingsrc/schemas: Zod schemas per resourceprisma: Prisma schema (~31 models), migrations, and seed script
Further reading: docs/finance-architecture.md, docs/finance-invariants.md, docs/agents/domain.md.
Core domain concept:
FortnightPeriod.FIRST: day 1-15FortnightPeriod.SECOND: day 16-end of month
GitHub Actions runs CI on push to main/master and on pull requests with these checks:
- Prisma client generation
- Dashboard UI consistency validation
- Unit tests
- Next.js production build
Before opening a PR, run:
npm run ci- Changelog:
CHANGELOG.md - Release checklist:
docs/release-process.md - GitHub releases:
https://github.com/Jorg3L3on/micasa/releases
Near-term focus:
- Harden loan ↔ expense sync and liquidity edge cases.
- More test coverage for finance services and API routes.
- Security policy and architecture diagrams for contributors.
- Public demo assets and screenshots.
See CONTRIBUTING.md for setup, PR checks, and the Cursor agent workflow (/ship-feature, /prd).
- Open an issue describing the bug or feature.
- Create a focused branch (
feat/<slug>per docs/agents/deployment.md). - Run
npm run cibefore opening a pull request.
This project is licensed under the MIT License. See LICENSE for details.