Built in public · Changelog

How Supernova learned the job.

The product story, newest first: what actually became possible in each stretch, not a list of tweaks. Generated live from the engineering journal; the log is the changelog.

99

improvements shipped

9

days of building

11

shipped per day, avg

9
6 Jul
8
7 Jul
1
8 Jul
2
10 Jul
5
11 Jul
25
12 Jul
6
13 Jul
peak37
14 Jul
6
15 Jul

Product panorama

One deal, one continuous operating loop.

Six agents live in the product today, propose-only, a named human at every gate. Everything below ships; nothing is a mock.

01every desk, daily

Brief

The Daily Brief opens each cockpit: meetings with exact times, deals needing a touch, the one move.

02critic-checked

Draft

The Email Drafter investigates the thread through scoped tools, then a fresh-context critic verifies every claim.

038 dimensions

Qualify

Deal Check scores MEDDPICC with the evidence that earned each score, never vibes.

04pre-call

Prep

Meeting Prep briefs every call: who is in the room, where it stands, what to ask.

05with provenance

Track

The Promise Tracker extracts what each side committed to, source attached, resolved in place.

06propose-only

Audit

Every run costed and receipted: model, tokens, verdict, the audit trail behind every artifact.

14

Jul 2026

Tuesday

4 shipped

Design

Every page polished for espresso: two systemic sweeps + borderless chips

Getting every app page to the landing's bar, by fixing the SYSTEM rather than 30 screens:

Getting every app page to the landing's bar, by fixing the SYSTEM rather than 30 screens:

  • Shadow sweep: 111 hardcoded shadow literals (93× the same raised string) across 50+ files replaced with the theme-aware shadow-rest / raised / float tokens, so every card now has real depth on espresso and the warm tint on cream. Only deliberate one-offs remain (sidebar ring, the changelog glow, kbd inset).
  • Central dark tint layer (globals.css): the ~110 light-assuming status tints (bg-amber-100 text-amber-700 chips, icon tiles, banners) are remapped once, in one place, for .dark/.section-dark — pale washes become translucent hue washes, emphasis text brightens to shades tuned to the dark Daylight palette. The shared status maps (leadStatus/leadTemp/dealStage) ride it with zero call-site changes.
  • Chips lose their borders (Daylight rule): Badge outline → tone wash; Button outline → raised tone step + shadow (no hairline); Kbd and Alert borderless. Badge grew semantic tones (success/warning/danger/info/clay/neutral) so pages converge on ONE chip language instead of hand-rolled spans.

Verified on the espresso app: Pipeline (kanban chips as hue washes), the deal hub (stage gate, MEDDPICC, timeline), Accounts. Also fixed a banned em dash in the pipeline briefing sentence.

Design

Recording page v3: three jobs, three tabs (10/10 pass)

The single-scroll rebuild still read poorly (lopsided hero cards, a wall of 9 uniform risk bullets, a starved rail, no visual anchor). The insight that fixed it: a recorded call has three…

The single-scroll rebuild still read poorly (lopsided hero cards, a wall of 9 uniform risk bullets, a starved rail, no visual anchor). The insight that fixed it: a recorded call has three different jobs — act on it, mine it, read it — so the page is now Overview / Signals / Transcript tabs with a persistent context rail. What made it sing:

  • Parse the structure inside insight strings instead of dumping flat bullets. "Owner (Org) — task" → numbered checklist with initials avatars (clay = Antino, sky = prospect); "Title — detail" → semibold lead-in + muted detail. Same InsightText parser across Signals.
  • Talk time / share of voice — computed from the word-level timestamps (proshort_transcript_segments): a stacked bar + % per speaker (e.g. prospect 55% — a healthy discovery signal). Duration ("24-min call") now in the header sentence and on the video card.
  • Turns, not fragments — 272 utterances merged into 69 speaker turns, per-speaker stable colors, timestamps; transcript flows on the surface in its own tab (no boxed inner scroll).
  • The video is the anchor — the rail leads with a real thumbnail card (play overlay + duration badge → recording URL), then Linked in CRM, then participants with avatars + external count.

getRecordingTranscript gained end_sec. Register: product (earned familiarity — Gong-class patterns, Daylight language).

Design

App-wide em-dash sweep (design copy rule 17)

Replaced 402 prose em dashes ( — inside rendered strings) with commas across 148 files, enforcing the no-em-dash copy rule everywhere, not just the Briefer. The sweep protected code…

