A Turborepo-powered monorepo containing the applications and services that make up the Tuturuuu ecosystem. For full documentation, visit docs.tuturuuu.com.
Tuturuuu is building the world's first intelligent, open-source operating system for modern work and life. We wage war on digital noise by creating a unified platform that automates administrative work and eliminates the friction of context-switching.
We believe we are entering the Third Era of technology: the Age of Partners - where AI acts as an intelligent partner to amplify human potential, not a cage for our attention.
Read the full vision at docs.tuturuuu.com/overview/vision
| App | Port | Description |
|---|---|---|
| web | 7803 | Main platform with workspace management, AI integration, finance, inventory, and task management |
| calendar | 3001 | Smart calendar with Google Calendar sync and AI-powered scheduling |
| finance | 7808 | Finance management, wallet tracking, and budgeting |
| tasks | 7809 | Hierarchical task management (Workspaces > Initiatives > Projects > Boards > Tasks) |
| App | Port | Description |
|---|---|---|
| nova | 7805 | Prompt engineering platform to learn, practice, and compete with AI challenges |
| rewise | 7804 | AI-powered chatbot with voice support and multi-model integration |
| App | Port | Description |
|---|---|---|
| meet | 7807 | Meeting management with AI transcription and summaries |
| shortener | 3002 | URL shortener service with analytics |
| App | Port | Description |
|---|---|---|
| docs | - | Documentation website built with Mintlify |
| db | - | Supabase database configuration, migrations, and type generation |
| external | 3000 | SDK demonstration app showing secure integration patterns |
| playground | 3003 | Development sandbox for experimentation |
| App | Runtime | Description |
|---|---|---|
| discord | Python/Modal | Discord bot with API info, URL shortening, and daily reports |
| backend | Rust/Axum | Educational Rust backend with REST APIs and WebSocket support |
| Package | Description |
|---|---|
| @tuturuuu/ui | Shared UI components and design system (Shadcn/Radix) |
| @tuturuuu/types | Common TypeScript types and generated Supabase types |
| @tuturuuu/icons | Icon wrapper for lucide-react with Tuturuuu branding |
| @tuturuuu/utils | Shared utilities: dates, colors, permissions, feature flags |
| Package | Description |
|---|---|
| @tuturuuu/supabase | Supabase client with SSR support for Next.js |
| @tuturuuu/auth | Authentication utilities and multi-session support |
| @tuturuuu/apis | API clients for platform integrations |
| Package | Description |
|---|---|
| @tuturuuu/ai | Multi-provider AI integration (OpenAI, Anthropic, Google, 20+ providers) |
| @tuturuuu/google | Google API integrations (Calendar, Analytics) |
| @tuturuuu/vercel | Vercel Analytics and Speed Insights |
| @tuturuuu/trigger | Trigger.dev background jobs and calendar sync |
| Package | Description |
|---|---|
| @tuturuuu/payment | Payment processing (Polar.sh, Dodo Payments) |
| @tuturuuu/transactional | Transactional email templates with React Email |
| Package | Description |
|---|---|
| @tuturuuu/masonry | High-performance Pinterest-style masonry grid |
| @tuturuuu/games | Game mechanics for platform gamification |
| @tuturuuu/workflows | Workflow automation SDK |
| Package | Description |
|---|---|
| tuturuuu | Official TypeScript SDK for the Tuturuuu API (storage, documents, analytics) |
Our vision for an integrated AI ecosystem:
- Mira - The empathetic conversational interface acting as a warm, trustworthy AI partner
- Aurora - The contextual engine linking emails, tasks, files, and events
- Rewise - An aggregator of leading AI models (partially implemented)
- Nova - Prompt-engineering and alignment platform (implemented)
- Crystal - Multi-modal embodiment enabling real-time voice, video, and screen collaboration
| Category | Technologies |
|---|---|
| Runtime | Node.js v22+, Bun v1.3+ |
| Framework | Next.js 16 with App Router and Turbopack |
| Database | Supabase (PostgreSQL) with RLS |
| Styling | Tailwind CSS v4.1+ |
| State | Jotai, TanStack Query |
| API | tRPC, Vercel AI SDK |
| Testing | Vitest |
| Monorepo | Turborepo |
# 1. Clone the repository
git clone https://github.com/tutur3u/platform.git
cd platform
# 2. Install dependencies
bun i
# 3. Start Supabase (requires Docker)
bun sb:start
# 4. Set up environment files
# Copy .env.example to .env.local in each app directory
# Add Supabase URLs and keys from the sb:start output
# 5. Run the development server
bun devIf you need a real Redis backend outside the Dockerized web flow, there is still a standalone stack under apps/redis. Run bun redis:start from the repo root to boot Redis + the Serverless Redis HTTP proxy and point UPSTASH_REDIS_REST_URL/UPSTASH_REDIS_REST_TOKEN at http://localhost:8079 plus your chosen token. The Dockerized web commands no longer require that manual setup because they generate and inject a local token automatically.
The repo now includes a web-focused Docker workflow that preserves the existing root script contract instead of inventing a separate Docker-only task graph.
bun dev:web:dockerruns the same filtered web dev workload asbun dev:web, but inside Docker.bun devx:web:dockerexplicitly starts local Supabase first, then launches the Dockerized web dev stack.bun devrs:web:dockerexplicitly starts and resets local Supabase first, then launches the Dockerized web dev stack.bun dev:web:docker:downstops the Docker web stack.bun serve:web:dockerbuilds the production runner image and serves it through Docker Compose.bun serve:web:docker:bgperforms a blue/green production deployment with a proxy cutover after the new color passes health checks.bun serve:web:docker:downstops the Dockerized production web stack.bun serve:web:docker:bg:downstops the blue/green production stack and clears the local deployment state.
The Docker service reads runtime values from apps/web/.env.local. By default it uses whatever Supabase URL is already configured there, which is expected to be the cloud project for normal Tuturuuu development and deployment. Only when that URL explicitly points at a host-run local Supabase instance does the Docker helper rewrite the server-side URL to host.docker.internal while leaving the browser-facing NEXT_PUBLIC_SUPABASE_URL unchanged.
Redis is now enabled by default for the Dockerized web commands. The helper generates a stable local token under tmp/docker-web/redis-token, injects UPSTASH_REDIS_REST_URL=http://serverless-redis-http:80 and the matching UPSTASH_REDIS_REST_TOKEN into the web container, and starts the bundled Redis + Serverless Redis HTTP proxy automatically.
The Docker web flow does not require a host bun install just to boot. apps/web/docker/dev-entrypoint.sh installs dependencies into the container-managed /workspace/node_modules volume, and the compose stack also isolates package-local node_modules and dist directories so host installs cannot shadow container-managed workspace artifacts.
Use --without-redis only when you explicitly want the old memory-only fallback. That opt-out also skips injecting the Docker-local Redis URL and token into the web container:
bun dev:web:docker -- --without-redisProduction builds use apps/web/Dockerfile. Keep apps/web/.env.local present for both the build secret and runtime env file. The builder keeps secrets external by accepting a BuildKit secret sourced from that file:
bun serve:web:dockerThe production-style Docker commands now attach the same local Redis companion stack by default and inject the matching Upstash-compatible env values into apps/web automatically. Use --without-redis only when you want to verify the no-Redis fallback path without Docker injecting Redis env values.
When you want rebuild-before-restart behavior on a server that receives new commits via git pull, use the blue/green production path instead of the in-place one:
bun serve:web:docker:bgThat command keeps a stable proxy on port 7803, builds the inactive color (web-blue or web-green), waits for the new container to pass the image healthcheck, validates the generated nginx config with nginx -t, then reloads the proxy and stops the old color. The active color state and generated proxy config live under tmp/docker-web/prod/, which is intentionally local-only and survives normal git pull updates.
docker build \
--secret id=web_env,src=apps/web/.env.local \
-f apps/web/Dockerfile \
--target runner \
.| Command | Description |
|---|---|
bun dev |
Start all apps in development mode |
bun dev:web |
Start main web app only |
bun dev:web:docker |
Start the web dev workflow in Docker |
bun devx:web:docker |
Start local Supabase, then the Docker web dev workflow |
bun devrs:web:docker |
Start/reset local Supabase, then the Docker web dev workflow |
bun dev:web:docker:down |
Stop the Docker web dev workflow |
bun serve:web:docker |
Build and serve the production web image in Docker |
bun serve:web:docker:bg |
Blue/green deploy the production web image in Docker |
bun serve:web:docker:down |
Stop the Dockerized production web workflow |
bun serve:web:docker:bg:down |
Stop the blue/green production web workflow |
bun devx |
Start full stack with persisted database |
bun devrs |
Start full stack with clean, seeded database |
| Command | Description |
|---|---|
bun sb:start |
Start local Supabase (Studio at :8003, InBucket at :8004) |
bun sb:stop |
Stop local Supabase |
bun sb:new |
Create new migration |
bun sb:up |
Apply migrations locally |
bun sb:reset |
Reset database to seed state |
bun sb:typegen |
Generate TypeScript types from schema |
| Command | Description |
|---|---|
bun redis:start |
Start local Redis + Serverless Redis HTTP proxy |
bun redis:stop |
Stop local Redis stack |
| Command | Description |
|---|---|
bun build |
Build all apps and packages |
bun test |
Run all tests |
bun lint |
Check linting |
bun format |
Check formatting |
For a complete list of commands, see the Development Guide.
- Platform Architecture - System design, tRPC, authentication
- Database Reference - Schema and RLS policies
- Package Reference - API documentation
- Development Tools - Monorepo setup, Supabase workflows
- Agent Operating Manual - Guidelines for AI assistants
- CLAUDE.md - Detailed operational instructions
We welcome contributions! Please read our CONTRIBUTING.md for guidelines on submitting pull requests, reporting issues, and suggesting improvements.
For security vulnerabilities, please follow our security policy.
- Follow us on X/Twitter for updates
- Join our GitHub Discussions for support
This project is licensed under the Apache License, Version 2.0. See the LICENSE file for details.
