Dashboard →

Under the hood

Platform
Architecture.

This site is one app in a four-app Turborepo monorepo. Each app is independently deployable, shares a common type-safe API layer, and is designed to scale without rewriting anything.

mlebotics.com Turborepo monorepo · pnpm workspaces

apps/

marketing Live
console In Progress
studio In Progress
docs Planned

packages/

@mlebotics/api
@mlebotics/ui
@mlebotics/utils
@mlebotics/config
@mlebotics/sdk-js

Apps

Four apps. One codebase.

Each app has a single responsibility. They share UI components, utils, and the tRPC API layer — but deploy independently.

marketing Live

mlebotics.com

Public-facing site. Static-first, zero JS by default. Fastest possible load for SEO and brand.

Astro 4 + React :54321
console In Progress

console.mlebotics.com

User dashboard. Auth-gated, real-time data via Firebase. tRPC API layer connects to shared backend.

Next.js 15 App Router :3001
studio In Progress

studio.mlebotics.com

Internal content and config editor. Build and manage robots, workflows, and AI task templates.

Next.js 15 App Router :3002
docs Planned

docs.mlebotics.com

Developer documentation. API references, SDK guides, integration walkthroughs, and changelogs.

Next.js 15 (MDX) :3003

Shared packages

One change. Every app benefits.

Shared packages live in packages/ and are consumed via pnpm workspace resolution. No duplication, no drift.

@mlebotics/api

Shared tRPC router definitions — type-safe API contract used by console, studio, and docs.

@mlebotics/ui

Component library with shared design tokens, buttons, inputs, and layout primitives.

@mlebotics/utils

Pure utility functions — date formatting, validation helpers, constants.

@mlebotics/config

Shared TypeScript, ESLint, Tailwind, and PostCSS configs across all apps.

@mlebotics/sdk-js

Public JavaScript/TypeScript SDK for interacting with the MLEbotics platform API.

Tech stack

Every choice was deliberate.

No trend-chasing. Each tool was selected because it solves a specific problem at scale.

Monorepo Turborepo + pnpm workspaces Parallel builds, shared cache, single dependency graph.
Language TypeScript 5 Strict mode across all apps and packages. End-to-end type safety.
Marketing Astro 4 Island architecture — React components hydrate only where needed.
Apps Next.js 15 App Router RSC-first. Streaming, server actions, and edge-ready routing.
API tRPC v11 Type-safe RPC — no code-gen, no REST spec drift, full inference.
Database Firebase Firestore Real-time sync for live data. Prisma for relational data needs.
Auth Firebase Auth Google/email providers. JWT passed to tRPC context for RBAC.
Styling Tailwind CSS 3 Utility-first. Shared config enforces design token consistency.
Deploy Vercel + Firebase Hosting Edge network for all Next.js apps. Astro on Firebase Hosting.
CI/CD GitHub Actions + Turbo Remote cache-aware pipeline. Only affected apps rebuild on push.

Roadmap

Built in phases. Shipped continuously.

Each phase builds on the last. Nothing is thrown away — only extended.

01

Foundation

Live
  • Turborepo monorepo with pnpm workspaces
  • Shared packages: ui, utils, api, config, sdk-js
  • Astro marketing site (this site)
  • Firebase Auth + Firestore setup
  • Vercel deployment pipeline
02

Platform Core

In Progress
  • Console dashboard (project management, live metrics)
  • Studio editor (robot/workflow/AI template builder)
  • tRPC API layer with shared router
  • User auth flows and role-based access
  • Firebase real-time listeners in console
03

Developer Layer

Planned
  • Docs site with full API reference (MDX)
  • Public SDK (sdk-js) + npm release
  • Webhook system for external integrations
  • Plugin/marketplace architecture
  • OpenAPI export from tRPC schema
04

Scale & Ecosystem

Planned
  • Edge-deployed API routes (Vercel Edge Functions)
  • Multi-region Firestore + read replicas
  • Event bus for cross-app messaging
  • Autonomous agent execution environment
  • Robot firmware OTA update pipeline

Scalability

Designed to grow without breaking.

Scalability isn't a feature added later — it's a structural property baked in from the start.

01

Monorepo isolation

Each app is fully independent — it can be extracted, scaled, or replaced without touching others. Turborepo's task graph ensures only changed packages rebuild.

02

Edge-first deployment

All Next.js apps target Vercel's edge network. Static pages are served from CDN. Dynamic routes stream from the nearest region to the user.

03

Type-safe API boundary

tRPC eliminates the client–server contract drift that breaks scale. A single router file is the source of truth — rename a field and TypeScript catches every call site instantly.

04

Shared package versioning

Internal packages use workspace:* resolution. Breaking changes in @mlebotics/ui are caught at compile time before any app deploys. No silent runtime regressions.

05

Real-time by default

Firebase Firestore listeners mean the console scales to thousands of concurrent users without polling. State is pushed, not pulled.

06

CI with remote cache

Turborepo remote cache means a cold CI run on an unchanged app takes seconds, not minutes. Time-to-deploy stays flat as the codebase grows.

See what runs on this platform

Every project is a direct product of this architecture.