Meeting Performance
Ingests call transcripts, scores each speaker across six communication dimensions, and tracks the trend meeting over meeting.
A full-stack starter that carries auth, storage, background jobs, AI and admin out of the box — so a new client application begins at the interesting part. Product modules drop in as self-contained plugins without touching core.

Every client project needs the same foundation: accounts, permissions, file storage, a job queue, email, an admin surface. The chassis owns all of it, and keeps the parts that differ between clients in configuration rather than forks.
A module brings its own routes, schema, jobs and client pages. Adding one is a folder, not a refactor — and removing one leaves no trace in core.
Providers, spend caps, storage drivers, admin access and nudge schedules are environment values. A deployment is configured, never branched.
Every module renders through the same page archetypes, density and tokens. A new surface looks like it always belonged, because it is assembled from parts that already exist.
Each one is a real working surface — schema, API, jobs, and UI — that a client project can keep, cut, or use as the pattern for something new.
Ingests call transcripts, scores each speaker across six communication dimensions, and tracks the trend meeting over meeting.
Document workspaces with chunked indexing and grounded question answering — every claim cites the passage it came from.
Threaded conversations with streaming responses, model selection, and per-request cost accounting rolled into the admin ledger.
Contacts, deals and pipeline stages with an activity timeline and AI-assisted follow-up drafting from the contact page.
Drag-and-drop file handling backed by S3-compatible storage, or the local filesystem when a deployment does not warrant a bucket.
Daily activity streaks counted in a real home timezone, with per-user device sync and an evening reminder that respects local hours.
Audio transcription and delivery feedback, sharing the scoring vocabulary and trend model used by Meeting Performance.
The deliberately small one — a reference implementation of the plugin contract, readable end to end in a sitting.
Three surfaces that show the difference between a module that exists and a module that is finished.
Scores are only useful if you can see where they came from. Analysis and transcript are two views of one workspace: pick a dimension, and the transcript highlights the lines that earned it.

Retrieval is easy; trust is the hard part. Answers lead with a one-line summary, cite numbered sources inline, and every citation opens the source document at the chunk it came from with the supporting sentence highlighted.

Deployment settings are where projects rot. Every value carries the context an operator needs, states plainly whether the environment has pinned it, and flags the ones that only take effect after a restart.

Modules stay coherent because they cannot easily diverge. One token set, one type ramp, one row density, and a fixed set of page archetypes every surface is assembled from.
Chosen for speed of iteration and few moving parts. One runtime, one database, typed end to end.
The interesting conversations are about the decisions — why the plugin boundary sits where it does, why admin is configuration, and what it costs to keep eight modules visually identical.