A personal finance management application built with modern web technologies.
- Runtime: Bun (v1.x)
- Database: SQLite with Kysely ORM
- FE/BE: Hono JSX with TypeScript
- Styling: Tailwind + DaisyUI
- Testing: Jest + Bun Test Runner
- Deployment: Dockerized deployment to Fly.io
- Database: Kysely (type-safe SQL query builder)
- State Management: Alpine.js + HTMX
- Authentication: Session-based authentication with JWT tokens. Sessions are stored in cookies, and JWT tokens are used for stateless verification of user identity.
.
├── src/
│ ├── components/ # Reusable React components
│ ├── client/ # Client-side code compiled separetely
│ ├── consts/ # Application constants
│ ├── db/ # Database configuration and migrations
│ ├── middleware/ # Server middleware
│ ├── pages/ # Page components
│ ├── routes/ # Route handlers
│ ├── services/ # Business logic services
│ ├── styles/ # Global CSS styles
│ ├── types/ # TypeScript type definitions
│ └── utils/ # Utility functions
├── tests/ # Test suites
├── static/ # Static assets
└── scripts/ # Development scripts
For local development:
- Install dependencies:
bun install- Run database migrations:
bun run migrate:up- Start development server:
bun run dev- Run tests:
bun test- Build Docker image:
docker build -t maney .- Deploy to Fly.io:
fly deployMIT