Leasy is an enterprise-grade property management system designed to streamline tenant management, lease tracking, utility readings, and invoice generation.
- Monorepo: Nx
- Frontend: Next.js, Tailwind CSS, Shadcn UI
- Backend: Hono, Cloudflare Workers
- Database: Neon (PostgreSQL), Drizzle ORM
- Auth: Clerk
- Package Manager: pnpm
- apps/
web: Next.js frontend application.api: Hono API server (Cloudflare Worker).etl: Data ingestion and seeding scripts.
- libs/
db: Database schema, connection, and migrations.domain: Shared domain types and business logic.validators: Shared Zod schemas for validation.
- Dashboard: Overview of active tenants, leases, and pending invoices.
- Tenant Management: Onboard and manage tenants and their lease agreements.
- Utility Tracking: Bulk input for electricity and water readings with multi-meter support.
- Automated Invoicing: Generate monthly invoices with automatic VAT calculations (Korean tax rules).
- PDF Export: Download professional invoices instantly.
- Node.js v20+
- pnpm v9+
pnpm installEnsure you have the necessary .env files configured for:
apps/web: Clerk keys, API URL.apps/api: Database URL, Clerk keys.libs/db: Database URL.
To start both the frontend and backend in development mode:
pnpm dev# Lint all projects
pnpm lint
# Typecheck all projects
pnpm typecheck
# Build all projects
pnpm buildThe project uses GitHub Actions for CI/CD. The workflow is defined in .github/workflows/ci.yml and runs linting, typechecking, and building on every push to main.