This monorepo contains multiple applications and services that make up the Tuturuuu ecosystem. It's powered by Turborepo for efficient management of multiple packages. View our documentation at docs.tuturuuu.com.
apps/web
: Main application (tuturuuu.com)apps/rewise
: AI-powered chatbot assistant (similar to claude.ai and chatgpt.com)apps/docs
: Documentation website powered by Mintlify
Tuturuuu services include:
- Task management (upcoming)
- Calendar scheduling and management (upcoming)
- Finance management
- User management (personal and enterprise, internal and external)
- Inventory management
- Mailing services (integrated with user management for group-scoped post notifications)
- Workspace permission management
- Granular permission control
- API & Secrets system
- External migration support
- AI chat with deep integration across all features and products
Note
Check out why we recommend using pnpm instead of npm by checking out their motivation and feature comparison.
-
Clone the repository
-
Install dependencies:
pnpm i
-
Start the Supabase local development environment:
pnpm sb:start
This will provide the necessary URLs and keys for local development.
-
Create a
.env.local
file in each app directory (apps/*/.env.local
) using the corresponding.env.example
template and add the Supabase URLs and keys from the previous step. -
Start the desired application(s) using the appropriate pnpm scripts.
This turborepo has some additional tools already setup for you:
- Tailwind CSS for styles
- Shadcn UI for UI components
- TypeScript for static type checking
- ESLint for code linting
- Prettier for code formatting
- Vitest for testing
Tip
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.
To build all apps and packages, run the following command:
pnpm build
To develop all apps and packages (without requiring a local setup), run the following command:
pnpm dev
To stop development apps and packages that are running on your local machine, run the following command:
pnpm stop
To start a local supabase instance (database), run the following command:
pnpm sb:start
Note
This command will start a local supabase instance on your machine. You can access the Supabase Studio Dashboard by visiting http://localhost:8003
You can access the InBucket service that handles all email sending operations on your local machine by visiting http://localhost:8004
Warning
You need to have Docker installed and running on your machine to start a local supabase instance.
To stop the local supabase instance, run the following command:
pnpm sb:stop
In case you want to run all local development servers, run the following command:
pnpm devx
Running devx
will:
- Stop the currently running supabase instance and save current data as backup (if there is any)
- Install all dependencies
- Start a new supabase instance (using backed up data)
- Start all Next.js apps in development mode
If you want to have the same procedure without the backup, you can run pnpm devrs
instead. This will:
- Stop the currently running supabase instance (if there is any)
- Install all dependencies
- Start a new supabase instance (with clean data from seed.sql)
- Start all Next.js apps in development mode
In case you don't want to run a local supabase instance, you can run
pnpm dev
instead.
There are 5 seed accounts that are already set up for local development:
To run all tests, run the following command:
pnpm test
Note: Tests are still a work in progress. We're currently working on adding tests to all packages to ensure the best quality possible.
We welcome contributions! Please read our CONTRIBUTING.md file for guidelines on how to submit pull requests, report issues, and suggest improvements. If there is any security vulnerability, please report it responsibly by following our security policy. For more detailed information, please refer to our Code of Conduct.
Common issues and their solutions:
- Supabase connection issues: Ensure Docker is running and you've correctly set the Supabase URLs and keys in your
.env.local
files. - Build errors: Make sure you're using the correct Node.js version (v20+) and have run
pnpm i
to install all dependencies.
To improve build and development performance:
- Use
pnpm
for faster package installation and better disk space usage. - Leverage Turborepo's caching capabilities by utilizing remote caching.
- Turborepo Handbook: Learn more about monorepo management with Turborepo.
- Next.js Documentation: In-depth guide for Next.js, the framework used in our apps.
- Next.js Learn: Interactive Next.js & React learning courses.
- Supabase Documentation: Learn about our database and backend services.
This project is licensed under the Apache License, Version 2.0. See the LICENSE file for more details.