Replaced 402 prose em dashes ( inside rendered strings) with commas across 148 files, enforcing the no-em-dash copy rule everywhere, not just the Briefer. The sweep protected code comments (skipped lines starting //, *, /*, and em dashes sitting in trailing line comments) and left the empty-value '—' table glyphs alone (a legit convention, not prose). Builds clean (tsc 0). A few start-of-text-node cases ({' '}— …) the line sweep missed are being caught by hand as spotted.

Design

Lead-hub polish + the company→account reality

Fixes from a live QA pass on the AE lead hub:

Fixes from a live QA pass on the AE lead hub:

  • Company is clickable, and never dead-ends. A lead's company is free text; only 44% map to a real Account (measured: 8,528 of 19,476; 56% don't). So the company links to the account hub when one exists (getLead now returns companyAccountId), otherwise to that company's leads (/ae/leads?q=). The accounts search also got a real empty state: "No account named X, see leads at X →" instead of a blank.
  • Details shows only fields that have a value (the Field primitive returns null when empty, and renders internal hrefs via next/link same-tab).
  • Right-rail cards are equal widthLeadActions had lg:self-start, which shrank it to content inside the flex column; now w-full.
  • Design-system exemplar: the daily briefing elevated (hero headline, ladder body tones, tone-wash separation not border-b), a toast standard (src/lib/ui/toast.ts), and a deterministic em-dash sanitizer on the Briefer. See DESIGN.md 16-18.

12

Jul 2026

Sunday

3 shipped

Design

The page philosophy: whole app re-skinned to the landing (ultracode)

The app didn't read like the marketing landing — garish chart colors, flat surfaces, KPI-tile scoreboards, no motion, espresso buttons. Codified a page philosophy and rolled it across every…

The app didn't read like the marketing landing — garish chart colors, flat surfaces, KPI-tile scoreboards, no motion, espresso buttons. Codified a page philosophy and rolled it across every app page via ultracode workflows.

The philosophy (now the app-wide rule): a page header is a mono eyebrow (clay dot) → a big font-light title → one full-width briefing sentence weaving the key numbers as prose (clay for the key metric) — not a grid of KPI stat-tiles (DESIGN principle 10, "briefing > scoreboard"). Attention is a Pulse only on what's wrong/slipping — never an alarm-number board. Cards lift, never border; sections carry mono eyebrows; numbers are font-mono tabular-nums; entrance/hover motion is reduced-motion-safe (animate-in, never the buggy Reveal wrapper).

