Introduction
Midday is an open-source platform that consolidates invoicing, time tracking, file reconciliation, and financial overview into a single application. It targets freelancers and small businesses who want full ownership of their financial data without relying on proprietary SaaS tools.
What Midday Does
- Generates and sends professional invoices with customizable templates
- Tracks billable time per project with a built-in timer
- Reconciles bank transactions by matching them with invoices and expenses
- Provides a financial dashboard with income, expenses, and profit overview
- Stores receipts and financial documents with automatic categorization
Architecture Overview
Midday is built as a monorepo using Turborepo, with a Next.js frontend deployed on Vercel and Supabase as the backend (PostgreSQL database, auth, and storage). It uses Plaid or similar integrations for bank connections and Resend for transactional email delivery.
Self-Hosting & Configuration
- Clone the monorepo and install dependencies with pnpm
- Set up a Supabase project for database, auth, and file storage
- Configure environment variables for bank integration API keys
- Deploy the Next.js app to any Node.js hosting or Vercel
- Set up webhook endpoints for real-time bank transaction syncing
Key Features
- AI-powered transaction categorization and expense matching
- Multi-currency support for international freelancers
- Team collaboration with shared project and client views
- Export to common accounting formats (CSV, PDF reports)
- End-to-end type safety with TypeScript across the entire stack
Comparison with Similar Tools
- Wave — Free invoicing but proprietary and limited customization
- FreshBooks — Full-featured but expensive and closed-source
- Invoice Ninja — Open-source invoicing but less integrated time tracking
- Harpoon — Freelancer financial planning but proprietary
- Akaunting — Open-source accounting but heavier and PHP-based
FAQ
Q: Can Midday connect to my bank account? A: Yes, it integrates with banking APIs to automatically import and reconcile transactions.
Q: Is Midday suitable for teams or only solo freelancers? A: It supports team collaboration with shared projects, though it is primarily designed for freelancers and small teams.
Q: What database does Midday use? A: PostgreSQL via Supabase, which also handles authentication and file storage.
Q: Can I self-host Midday completely? A: Yes. You can run Supabase locally and deploy the Next.js app on your own infrastructure for full data ownership.