• Blog
  • Documentation
  • Courses
  • Changelog
  • AI Starters
  • UI Kit
  • FAQ
  • Supamode
    New
  • Pricing

Launch your next SaaS in record time with Makerkit, a React SaaS Boilerplate for Next.js and Supabase.

Makerkit is a product of Makerkit Pte Ltd (registered in the Republic of Singapore)Company Registration No: 202407149CFor support or inquiries, please contact us

About
  • FAQ
  • Contact
  • Verify your Discord
  • Consultation
  • Open Source
  • Become an Affiliate
Product
  • Documentation
  • Blog
  • Changelog
  • UI Blocks
  • Figma UI Kit
  • AI SaaS Starters
License
  • Activate License
  • Upgrade License
  • Invite Member
Legal
  • Terms of License
  • Auth Overview
  • Global Configuration
    • Setting up your Firebase Project
    • Setting up Firebase Functions
  • Writing data to Firestore
  • Commands
  • Introduction
  • Production Checklist
  • Introduction
  • Overview
  • Stripe Configuration
  • Running Tests
  • Introduction
  • Setting up Firebase Auth
  • Fetching data from Firestore
  • Technical Details
  • Extending Organizations
  • Stripe Webhooks
  • CI Tests
  • Initial Setup
  • React Hooks
  • Auth Flow
  • API requests
  • Code Style
  • Clone the repository
  • Security Rules
  • User Permissions
  • Limitations
  • Project Structure
  • Third-Party Providers
  • Reading data from Storage
  • Running the application
  • Subscription Permissions
  • One-Time Payments
  • Running the App
  • Email Link Authentication
  • Uploading data to Storage
  • Security Rules
  • Migrate to Lemon Squeezy
  • Project Configuration
  • Multi-Factor Authentication
  • Writing your own Fetch
  • Translations and Locales
  • Coding Conventions
  • Environment Variables
  • Architecture and Folder Structure
    • Structure your Application
    • Data Model
  • Requiring Email verification
  • Sending Emails
  • Tailwind CSS and Styling
  • Validating API payload with Zod
  • Authentication
  • Onboarding Flow
  • Logging
  • Development: adding custom features
  • Prevent abuse with AppCheck
  • Enable CORS
  • Encrypting Secrets
  • User Roles
  • Firestore: Data Fetching
  • Custom React Hooks
  • Custom React Hooks
  • Firestore: Data Writing
  • Troubleshooting
  • Forms
  • Application Pages
  • API Routes
  • API Routes Validation
  • Translations
  • Adding pages to the Marketing Site
  • Deploying to Production
  • Updating to the latest version
This kit is no longer maintained.

The technologies that make up a Remix.js Firebase application

MakerKit uses Remix, Firebase, Firestore, Tailwind CSS, Zod, Pino, Radix UI, Typescript and Cypress to build wonderful SaaS applications

MakerKit is built primarily with Remix, Firebase, and Tailwind CSS.

Under the hood, there are many more libraries and architectural decisions you should know.

1) A Scalable Remix Application

The codebase is entirely built with Remix.

The front end is fully built with React, leveraging React Hooks and the best practices available today.

2) Built on top of Firebase

Firebase is one of the most popular PaaS out there, with a very generous free tier and fairly affordable pricing for growing applications.

MakerKit uses Firebase for Authentication, Firestore for storing your data, Storage for storing files, and AppCheck to protect your endpoints against possible attacks.

3) Theme built with Tailwind 3

The bulk of the application's theme, built with Tailwind 3, is stored in three CSS files rather than HTML.

It may sound like a bad practice, but we approached this way to help you find and edit the theme's CSS in one single place.

We designed the theme in light and dark, so you can choose to use both according to your user's OS settings or manage it using a local cookie.

4) Radix UI Components

All the kits use Radix UI, arguably the best headless UI library for React.

The components are styled using Tailwind CSS. Many components are inspired by the template made by Shad CN. We recommend taking a look if you want to build your own components.

Some components are still using Headless UI, but will be phased out in the future.

5) Fully and Strictly Typed with Typescript

We wrote every single line of code with strictly-typed Typescript both on the client and server side.

6) Payload validation with Zod

The API endpoints are validated and protected with Zod, which also helps with strong-typing.

7) E2E testing with Cypress

We ship MakerKit with Cypress, likely the most popular E2E testing framework.

We made lots of examples and utilities to change the tests as you develop your application.

8) Linted with EsLint and formatted with Prettier

We lint the codebase with a very strict EsLint configuration, but we distribute it with less strict params so that it won't be in your way as you're experimenting with the starter.

We will show you how to add stricter parameters if that's your thing, but we do not recommend jumping head-in with it. It's much better to activate the stricter configuration once you have already shipped the product and are looking to stabilize it.

Furthermore, the codebase is formatted with Prettier automatically.

9) Multi-language by default with remix-i18n

We configured the application to be translated by default thanks to the remix-i18n package.

All the application's strings are translated by default, so you can easily extend it to other languages if necessary.

Using translation files can help you if you want to translate your apps in multiple languages, but it also allows you to find the text strings you want to replace.

In this way, you do not need to change strings in the codebase, but they're neatly organized in JSON files.

10) Logging with Pino

MakerKit uses Pino, a lightweight logging library.

API errors are logged with just enough information to help you debug your API routes.