Prerequisite: You should have installed Node.js (version 20 or higher).

Installation

Step 1. Install bun on your machine (if you don’t already have it yet), by running the following command:

macOS/Linux:

curl -fsSL https://bun.sh/install | bash

Windows:

powershell -c "irm bun.sh/install.ps1 | iex"

Why Bun?

We chose bun as our runtime and package manager based on its design goals, which align perfectly with our platform’s needs:

  • 4x Faster Startup: Bun processes start significantly faster than Node.js, improving development experience and CI/CD performance
  • Built-in TypeScript & JSX Support: No need for additional transpilation setup - bun natively executes .ts, .tsx, and .jsx files
  • All-in-One Toolkit: Combines runtime, package manager, bundler, test runner, and script runner in a single executable
  • Web Standards Compatibility: Implements modern Web APIs like fetch, WebSocket, and ReadableStream out of the box
  • Node.js Compatibility: Drop-in replacement for Node.js with full compatibility for existing projects
  • Better Performance: Powered by JavaScriptCore engine with reduced memory usage and faster execution

These benefits make bun an ideal choice for our monorepo architecture and development workflow.

Step 2. Configure Tiptap Pro Registry:

This step is no longer needed.

Step 3. After configuring Tiptap Pro registry, you can install all dependencies by running the following command:

bun install

To complete the initial setup, please restart your IDE so that it can recognize the newly installed dependencies. Additionally, some recommended VS Code Extensions may only work after restarting your IDE.

If you’re using VS Code, you can install following the recommended extensions that will help you with the development process: ESLint, Prettier, Vitest, Tailwind CSS IntelliSense, Version Lens, Error Lens, Pretty TypeScript Errors, Material Icon Theme.

Development

Start Next.js apps

To develop all apps and packages (without requiring a local setup), run the following command:

bun
bun dev

This command will start all Next.js apps in development mode. You can access the apps by visiting the following URL: http://localhost:7803

Start Local Supabase Instance

To start a local supabase instance (database), run the following command:

bun
bun sb:start

This command will start a local supabase instance on your machine. You can access the supabase instance by visiting the following URL: http://localhost:8003

You need to have Docker installed and running on your machine to start a local supabase instance.

Stop Local Supabase Instance

To stop the local supabase instance, run the following command:

bun sb:stop

Better Development Experience

In case you want to run all local development servers, run the following command:

bun
bun devx

Running devx will:

  1. Stop the currently running supabase instance and save current data as backup (if there is any)
  2. Install all dependencies
  3. Start a new supabase instance (using backed up data)
  4. Start all Next.js apps in development mode

If you want to have the same procedure without the backup, you can run bun devrs instead. This will:

  1. Stop the currently running supabase instance (if there is any)
  2. Install all dependencies
  3. Start a new supabase instance (with clean data from seed.sql)
  4. Start all Next.js apps in development mode

In case you don’t want to run a local supabase instance, you can run bun dev instead.

Local development

Seed accounts

There are 5 seed accounts that are already set up for local development:

  1. local@tuturuuu.com
  2. user1@tuturuuu.com
  3. user2@tuturuuu.com
  4. user3@tuturuuu.com
  5. user4@tuturuuu.com

You can use any of these accounts to log in to the app and quickly test the functionality of the app, since they are already set up with the necessary data.

Authentication

A local mail server (InBucket) is automatically set up by Supabase to handle authentication emails.

You can access the mail server by visiting the following URL: http://localhost:8004

Build

To build all apps and packages, run the following command:

bun
bun run build

Test

To run all tests, run the following command:

bun
bun run test

Tests are still a work in progress. We’re currently working on adding tests to all packages to ensure the best quality possible.

Git Conventions

Tuturuuu uses standardized conventions for Git commits and branch naming. For more information, see the Git Conventions guide to learn how to format your commits and branch names to align with our workflow.