Add the web app, seed data, and user-selectable theming

apps/web — React, Vite, Tailwind, shadcn-idiom components. Mobile Safari is a
first-class target, not an afterthought:

- Two navigation treatments rather than one compromise. A bottom tab bar on
  phones, because the top of a large phone is out of thumb reach; a persistent
  sidebar from lg upward, so an iPad in portrait gets it too.
- Safe-area insets throughout, so the tab bar clears the home indicator and the
  last row of a list is actually reachable.
- Inputs are pinned to a 16px minimum, which is the correct fix for Safari
  zooming on focus. user-scalable=no is not used: it breaks pinch-zoom for
  everyone and recent iOS ignores it anyway.
- The pipeline board becomes a stage picker on phones. An eight-column board
  scrolling horizontally on a 390px screen is technically responsive and
  practically useless.

Theming: users pick an accent and the whole interface re-tints. Accent values
live once, in @pig/core, and are written onto the root element at runtime —
there is no CSS copy to drift from the TypeScript. Preferences are stored
server-side so they follow a person between laptop and phone, mirrored into
localStorage only so the pre-paint script can avoid a white flash. Status
colours stay fixed regardless of accent: if "at risk" re-tinted to whatever
someone picked, the signal would be gone.

Seed data is public research, every record carrying a confidence grade and a
source URL. No email addresses are seeded or inferred — none are published, and
guessing them from a name and a domain is unreliable and rude. Authorship is
not promoted to employment: contributors, residency participants and alumni are
recorded as what the evidence actually shows, and a name that could not be
sourced at all is listed as unresolved rather than invented.

Three defects found and fixed by actually running it rather than assuming:

1. The seed was not idempotent. onConflictDoNothing() with no target is a no-op
   without a matching unique constraint, so a second run duplicated 27
   contacts. There is deliberately no unique index on (account, name) — two
   people at one company can share a name — so idempotency is enforced in the
   seed instead of by bending the schema.
2. /capacity scrolled sideways on a phone. Grid items default to
   min-width:auto and `truncate` sets nowrap, so a long title became
   unshrinkable content and widened the track. Fixed with min-w-0 on every
   truncating grid child.
3. The idle-capacity alert silently failed to fire at exactly 80% utilisation,
   losing a float comparison against a 0.2 threshold. Moved to 0.15, which is
   also a more sensible line for "worth attention".

The worked example is tuned to teach rather than to flatter: 70% sold at a 53%
markup lands at +6.7% margin with 20% still idle, so both the healthy number
and the alert are visible. Drop the sold share to 55% and the same block goes
underwater — that sensitivity is the argument for the product.

