moneyflow Svelte Themes

Moneyflow

Track your money flow - personal finance app with beautiful charts and insights. Built with SvelteKit 2, Svelte 5, and Drizzle ORM.

Moneyflow

Track your money flow - personal finance app with beautiful charts and insights. Built with SvelteKit 2, Svelte 5, and Drizzle ORM.

Features

šŸ“Š Dashboard

  • Overview of financial health with stats cards
  • Monthly income vs expense trend chart
  • Spending breakdown by category
  • Recent transactions list

šŸ’° Transactions

  • Create, edit, and delete transactions
  • Filter by date range, type, category, and account
  • Quick transaction from sidebar (accessible anywhere)
  • Income and expense tracking

šŸ“ Categories

  • Custom categories with icons and colors
  • Separate income and expense categories
  • Icon picker with Lucide icons

šŸ¦ Accounts

  • Multiple account support (Bank, Cash, E-Wallet, etc.)
  • Account balance tracking
  • Multi-currency ready

šŸ“ˆ Budget

  • Monthly budget per category
  • Progress tracking with visual indicators
  • Copy budgets from previous month
  • Budget vs actual spending comparison

šŸ“‹ Reports

  • Period selection (This Month, Last Month, 3/6 Months, Year)
  • Income vs Expense summary with savings rate
  • Monthly trend chart
  • Category breakdown with percentages

šŸŽØ UI/UX

  • Dark/Light/System theme toggle
  • Responsive sidebar navigation
  • Toast notifications
  • Modern UI with shadcn-svelte components

Tech Stack

Getting Started

Prerequisites

  • Bun (recommended) or Node.js 20+

Installation

  1. Clone the repository:
git clone https://github.com/yourusername/svelte-finance.git
cd svelte-finance
  1. Install dependencies:
bun install
  1. Start PostgreSQL database:
bun run db:start
  1. Push database schema:
bun run db:push
  1. Start development server:
bun run dev
  1. Open http://localhost:5173

Scripts

Command Description
bun run dev Start development server
bun run build Build for production
bun run preview Preview production build
bun run check Type-check the project
bun run lint Lint and format check
bun run format Format code with Prettier
bun run db:start Start PostgreSQL with Docker
bun run db:push Push schema changes to database
bun run db:generate Generate migration files
bun run db:studio Open Drizzle Studio

Project Structure

src/
ā”œā”€ā”€ lib/
│   ā”œā”€ā”€ components/       # Shared components
│   │   ā”œā”€ā”€ ui/          # shadcn-svelte components
│   │   └── ...          # App components (sidebar, nav, etc.)
│   ā”œā”€ā”€ features/        # Feature modules
│   │   ā”œā”€ā”€ accounts/    # Account management
│   │   ā”œā”€ā”€ budget/      # Budget tracking
│   │   ā”œā”€ā”€ categories/  # Category management
│   │   ā”œā”€ā”€ dashboard/   # Dashboard widgets
│   │   ā”œā”€ā”€ reports/     # Financial reports
│   │   └── transactions/# Transaction CRUD
│   ā”œā”€ā”€ server/          # Server-only code
│   │   └── db/          # Database schema & connection
│   └── utils/           # Utility functions
ā”œā”€ā”€ routes/              # SvelteKit routes
│   ā”œā”€ā”€ accounts/
│   ā”œā”€ā”€ budget/
│   ā”œā”€ā”€ categories/
│   ā”œā”€ā”€ dashboard/
│   ā”œā”€ā”€ reports/
│   └── transactions/
└── drizzle/             # Database migrations

Environment Variables

Create a .env file in the root directory:

DATABASE_URL=postgres://postgres:postgres@localhost:5432/finance

License

MIT

Top categories

Loading Svelte Themes