Midday’s codebase is set up in a monorepo via Turborepo and is fully open-source on GitHub.

Here’s the monorepo structure:

├── api
├── dashboard
├── docs
├── engine
├── mobile
├── website
├── documents
├── email
├── events
├── import
├── inbox
├── jobs
├── kv
├── location
├── notification
├── supabase
├── tsconfig
├── ui
├── utils

The apps directory contains the code for:

  • api: The backend for Midday (supabase).
  • dashboard: Midday’s application (
  • docs: Midday’s documentation site (
  • engine: Midday’s bank engine (
  • mobile: Midday’s mobile app.
  • website: Midday’s website app (

The packages directory contains the code for:

  • documents: OCR for reciepts.
  • events: Analytics library.
  • import: CSV-importer.
  • inbox: Inbox utils.
  • jobs: Background jobs.
  • kv: Key value storage client.
  • location: Location related utils.
  • notification: Notifications client.
  • supabase: Queries and client.
  • tsconfig: The TypeScript configuration for Midday’s web app.
  • ui: UI component library.
  • utils: A collection of utility functions and constants used across Midday’s codebase.

Running Midday locally

To run Midday locally, you’ll need to set up the following:

Step 1: Local setup

First, you’ll need to clone the Midday repo and install the dependencies.


Clone the repo

First, clone the repo into a public GitHub repository.

git clone

Install dependencies

Run the following command to install the dependencies:

bun i