Verified in a real browser at 393px and 1440px, light and dark: zero horizontal
overflow on every route, zero console errors.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-08-12 19:16:43 -07:00
parent 7aeec0c632
commit de33a03524
30 changed files with 12765 additions and 1 deletions
+373
View File
@@ -0,0 +1,373 @@
/**
* Seed roster — publicly documented people at Prime Intellect.
*
* Every record carries a confidence grade and a source URL. This is not
* decoration: PIG holds claims about real people assembled from public
* sources, and some of those claims rest on a single weak citation. A CRM that
* presents a single-source LinkedIn headline with the same weight as a
* corroborated one is a misinformation store with a nice table view.
*
* Rules applied throughout, and worth keeping if you extend this file:
*
* • **No email addresses.** None are published, and guessing them from a name
* and a domain would be both unreliable and rude to the person on the
* receiving end.
* • **Authorship is not employment.** People named on papers or in
* repositories are recorded with the affiliation actually evidenced —
* `contributor`, `resident`, `alumni` — never promoted to `staff` because
* it would make the roster look fuller.
* • **"Not found" is recorded as unverified, not invented.** Where a name was
* supplied but could not be sourced, the record says so.
*
* Sourced as of August 2026. It will go stale; that is what `sourceUrl` and
* `confidenceNote` are for.
*/
import type { AffiliationKind, ConfidenceGrade, Team } from '@pig/core';
export interface SeedPerson {
fullName: string;
title: string | null;
affiliation: AffiliationKind;
confidence: ConfidenceGrade;
confidenceNote?: string;
sourceUrl?: string;
githubHandle?: string;
twitterHandle?: string;
linkedinUrl?: string;
websiteUrl?: string;
/** Which PIG team this person would sit on, if they were a user. */
team?: Team;
isDecisionMaker?: boolean;
departed?: boolean;
}
export const PRIME_INTELLECT_PEOPLE: SeedPerson[] = [
// ------------------------------------------------------------- leadership
{
fullName: 'Vincent Weisser',
title: 'Co-founder & CEO',
affiliation: 'founder',
confidence: 'confirmed',
sourceUrl: 'https://api.github.com/users/vincentweisser',
githubHandle: 'vincentweisser',
twitterHandle: 'vincentweisser',
websiteUrl: 'https://vincentweisser.com',
linkedinUrl: 'https://www.linkedin.com/in/vincentweisser/',
isDecisionMaker: true,
},
{
fullName: 'Johannes Hagemann',
title: 'Co-founder & CTO',
affiliation: 'founder',
confidence: 'confirmed',
confidenceNote: 'GitHub bio states "co-founder/cto @PrimeIntellect-ai".',
sourceUrl: 'https://api.github.com/users/JohannesHa',
githubHandle: 'JohannesHa',
twitterHandle: 'johannes_hage',
websiteUrl: 'https://hagemann.ai',
isDecisionMaker: true,
},
{
fullName: 'Jannik Straube',
title: 'Founding Head of Engineering',
affiliation: 'staff',
confidence: 'probable',
confidenceNote:
'Title from a LinkedIn headline seen via search index, not a fetched primary page. ' +
'Employment itself is well evidenced: top contributor to the protocol and prime repos.',
sourceUrl: 'https://api.github.com/users/JannikSt',
githubHandle: 'JannikSt',
linkedinUrl: 'https://www.linkedin.com/in/jannikstraube/',
},
// -------------------------------------------------------------- go-to-market
{
fullName: 'Scott Cecil',
title: 'GTM Lead',
affiliation: 'staff',
confidence: 'confirmed',
confidenceNote:
'Corroborated by two independent sources. The only publicly identifiable ' +
'commercial hire found.',
sourceUrl: 'https://theorg.com/org/prime-intellect/offices/hq',
linkedinUrl: 'https://www.linkedin.com/in/scottcecil1/',
team: 'demand',
isDecisionMaker: true,
},
{
fullName: 'Alex Ferguson',
title: 'Head of Growth',
affiliation: 'staff',
confidence: 'confirmed',
confidenceNote:
'Quoted by name and title in a published Nebius customer story, and publishes ' +
"Prime Intellect's open-roles posts. Note: absent from GitHub org membership and " +
'paper author lists, which is expected for a growth role and is not evidence against.',
sourceUrl: 'https://nebius.com/customer-stories/prime-intellect',
twitterHandle: 'afurgs',
linkedinUrl: 'https://www.linkedin.com/in/afurg/',
team: 'demand',
isDecisionMaker: true,
},
{
fullName: 'Tyler Kovalcik',
title: 'AI infrastructure sales / GTM strategy',
affiliation: 'unknown',
confidence: 'unverified',
confidenceNote:
'Single self-reported LinkedIn profile. No corroborating source found, and no ' +
'Tyler appears in any Prime Intellect repository, paper, or org listing. ' +
'Verify before acting on this record.',
linkedinUrl: 'https://www.linkedin.com/in/tyler-kovalcik-30342367/',
team: 'supply',
},
// ------------------------------------------------------------------ research
{
fullName: 'Sami Jaghouar',
title: 'Research lead',
affiliation: 'staff',
confidence: 'confirmed',
confidenceNote:
'GitHub bio reads "leading research @PrimeIntellect-ai". First author on ' +
'INTELLECT-1, INTELLECT-2 and OpenDiLoCo.',
sourceUrl: 'https://api.github.com/users/samsja',
githubHandle: 'samsja',
twitterHandle: 'samsja19',
team: 'research',
},
{
fullName: 'Will Brown',
title: 'Research lead — RL environments',
affiliation: 'staff',
confidence: 'confirmed',
confidenceNote:
'Creator and top contributor of `verifiers`, the library behind the Environments ' +
"Hub. Named in the Environments Hub launch post as the contact for RFCs. Exact " +
'internal title not published; the role is inferred from ownership.',
sourceUrl: 'https://www.primeintellect.ai/blog/environments',
githubHandle: 'willccbb',
twitterHandle: 'willccbb',
websiteUrl: 'https://willcb.com',
team: 'research',
},
{
fullName: 'Jack Min Ong',
title: 'Founding Research Engineer',
affiliation: 'staff',
confidence: 'confirmed',
sourceUrl: 'https://arxiv.org/abs/2407.07852',
githubHandle: 'Jackmin801',
twitterHandle: 'jackminong',
team: 'research',
},
{
fullName: 'Mika Senghaas',
title: 'Research engineer',
affiliation: 'staff',
confidence: 'confirmed',
sourceUrl: 'https://api.github.com/users/mikasenghaas',
githubHandle: 'mikasenghaas',
twitterHandle: 'mikasenghaas',
websiteUrl: 'https://mikasenghaas.de',
team: 'research',
},
{
fullName: 'Florian Brand',
title: 'Evals',
affiliation: 'staff',
confidence: 'confirmed',
confidenceNote: 'GitHub bio reads "Evals @ Prime Intellect".',
sourceUrl: 'https://api.github.com/users/xeophon',
githubHandle: 'xeophon',
twitterHandle: 'xeophon',
team: 'research',
},
{
fullName: 'Sebastian Müller',
title: 'Research Engineer',
affiliation: 'staff',
confidence: 'confirmed',
confidenceNote: 'GitHub bio states the role. Co-author of the Prime Agent post.',
sourceUrl: 'https://api.github.com/users/snimu',
githubHandle: 'snimu',
twitterHandle: 'omouamoua',
team: 'research',
},
{
fullName: 'Ameen Patel',
title: 'Inference',
affiliation: 'staff',
confidence: 'confirmed',
confidenceNote: 'GitHub bio reads "Inference @PrimeIntellect-ai".',
sourceUrl: 'https://api.github.com/users/AmeenP',
githubHandle: 'AmeenP',
twitterHandle: 'ameen_ml',
team: 'research',
},
{
fullName: 'Kevin Jose Thomas',
title: 'Prime Agent',
affiliation: 'staff',
confidence: 'confirmed',
sourceUrl: 'https://www.primeintellect.ai/blog/prime-agent',
githubHandle: 'kevinjosethomas',
twitterHandle: 'kevinjosethomas',
team: 'research',
},
{
fullName: 'Damian Barabonkov',
title: 'Member of Technical Staff',
affiliation: 'staff',
confidence: 'confirmed',
sourceUrl: 'https://api.github.com/users/DamianB-BitFlipper',
githubHandle: 'DamianB-BitFlipper',
twitterHandle: 'damian_b',
team: 'research',
},
{
fullName: 'Dominik Scherm',
title: 'Member of Technical Staff',
affiliation: 'staff',
confidence: 'confirmed',
sourceUrl: 'https://api.github.com/users/d42me',
githubHandle: 'd42me',
twitterHandle: 'dominik_scherm',
team: 'research',
},
{
fullName: 'Cooper Miller',
title: 'Member of Technical Staff',
affiliation: 'staff',
confidence: 'confirmed',
sourceUrl: 'https://api.github.com/users/kcoopermiller',
githubHandle: 'kcoopermiller',
twitterHandle: 'kcoopm',
team: 'research',
},
{
fullName: 'Mario Sieg',
title: 'ML / HPC / compilers',
affiliation: 'staff',
confidence: 'probable',
confidenceNote: 'GitHub company field lists Prime Intellect alongside TU Berlin.',
sourceUrl: 'https://api.github.com/users/MarioSieg',
githubHandle: 'MarioSieg',
twitterHandle: '_mario_neo_',
team: 'research',
},
{
fullName: 'Matej Sirovatka',
title: 'Research engineer',
affiliation: 'staff',
confidence: 'probable',
confidenceNote: 'GitHub company field only; no title published.',
sourceUrl: 'https://api.github.com/users/S1ro1',
githubHandle: 'S1ro1',
team: 'research',
},
{
fullName: 'Manveer Basra',
title: null,
affiliation: 'staff',
confidence: 'probable',
confidenceNote: 'GitHub company field; co-author on INTELLECT-1 and INTELLECT-2.',
sourceUrl: 'https://arxiv.org/abs/2412.01152',
githubHandle: 'manveerxyz',
team: 'research',
},
{
fullName: 'Jessica Li',
title: 'Applied Researcher',
affiliation: 'staff',
confidence: 'unverified',
confidenceNote: 'Single crowd-sourced org-chart listing. No primary source found.',
sourceUrl: 'https://theorg.com/org/prime-intellect/offices/hq',
team: 'research',
},
// ----------------------------------------------- explicitly NOT current staff
{
fullName: 'Justus Mattern',
title: 'Alumnus — now co-founder elsewhere',
affiliation: 'alumni',
confidence: 'confirmed',
confidenceNote:
'Co-author on INTELLECT-2 and a prime-rl contributor. GitHub bio now reads ' +
'"Cofounder at Proximal", so this is a warm-intro node rather than a current ' +
'employee. Recorded to keep the roster honest.',
sourceUrl: 'https://api.github.com/users/justusmattern27',
githubHandle: 'justusmattern27',
departed: true,
},
{
fullName: 'Alex Wa',
title: 'RL Residency participant',
affiliation: 'resident',
confidence: 'probable',
confidenceNote:
"Real, and did develop RL environments in Prime Intellect's RL Residency — but " +
'is a Yale undergraduate interning elsewhere, NOT staff. Distinct from Alexandr ' +
'Wang (Scale AI / Meta), and possibly a garbling of Alex L. Zhang, a genuine ' +
'Prime Intellect person and Prime Agent co-author.',
sourceUrl: 'https://djdumpling.github.io/',
linkedinUrl: 'https://www.linkedin.com/in/alex-wa/',
},
{
fullName: 'Alex L. Zhang',
title: 'Prime Agent co-author',
affiliation: 'staff',
confidence: 'probable',
confidenceNote: 'Named as a co-author on the Prime Agent post. No further detail published.',
sourceUrl: 'https://www.primeintellect.ai/blog/prime-agent',
team: 'research',
},
{
fullName: 'Seth Karten',
title: 'Prime Agent co-author',
affiliation: 'staff',
confidence: 'probable',
sourceUrl: 'https://www.primeintellect.ai/blog/prime-agent',
team: 'research',
},
];
/**
* Named in the brief but not findable.
*
* Recorded deliberately rather than silently dropped: "we looked and found
* nothing" is useful information, and leaving it out invites someone to add
* the name again from memory. Absence here is weak evidence — a junior or
* deliberately non-public employee looks identical to this search.
*/
export const UNRESOLVED_NAMES = [
{
name: 'Anirudh',
note:
'No Anirudh of any surname could be tied to Prime Intellect in GitHub org ' +
'membership, repository contributors, paper author lists, org charts, or blog ' +
'bylines. Not seeded. If you know who this is, add them with a source.',
},
];
/**
* Customer references the company itself publishes.
*
* Useful as accounts, but note these are named as references and integrations,
* which is not the same as a paying compute customer — a distinction worth
* keeping in a CRM.
*/
export const PUBLIC_CUSTOMER_REFERENCES = [
{
account: 'Ramp',
person: 'Karim Atiyeh',
title: 'Co-CEO',
sourceUrl: 'https://www.primeintellect.ai/',
},
{
account: 'Zapier',
person: 'Robin Salimans',
title: 'Principal AI Engineer',
sourceUrl: 'https://www.primeintellect.ai/',
},
];