Thanks to visit codestin.com
Credit goes to github.com

Skip to content

matheusnascgomes/v1

 
 

Repository files navigation

hero

Create v1

An open-source starter kit based on Midday.

Website · Issues · What's included · Prerequisites · Getting Started · How to use

Everything you need to build a production ready SaaS, it's a opinionated stack based on learnings from building Midday using the latest Next.js framework, it's a monorepo with a focus on code reuse and best practices that will grow with your business.

What's included

Next.js - Framework
Turborepo - Build system
Biome - Linter, formatter
TailwindCSS - Styling
Shadcn - UI components
TypeScript - Type safety
Supabase - Authentication, database, storage
Upstash - Cache and rate limiting
React Email - Email templates
Resend - Email delivery
i18n - Internationalization
Sentry - Error handling/monitoring
Dub - Sharable links
Trigger.dev - Background jobs
OpenPanel - Analytics
Polar - Billing (coming soon)
react-safe-action - Validated Server Actions
nuqs - Type-safe search params state manager
next-themes - Theme manager

Directory Structure

.
├── apps                         # App workspace
│    ├── api                     # Supabase (API, Auth, Storage, Realtime, Edge Functions)
│    ├── app                     # App - your product
│    ├── web                     # Marketing site
│    └── ...
├── packages                     # Shared packages between apps
│    ├── analytics               # OpenPanel analytics
│    ├── email                   # React email library
│    ├── jobs                    # Trigger.dev background jobs
│    ├── kv                      # Upstash rate-limited key-value storage
│    ├── logger                  # Logger library
│    ├── supabase                # Supabase - Queries, Mutations, Clients
│    └── ui                      # Shared UI components (Shadcn)
├── tooling                      # are the shared configuration that are used by the apps and packages
│    └── typescript              # Shared TypeScript configuration
├── .cursorrules                 # Cursor rules specific to this project
├── biome.json                   # Biome configuration
├── turbo.json                   # Turbo configuration
├── LICENSE
└── README.md

Prerequisites

  • Bun: A fast JavaScript runtime with built-in tools for bundling, transpiling, and package management, aiming to improve performance and developer experience.

  • Docker: A platform for developing, shipping, and running applications in isolated containers, ensuring consistency across environments.

  • Upstash: A serverless database solution optimized for Redis and Kafka, offering on-demand scaling and a pay-per-request model.

  • Dub: A modern URL shortener service that provides fast, customizable links with analytics to track engagement.

  • Trigger.dev: An automation platform that allows you to automate workflows directly in your codebase with pre-built API integrations.

  • Resend: An API that simplifies sending transactional emails with a focus on speed, deliverability, and modern templates.

  • Supabase: An open-source alternative to Firebase, offering real-time APIs, authentication, and a built-in SQL database.

  • Sentry: A monitoring tool for tracking and fixing errors in real-time, providing insights into crashes and performance issues.

  • OpenPanel: An open-source user analytics tool for tracking and analyzing user behavior across web and mobile apps.

Getting Started

Clone this repo locally with the following command:

bunx degit midday-ai/v1 v1
  1. Install dependencies using bun:
bun i
  1. Copy .env.example to .env and update the variables.
# Copy .env.example to .env for each app
cp apps/api/.env.example apps/api/.env
cp apps/app/.env.example apps/app/.env
cp apps/web/.env.example apps/web/.env
  1. Start the development server from either bun or turbo:
bun dev // starts everything in development mode (web, app, api, email)
bun dev:web // starts the web app in development mode
bun dev:app // starts the app in development mode
bun dev:api // starts the api in development mode
bun dev:email // starts the email app in development mode

// Database
bun migrate // run migrations
bun seed // run seed

How to use

This boilerplate is inspired by our work on Midday, and it's designed to serve as a reference for real-world apps. Feel free to dive into the code and see how we've tackled various features. Whether you're looking to understand authentication flows, database interactions, or UI components, you'll find practical, battle-tested implementations throughout the codebase. It's not just a starting point; it's a learning resource that can help you build your own applications.

With this, you have a great starting point for your own project.

Deploy to Vercel

Vercel deployment will guide you through creating a Supabase account and project.

Deploy with Vercel

Recognition

Featured on Hacker News

About

An open-source starter kit based on Midday.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 86.3%
  • PLpgSQL 5.9%
  • JavaScript 4.5%
  • CSS 3.3%