mrkeyoor.com_
Sat 17 Oct 13:33 UTC
Self-Hostedevaluationupdated 13 Oct 2026

midday review

Midday brings receipt matching, time tracking, financial questions, and document storage into one business app for freelancers and small operators. It aims to reduce the work of moving expenses and project records between separate tools.

+6stars / 7d
Verdict

Our Midday run installed 2,435 packages and used 3,422 MB, then failed the email build despite a successful test step. Use its source when receipt matching and a connected business workspace justify operating the surrounding services. Confirm invoicing status and commercial-use wording before choosing it for those requirements.

We ran it

Lab card: what happened when we ran middayScreenshot of midday (midday.ai)
Install✓ · 32s2435 packages · 3422 MB
Build✗ · 85s
Tests✓ · 8sran, no count parsed
Repo2508 files~352,123 lines of source · 71 MB · 3 CI workflows

Answers from our run

Does midday build from source?

Dependencies installed in 32 seconds (2435 packages), and the build failed. We cloned commit 5158731 into a clean Debian container with 3 CPUs and no project-specific setup.

Do midday's tests pass?

Yes. The project's own test command exited successfully in 8 seconds, although its output did not expose an individual test count.

Who should not use midday?

Operators expecting a ready container deployment: our build failed in the email package, and the lab found no Dockerfile.

What are the alternatives to midday?

InvoicePlane, Frappe Books. Our Midday run installed 2,435 packages and used 3,422 MB, then failed the email build despite a successful test step.

Setup2/5Install passes, email build fails, integrations need configuration
Docs3/5Service map is useful, but invoicing wording leaves uncertainty
Community4/515,072 stars and a June push, limited visible issue activity
Maturity3/5Business workflows exist, but our source build did not finish

Who it’s for

Developers who want to adapt receipt-to-transaction matching for a small business.
Freelancers who want a connected financial workspace and have help operating its services.
Teams studying a Bun workspace with web, desktop, and mobile architecture.

Who it’s NOT for

Operators expecting a ready container deployment: our build failed in the email package, and the lab found no Dockerfile.
Businesses choosing it specifically for finished invoicing: the README still calls that feature upcoming.
Teams that want finance software without bank-provider or hosted-service setup: the README names Supabase, Trigger.dev, Resend, and regional banking services.
Commercial deployers expecting the license badge to settle permission: the README separately asks commercial users to contact the team.

Setup reality

Our sandbox installed commit 5158731 in 32 seconds, adding 2,435 packages and occupying 3,422 MB. The build failed after 85 seconds in @midday/email, while the test step succeeded in 8 seconds. The log tail identifies the package and exit code, not the underlying cause.

The README describes Supabase, background jobs, email, banking providers, search, and AI services. The dashboard example contains credentials for enabled integrations, Redis configuration, OAuth callbacks, and shared application secrets. An install does not configure those services.

This is a Bun monorepo with Next.js, Tauri, and Expo in its architecture. The 71 MB checkout had 2,508 files and roughly 352,123 source lines. Our scan found 3 CI workflows and no Dockerfile.

Receipt matching comes with a service stack

Connect your business accounts to Midday and the promised payoff is fewer receipts to sort by hand. Its Magic Inbox matches incoming invoices or receipts to transactions, while time tracking and a document vault keep project work nearby. The appeal for a freelancer is concrete: an accountant's CSV export and the contract behind an expense can come from the same application. The README also describes an assistant for spending questions and finding documents.

The source asks considerably more of its operator. Our 71 MB checkout expanded to 3,422 MB after installation, with 2,435 packages installed. Supabase handles database, storage, authentication, and realtime features. Other named services cover bank connections, background jobs, email, search, and AI. Choose Midday because you want that connected workflow enough to maintain its dependencies. Someone who only needs to send invoices has easier choices.

What happened when we ran it

Our run installed Midday commit 5158731 in 32 seconds on October 9, 2026, then failed its build after 85 seconds. The fresh Debian sandbox had 3 CPUs and 8 GB of RAM, used the lab-node:22 image, and ran without secrets or elevated privileges. Installation succeeded through Bun. This measured a restricted source checkout, rather than the hosted service.