Color: the 8-hue entity palette was bright/saturated/cool (#008300 green, #2a78d6 blue, #e34948 red…), clashing on warm cream. Retuned all three sources — the --color-entity-* CSS vars, the JS base/text hexes in entity-colors.ts, and the ENTITY_RAMPS pie ramps in charts.tsx — to muted, cohesive Daylight hues (deal=clay, lead=sage, account=slate-blue, task=amber + muted violet/teal/rose/rust). Buttons: the Button default variant is now the landing's clay pill, so auth + app primary CTAs match the site.

Rollout (workflows): the command page as the exemplar (briefing header + pulses + warm charts + a real horizontal-stacked-bar RepScoreboard) → batch 1 (10 home/admin pages) → batch 2/3 (17 SDR+AE pages) → settings (5 role pages). Every batch preserved functionality — verified in-browser as Anisha (AE): the AE Desk, Pipeline (deal peek still opens), the Deal hub (peek timeline + stage-gate + action rail all intact, "Advance stage" now clay), and settings (change-password form intact). ~40 pages, TSC clean throughout. Note: keep concurrent workflow count modest — running several at once alongside the sibling session starved the dev server once.

Design

Landing rebuilt as the founding-story arc (Company Brain), 10/10 polish

The landing sold a narrow slice ("agentic sales OS"). Grounded in the two source docs the user supplied — antino-supernova-deck.pdf (the founding story: services→outcomes, the 11:47 PM…

The landing sold a narrow slice ("agentic sales OS"). Grounded in the two source docs the user supplied — antino-supernova-deck.pdf (the founding story: services→outcomes, the 11:47 PM resignation, four fault lines, the harness, the Company Brain, "priced like bread not oven-hours") and artifacts-library.html (the real product: a contract-to-production platform, Stages 0→6, maker→gate→checker, artifacts pinned to real standards) — rebuilt / as the full narrative arc: Hero → 11:47 email → four fault lines → the harness (translation chain) → the Company Brain reveal → the living pipeline (0→6 + HITL evidence gate) → the Rosetta-Stone moat → proof (85%+, ontology beats model) → new-world finale + CTA → Apple-style FAQ. Retired the sales-only sections; retitled "Sales OS" → "the Company Brain". Built + polished via two ultracode workflows (5-section build, then a 9-agent 10/10 polish pass against a shared design rubric). Hard lesson: the Reveal scroll-wrapper left sections invisible — all landing sections are now plain server components. Verified end-to-end: zero inter-section gaps (measured via DOM), TSC clean, every section renders. New ember starburst brand mark + favicon (clay→amber on espresso, the deck's collapse→burst motif) replaces the violet nova. Design language unified — app now shares the landing's warm Daylight tokens (.app-theme = :root).

Design

One design language: app adopts the landing's Daylight tokens

The logged-in app and the marketing site had diverged — landing warm Daylight (cream #edeae0, espresso ink, clay accent), app cool shadcn-zinc via the .app-theme scope. User: "why is the…

The logged-in app and the marketing site had diverged — landing warm Daylight (cream #edeae0, espresso ink, clay accent), app cool shadcn-zinc via the .app-theme scope. User: "why is the design language of app pages and landing page different — merge this; I want the landing's design language in all the pages." So .app-theme in globals.css now mirrors the :root Daylight layer: cream page, warm #fbfaf4 cards, espresso ink, clay `#c2613f` on primary/ring/links. One softening — --accent (dense shadcn hover surface) stays a warm neutral #efece2, not clay, so dropdown/ghost hovers don't flare orange. .app-canvas warmed (espresso dots + cream wash). Landing look unchanged (merge, not restyle). Verified on /design: raw tokens render the full warm Daylight palette + clay. Prior "app = shadcn zinc" decision reversed (memory + design-page copy updated); DESIGN.md "Daylight" now governs the app too.

07

Jul 2026

Tuesday

3 shipped

Design

Sidebar app shell, shadcn light theme, org chart redesign, full company mapped, Zoho + sales-process absorbed

Sidebar app shell for every role (AppSidebar + AppShell rewrite): shadcn Sidebar (collapsible to an icon rail), role-aware nav with icons from ROLE_NAV (src/lib/nav.ts), an inline SVG logo…

  • Sidebar app shell for every role (AppSidebar + AppShell rewrite): shadcn Sidebar (collapsible to an icon rail), role-aware nav with icons from ROLE_NAV (src/lib/nav.ts), an inline SVG logo mark (components/logo.tsx) + src/app/icon.svg favicon, breadcrumbs in the header (AppBreadcrumbs), and a user dropdown with sign-out. Replaces the old top-nav; nav-links.tsx deleted. All five role layouts now just render <AppShell user={user}>.
  • Pure shadcn LIGHT theme for the app, scoped to .app-theme on the shell wrapper (globals.css): redefines the standard shadcn tokens and the legacy antino tokens (--ink*, --panel*, --clay*, --sage/rust/amber, sidebar tokens) to zinc/neutral light values. The marketing landing + public pages (:root, .dark, .section-dark) are untouched. Deep Daylight styling is deferred; DESIGN.md's warm-cream rules now apply to marketing only, not the app.
  • All logged-in pages are full width — removed every mx-auto max-w-* wrapper (admin home/users/org/audit/settings, role homes, settings panel).
  • Admin home rebuilt into a real overview (people counts briefing + recent-activity + pending-invites cards; no placeholder). Audit/settings full-width; audit maps ::1/127.0.0.1localhost.
  • Users table: sortable columns, shadcn Select for role, a searchable combobox (select2-style) for manager across all people.
  • Org chart redesigned as a top-down boxed hierarchy (org-tree.tsx): level-colored boxes + connector lines, leaf reports grouped into bulleted boxes, search with highlight, collapse/expand + expand-all/collapse-all, auto-collapse on large trees. page.tsx now roots founders/admins (fixes the bug that hid Radhakanth & Rajesh).
  • Notification bell golden rule: recentNotifications() returns the latest 5 unread only (badge still shows total unread).
  • Full company reporting tree loaded (scripts/apply-designation-tree.ts, idempotent + audited): reads the HR designation sheet's RM column (scripts/data/reporting-lines.json), sets manager_id for IT/Operations/Product while sales keeps the org-chart image tree (Sales/Marketing rows skipped). Aligned the two founder codes (Radhakanth ANTINO306, Rajesh ANTINO57) so their reports resolve. 210 manager changes applied; org chart went from 20 → 230 of 234 placed.
  • Sales domain absorbed into docs/SALES-PROCESS.md (statuses, temperature, opportunity stages, 8-phase flow, processes, tasks, SLAs, RACI) and linked in the docs index.
  • Zoho CRM explored (read-only) and stress-tested against the doc — fault lines found: missing Discovery/Solution-Validation deal stages, temperature ~8% populated, forecast discipline unused (Best Case=1 / Committed=0), 77% of leads stuck in Open, a parallel undisciplined Contacts-status funnel, and bulk-enriched data vs. curated ICP. Zoho OAuth creds stored in .env (gitignored).
  • Fixes found via live Chrome verification: root-layout inline <script><noscript> fallback (kills the React-19 script error + the original hydration warning); TooltipProvider added to the shell (sidebar tooltips were crashing); org-tree invalid <li>-in-<li> nesting → divs. tsc green; interactive checks (sorting, bell, dropdown) verified.
  • Monochrome cleanup pass: replaced every leftover warm token in the app (sage/rust/amber/clay) with shadcn-native patterns — status chips → Badge variants (secondary / destructive / outline), form errors + delete → destructive, success → foreground, notification badge/dot/link → primary/muted-foreground, audit action pill → secondary. Org chart stays intentionally color-coded by level. The scalable win: statuses now render through the shared Badge component, not hand-rolled colored spans.
  • Org chart made scalable for the full 234-person tree (org-tree.tsx), and turned horizontal (left-to-right): root on the left, each level a column to the right, siblings stacked vertically, so a large org grows down the page (natural scroll) instead of sprawling sideways. Auto-collapse to the top 3 tiers on large trees (opens as an overview, not a wall), Expand-all / Collapse-all controls, stray leadership split into their own row, and single leaf reports render as boxes instead of a "Reports (1)" list. Large report groups flow into multiple columns (2 at >10, 3 at >24) so a 40-person team is a compact card, not a tall strip, with no internal scrollbars. Fixed the .orgchart connector CSS hijacking the inner report lists (they were laid out sideways).
  • Calendar hydration fix (ui/calendar.tsx): data-day is now a deterministic YYYY-MM-DD id instead of locale toLocaleDateString(), which mismatched between Node SSR and the browser on every day cell (surfaced on /design).
  • `/design` showcase reskinned to the app's shadcn-light theme (scoped .app-theme on its root); intro copy updated. It was still rendering the old cream Daylight tokens.
Design

Micro-interactions on every component, tested live on /design

18-agent workflow: per-component micro-interaction pass across all 60 shadcn components (79 files: ui/ bases + /design section demos), on the product motion voice — 100–250ms,…

  • 18-agent workflow: per-component micro-interaction pass across all 60 shadcn components (79 files: ui/ bases + /design section demos), on the product motion voice — 100–250ms, ease-out-quart/quint, transform/opacity only, reduced-motion safe, purely presentational (no API changes; the polish reaches every app surface).
  • Highlights: checkbox check pops in + indeterminate now renders a minus; radio dot zooms in; switch thumb eases across and compresses on press; slider thumb grows on hover/grab; select/combobox chevrons rotate open and their check indicators pop; OTP digits pop in; input-group copy button flashes a sage confirmation; kbd chips got keycap depth; button trailing icons nudge on hover; toggles scale on press (suppressed in fused segments); avatar images fade in on load; badges-as-links sink on press; field errors rise in; and equivalent passes across feedback, navigation, overlay, and data components.
  • Every one of the 62 /design sections functionally tested in Chromium (Playwright): toggles flipped, overlays opened and Escape-closed, sliders dragged, tabs switched, toasts fired — state asserted via aria/data attributes, console errors collected, screenshots reviewed.
  • 3 real issues found, all fixed and re-verified: CommandDialog crashed the page when opened (missing cmdk <Command> root inside the dialog — real bug, now fixed in ui/command.tsx); split-dropdown menu rendered at min-width; line-chart x-axis dropped its first tick. Build green.
Design

Audit trail page, integrations keys, org chart, audit geo-context, UI polish

/admin/audit — the audit spine gets its read surface: filterable trail (action select from the registry, actor/entity search), expandable rows with before/after payloads and full request…

  • `/admin/audit` — the audit spine gets its read surface: filterable trail (action select from the registry, actor/entity search), expandable rows with before/after payloads and full request context.
  • Audit context enrichmentrecordAudit() now captures ip, raw user agent plus parsed browser/OS/device (ua-parser-js), geography (Vercel/Cloudflare headers when deployed; null locally), referer, and accept-language on every event, automatically for all call sites.
  • Integrations (/admin/settings, admin-only) — Resend + Anthropic API keys stored AES-256-GCM encrypted (key derived from SESSION_SECRET); format-validated (re_… / sk-ant-…); masked previews only (re_••••••cdef) in UI, audit (SETTING_UPDATED), and admin notifications. New app_settings table + SETTING_KEYS/getSetting/setSetting in src/lib/settings.ts.
  • `/admin/org` — org chart from users.manager_id: CEO → Director → Heads → Key Accounts tree with role badges, report counts, suspended dimming, and the unmapped-people count.
  • UI sweep: show/hide toggle on every password field (shared PasswordInput); every button now carries an icon; nav gained an active state (clay underline + aria-current); users table gained an empty state for no-match searches.
  • Tested in real Chromium (Playwright): 16-check flow suite (sign-in incl. show-password toggle, add person → invite accept → bell → change password → suspend/blocked-sign-in → reactivate → forgot-password) plus org/integrations checks — all green, screenshots delivered.
  • Known hydration warning on <html> (js class script from the landing work) noted for a future fix.

06

Jul 2026

Monday

2 shipped

Design

Docs refresh + full-width /design

Root README.md rewritten from create-next-app boilerplate to a real project readme: stack, env setup (APP_DATABASE_URL, SESSION_SECRET), seeding scripts, dev sign-in, house rules, docs…

  • Root README.md rewritten from create-next-app boilerplate to a real project readme: stack, env setup (APP_DATABASE_URL, SESSION_SECRET), seeding scripts, dev sign-in, house rules, docs pointers.
  • ENTITIES.md brought current: two-pass seeding story (sheet import + org tree), 232-user total, full audit action list.
  • TASKS.md: committed batch (90edadf) moved to Done.
  • /design main column is now full width (dropped the max-w-4xl cap) — component sections fill the viewport beside the sidebar.
Design

Landing page, design system port, /design showcase, polish pass

Design system ported from antino.nuvio.dev (our own production site): full token set (warm cream/espresso/clay, light + dark + .section-dark island) into globals.css (Tailwind v4 @theme),…

  • Design system ported from antino.nuvio.dev (our own production site): full token set (warm cream/espresso/clay, light + dark + .section-dark island) into globals.css (Tailwind v4 @theme), IBM Plex Sans/Mono via next/font, radius 14px, warm elevation scale (shadow-rest/raised/float).
  • shadcn/ui installed — all 60 components at src/components/ui, restyled by the token layer.
  • Landing page (`/`) rebuilt from the live site, sections 00–09 verbatim: dark hero with typewriter briefing card, sample email with numbered receipts, eight-agents grid, animated counters, principles, how-it-works tabs, stop/start diff, built-by stats, FAQ accordion, pilot CTA. Built via a 10-agent ultracode workflow (theme → build → assemble → verify → 3 reviewers → fixer; 12/13 findings fixed).
  • `/design` showcase — 62 sections, every installed component with variants, foundations (tokens/type/radius), scrollspy sidebar, dark-preview strip. All 78 sidebar links verified against section ids.
  • Lift, not borders (rule locked): ~60 card containers across 35 files converted from hairline outlines to tone step + warm shadow + card-lift hover.
  • Polish pass (browser-audited on the production build): hero headline geometry fixed to match source (3 lines), text-balance on display headings, terminal-style caret blink, breathing LIVE dots, feed-row hovers, button press states + arrow nudges, nav underline slides, FAQ numbers turn clay when open, and annotation-cards ↔ email-superscript hover linking. All motion ease-out, reduced-motion safe. Verified live: agents grid, counters (1/15/8/0.59/0), accordion, scrollspy; zero console errors.
  • Stub /privacy + /terms pages; playwright added as devDep (used for full-page captures).