Introduction

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

Here’s the monorepo structure:

apps
├── api
├── dashboard
├── docs
├── engine
├── mobile
├── website
packages
├── 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 (app.midday.ai).
  • docs: Midday’s documentation site (midday.ai/docs).
  • engine: Midday’s bank engine (midday.ai/engine).
  • mobile: Midday’s mobile app.
  • website: Midday’s website app (midday.ai).

The packages directory contains the code for:

  • documents: OCR for receipts.
  • 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.

1

Clone the repo

First, clone the midday.ai repo into a public GitHub repository.

Terminal
git clone https://github.com/midday-ai/midday.git
2

Install dependencies

Run the following command to install the dependencies:

Terminal
bun i