The build tail identifies @midday/email as the failing package. Its React Email command exited with code 1, and the task summary reports 5 successful tasks out of 6. The excerpt includes calls through nypm and React Email, but no underlying diagnostic explaining why the email build failed. Blaming a missing API key, system library, or resource limit would go beyond the evidence. The finding is a failed build at that commit under those conditions.

The test step succeeded in 8 seconds. Our measurements provide no test count, so that success cannot tell you how broadly the suite exercises banking, receipts, or exports. The scan found 3 CI workflow files and a workspace monorepo, with no Dockerfile or tests directory. A missing directory does not negate the successful command. It does make the test result narrower than a claim that the whole business workflow worked.

The dashboard configuration reaches beyond Supabase

Midday's dashboard environment example has fields for Supabase and Redis alongside Resend, bank providers, OpenAI, and payment services. Teller configuration includes a certificate and private key, while Plaid has client credentials and an environment setting. Gmail and Outlook each have OAuth credentials and callback URLs. You need to decide which integrations your deployment actually uses before treating every empty field as equally necessary.

A successful 32-second install does not supply any of those accounts. The README places its API, worker, and dashboard on Railway, its website on Vercel, and its engine and proxy work on Cloudflare. That describes upstream hosting, rather than mandatory local platforms. It does tell you why copying the repository onto a basic server is an incomplete setup recipe.

The same environment example says the Server Actions encryption key must match across replicas or regions to prevent failures. That is an unusually useful operational detail: scaling the dashboard brings shared configuration requirements. The README links to documentation and says local-development documentation is being worked on. I would read the deployment instructions against the services I intend to enable before connecting financial data, then verify that complete path with disposable accounts.

The README leaves invoicing status unresolved

The README labels invoicing an upcoming feature, despite invoice-related configuration appearing in the dashboard example. That mismatch is enough to withhold a recommendation based on finished invoicing behavior. If invoice creation is your reason to adopt Midday, confirm the current interface and documentation before migrating a client workflow. The repository description alone cannot settle whether the specific invoice features you need are available and supported.

Our checkout contained 2,508 files and roughly 352,123 source lines. Its architecture names Next.js, Tauri, and Expo alongside Bun and Supabase, so modifying the product can involve more than a web page. That breadth is useful to a developer studying a business application across interfaces. It is a poor bargain for someone wanting a small invoice service they can understand and maintain without following a large workspace.

June activity is more informative than the February tag alone

GitHub reported 15,072 stars and 14 open issues and PRs, with the last push dated June 13, 2026. The latest release endpoint returned midday-v0.5.0, published February 15, whose notes concern a desktop download. The issues endpoint returned no entries in the queried activity list. That limits what we can infer about public support responsiveness. The later push also means the February release date alone cannot establish that development stopped.

The 85-second failed build is more relevant to a prospective source operator than the star count. There is another adoption question in the license wording: GitHub identifies AGPL-3.0, while the README describes non-commercial use and asks commercial users or deployments charging a setup fee to contact the team. Those statements deserve clarification from the maintainers before a commercial rollout. A license badge does not resolve their stated policy.

InvoicePlane and Frappe Books suit narrower jobs

InvoicePlane centers on invoices, clients, and payments. Pick it when sending and tracking invoices is the job, rather than adopting Midday's bank-linked assistant and receipt workflow. Frappe Books focuses on accounting, making it a better candidate when bookkeeping is the requirement. These are different product choices, not substitutes for every feature in Midday, and we have not compared their runtime behavior in this sandbox.

Midday's 3,422 MB installed footprint and failed email build make self-hosting a deliberate project. I would shortlist it for a developer who wants to extend its receipt and transaction workflow and can operate the surrounding services. For a freelancer who just wants business administration handled, the next decision is whether the hosted product meets the need. Owning this checkout means owning the email failure before relying on it for business.

Alternatives

ProjectWhat it isPick it when
InvoicePlaneA self-hosted application for invoices, clients, and payments.pick this instead when invoicing is the main requirement and bank-linked assistance is optional.
Frappe BooksAn open accounting application for bookkeeping.pick this instead when accounting records matter more than a connected business assistant.

Sources

  1. Midday README and service architecture
  2. Dashboard environment example
  3. Midday repository facts
  4. Latest release notes
  5. Midday license file

More self-hosted reviews

playport · edge-smart-doh · Comma · ProsperoEden · zulu · node_exporter · the whole board →