Skip to main content

Midday Review 2026: Open Source Business OS Boilerplate

·StarterPick Team
middaynextjssupabasemonorepoopen-sourceboilerplatereview2026

A Real SaaS Product Turned Boilerplate

Most SaaS boilerplates are built in isolation — a developer assembles the tools they think a SaaS needs and packages it for sale. Midday's v1 starter kit takes a different approach: it is the actual production architecture of a real SaaS company, extracted into an open-source template.

Midday (midday.ai) is a business OS for freelancers and small businesses — invoicing, time tracking, expense management, and financial insights in one product. The team built it on a modern TypeScript monorepo stack and then open-sourced that architecture as the midday-ai/v1 starter kit.

The result is a reference implementation tested in production, not a hypothetical setup. Every tool and pattern in v1 has been used to serve real users.

TL;DR

Midday v1 is a free, open-source Next.js monorepo starter based on the production architecture of Midday (a real SaaS product). The stack includes Next.js, Supabase, Turborepo, Shadcn UI, Trigger.dev for background jobs, Resend for email, Upstash for caching, and Sentry for error tracking. It is a sophisticated foundation for developers building production-grade applications who want battle-tested patterns — but it requires significant understanding to use effectively.

Key Takeaways

  • Production-tested architecture. Every tool in v1 was chosen and validated in a real SaaS product, not assembled theoretically.
  • Completely free and open source. MIT license, no paid tiers.
  • Monorepo with Turborepo. Apps (web, marketing, Supabase) and shared packages (analytics, email, jobs, UI) — a sophisticated structure.
  • No built-in billing flow. Midday v1 is an architecture reference, not a SaaS starter with pre-built Stripe integration and pricing pages.
  • High complexity. The stack is advanced — Trigger.dev, Upstash, OpenPanel, Dub — and requires familiarity with each tool.
  • Biome instead of ESLint. The v1 uses Biome for linting and formatting — a newer, faster alternative to ESLint + Prettier.
  • Midday itself (the product) is also open source under AGPL-3.0 if you want to use or fork the full business OS.

The Two Midday Projects

There are two distinct Midday open-source projects:

1. Midday (midday.ai) — The full business OS application (invoicing, time tracking, expense management, financial insights). Open source under AGPL-3.0. Not a boilerplate — it is a complete product you can fork or self-host.

2. midday-ai/v1 — The extracted architecture reference. A monorepo starter that packages the patterns from Midday into a reusable starting point for new applications. This is what this review covers.

Understanding this distinction matters: v1 is not a clone of the Midday product. It is the architectural skeleton — the project structure, tooling decisions, and integration patterns — without the business-specific features.

The Tech Stack

LayerChoice
FrameworkNext.js (App Router)
LanguageTypeScript
MonorepoTurborepo
BackendSupabase (auth, database, storage)
DatabasePostgreSQL (via Supabase)
AuthSupabase Auth
Background jobsTrigger.dev
EmailReact Email + Resend
Caching/Rate limitingUpstash (Redis)
AnalyticsOpenPanel
Error trackingSentry
URL shorteningDub
UI componentsShadcn UI
StylingTailwind CSS
Linting/FormattingBiome
Server Actionsreact-safe-action
i18nnext-intl

This is a materially different set of tools than most boilerplates. Trigger.dev instead of BullMQ. OpenPanel instead of PostHog. Dub for link management. Biome instead of ESLint. These are not the default choices of the Next.js ecosystem — they are the considered choices of a team that evaluated alternatives and landed on these for specific reasons.

Monorepo Structure

The v1 monorepo follows a clean separation of concerns:

apps/
  api/          — Supabase local development configuration
  app/          — Main Next.js application
  web/          — Marketing/landing page site

packages/
  analytics/    — OpenPanel analytics helpers
  email/        — React Email templates
  jobs/         — Trigger.dev background job definitions
  kv/           — Upstash key-value helpers
  logger/       — Logging utilities
  supabase/     — Database queries, mutations, and types
  ui/           — Shared Shadcn UI components
  utils/        — Shared utility functions

The separation of the main app from the marketing site is a production-oriented decision: different deployment cadences, different performance requirements, different caching strategies.

The packages/ directory is the heart of the monorepo. Shared database queries in packages/supabase/, email templates in packages/email/, background job definitions in packages/jobs/ — these are consumed by both the main app and any future apps in the monorepo.

What Makes v1 Different

Trigger.dev for Background Jobs

Most boilerplates skip background jobs entirely or add a note about integrating BullMQ. v1 includes Trigger.dev as a first-class dependency with the package structure ready to define and run background jobs.

