Skip to content

RichardLi-1/mcbrien

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

McBrien

AI-powered transit planning intelligence. McBrien analyzes networks, generates reports, and models scenarios so transit planners can focus on decisions instead of dashboards.

Named after William C. McBrien, the long-serving chairman of the Toronto Transportation Commission who championed the construction of Canada's first subway.

Repository layout

This is an npm-workspaces monorepo:

apps/
  mcbrien/        Main React + Vite web app (chat UI, landing page, embed demos)
services/
  agent/          Backend agent service

Getting started

Requires Node.js 20+ and npm 10+.

# Install all workspace dependencies
npm install

# Start the McBrien web app dev server
npm run dev

The dev server runs at http://localhost:5173 (or the next free port).

Common commands

Command What it does
npm run dev Start the McBrien app in dev mode
npm run build Type-check and bundle agent + app for production
npm run preview Preview the production build locally
npm run deploy Deploy the McBrien app

Web app

apps/mcbrien is the user-facing surface. Routes:

  • / — Landing page with hero, features, McBrien historical card
  • /chat — Main chat interface
  • /embed — Embed demo page (floating widget + inline sidebar)
  • /privacy — Privacy policy

Notable features

  • Conversation chat with mock streaming, follow-ups, pinned insights, and a summary view
  • Find incomplete work — quick way to jump back to a half-finished conversation
  • Privacy mode — replaces sidebar titles, conversation previews, and "continue where you left off" cards with redacted dashes; auto-enables when screen sharing is detected via getDisplayMedia
  • Embeddable widget + sidebar — drop McBrien into existing transit tools (/embed showcases both)
  • Theme — light and dark modes, system preference by default
  • Serif typography toggle — preference persists across sessions in localStorage

Stack

  • React 19 + Vite 6
  • React Router (browser router)
  • Tailwind CSS v4 with custom CSS variables for theming
  • Lucide icons
  • Lora (Google Fonts) for serif headlines
  • Cloudflare Workers for deployment

Backend (services/agent)

Backend agent service. See services/agent for its own README and setup.

Conventions

  • Inline styles are used heavily for component-local design (chat surfaces, landing page sections). Tailwind utilities are reserved for layout primitives and dark-mode overrides via html.dark .… rules in globals.css.
  • Dark mode uses a class on <html> (html.dark) toggled through ThemeContext and persisted to localStorage under mcbrien-theme.
  • Accent color is the magenta #b03488 (referenced as B in components).
  • Serif stack is 'Lora', 'Tiempos Headline', Georgia, serif. The .mcb-serif class applies the serif with !important so it cascades into markdown-rendered children.

License

Proprietary — © 2026 McBrien Transit. All rights reserved.

About

Transit ai

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages