/platform

Your digital ally for seamless productivity and collaborative success.

Primary LanguageTypeScriptApache License 2.0Apache-2.0

Tuturuuu Monorepo

CodeQL Test Supabase CI

Tuturuuu Cover

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.

Project Structure

  • 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

Features

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

Prerequisites

Note

Check out why we recommend using pnpm instead of npm by checking out their motivation and feature comparison.

Getting Started

  1. Clone the repository

  2. Install dependencies:

    pnpm i
  3. Start the Supabase local development environment:

    pnpm sb:start

    This will provide the necessary URLs and keys for local development.

  4. 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.

  5. Start the desired application(s) using the appropriate pnpm scripts.

Development Tools

This turborepo has some additional tools already setup for you:

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.

Build

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

pnpm build

Develop

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

Supabase

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

Supabase Prerequisites

Warning

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:

pnpm sb:stop

Better Development Experience

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

pnpm 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 pnpm 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 pnpm dev instead.

Local development

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

Test

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.

Additional Information

Contribution Guidelines

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.

Troubleshooting

Common issues and their solutions:

  1. Supabase connection issues: Ensure Docker is running and you've correctly set the Supabase URLs and keys in your .env.local files.
  2. Build errors: Make sure you're using the correct Node.js version (v20+) and have run pnpm i to install all dependencies.

Performance Optimization

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.

Learning Resources

License

This project is licensed under the Apache License, Version 2.0. See the LICENSE file for more details.