Trigger.dev is a developer-friendly job queue and workflow engine with automatic retries, real-time logging, and a dashboard for monitoring job execution. It is the modern alternative to self-hosted BullMQ.

Upstash for Caching and Rate Limiting

The packages/kv/ package wraps Upstash Redis for server-side caching and API rate limiting. Upstash is serverless Redis — no infrastructure to manage, usage-based pricing, and low latency globally.

Having rate limiting patterns included in a boilerplate is genuinely useful. API abuse protection is something most SaaS products need and few boilerplates provide.

Biome Instead of ESLint

The decision to use Biome (rather than ESLint + Prettier) reflects a 2024 trend toward unified, faster linting and formatting. Biome handles both tasks in a single tool with significantly faster performance.

For a monorepo, consistent formatting across all packages matters more than in a single app. Biome's speed advantage (Rust-based) is meaningful in a large monorepo.

react-safe-action

Server Actions in Next.js App Router lack built-in validation and type safety at the action boundary. react-safe-action adds Zod validation to Server Actions, making them safer and more ergonomic:

const createInvoiceAction = actionClient
  .schema(createInvoiceSchema)
  .action(async ({ parsedInput: { customerId, amount } }) => {
    // parsedInput is fully typed from the schema
    const invoice = await createInvoice(customerId, amount);
    return { invoice };
  });

This is a small but meaningful DX improvement over raw Server Actions.

What v1 Does Not Include

Being explicit about gaps:

  • No Stripe or billing flow. There is no payment processing, no pricing page, no subscription management. You are adding billing yourself.
  • No landing page with components. The marketing apps/web/ is a structural placeholder, not a polished landing page template.
  • No admin dashboard. No user management UI, no analytics dashboard, no customer support tooling out of the box.
  • No multi-tenancy patterns. No organization model, no per-tenant billing, no workspace management.
  • High learning curve. Trigger.dev, Upstash, and OpenPanel each require account setup and API key configuration. If you are unfamiliar with any of these, the setup takes significant time.

Who Should Use Midday v1

Use Midday v1 if:

  • You are building a production-grade application and want battle-tested architectural decisions rather than common defaults
  • You specifically want Trigger.dev for background jobs — v1 is one of the few boilerplates that includes it
  • You want Supabase as your full backend and are comfortable with Supabase Auth
  • Monorepo architecture fits your project — you are building multiple apps that share code
  • You appreciate Biome and are comfortable moving away from the ESLint + Prettier combination
  • You want to study real production patterns — v1 is a learning resource as much as a starting point

Look elsewhere if:

  • You want a complete SaaS starter with Stripe, pricing pages, admin dashboard, and auth flows already built
  • You are a solo founder building an MVP in days — the sophistication adds overhead you do not yet need
  • You want a large community for support — v1 has GitHub stars but limited community discussion
  • You need multi-tenancy out of the box
  • Budget constraints are not a factor — premium boilerplates like Makerkit include more production-ready SaaS features

Head-to-Head: Midday v1 vs Alternatives

FeatureMidday v1create-t3-turboShipFast ($199)
PriceFreeFree$199
MonorepoYes (Turborepo)Yes (Turborepo)No
AuthSupabase AuthBetter AuthNextAuth
Background jobsTrigger.devNoNo
EmailReact Email + ResendNoResend
CachingUpstashNoNo
Error trackingSentryNoNo
AnalyticsOpenPanelNoNo
BillingNoNoStripe + LemonSqueezy
Admin dashboardNoNoNo
Landing pageMinimalNoYes
Learning curveVery highHighLow
CommunitySmallMediumVery large

The Verdict

Midday v1 is a sophisticated boilerplate for sophisticated problems. The production-tested architecture, the Trigger.dev + Upstash combination, and the clean monorepo structure reflect the decisions of a team that ships real SaaS products.

It is not the right choice for most first SaaS projects. The missing billing layer, the learning curve of Trigger.dev and Upstash, and the lack of pre-built SaaS UI (pricing pages, admin dashboards) mean you are starting from a strong architectural foundation but building most of the visible product yourself.

For developers who have built SaaS products before, understand the monorepo tradeoffs, and want to start with validated production patterns rather than generic defaults, Midday v1 is a compelling free resource.

For developers building their first SaaS or prioritizing speed to market, a more complete boilerplate like OpenSaaS (free) or ShipFast (paid) is a better starting point.

Methodology

This review is based on publicly available information from the Midday v1 GitHub repository (midday-ai/v1), official Midday documentation, and independent developer reviews as of March 2026.


Looking for more boilerplate comparisons? StarterPick has side-by-side feature breakdowns across free and paid SaaS starters.

Comments