Apps catalog
Every JSX app on the homepage, in one place, with what it's for and when to use it. All sources live in apps/*.jsx; each is auto-wrapped by deploy.sh into a standalone HTML page.
Daily-use apps
Laurelin — /apps/laurelin.html
The CRM. Companies, people, projects, interactions, sync. The deepest app on the site by far — has its own overview guide.
Recruiting — /apps/recruiting.html
Candidate pipeline. Stages (sourced → screen → interview → offer → hired/passed), evaluation forms, interview notes, integration with Workable for inbound applications.
Dashboards — /apps/dashboards.html
Direct links to Tape Cracker, Trade Screen, and other monitoring dashboards. Effectively a curated bookmarks page.
Team Calendar — /apps/team_vacation_calendar.html
Shared vacation/leave tracker. Vacation, sick leave, personal, holiday. See who's out, spot overlaps, coordinate time off.
Portfolio Reports — /apps/portfolio_reports.html
Portfolio monitoring reports indexed by company and facility. Pulls the daily OATFI-001_PortfolioReport_*.html files into one navigable interface.
Reference & lookup apps
Company References — /apps/company_references.html
The browseable index of partnership reviews. Category filter pills, search, grouped by company. The right way to find a review when you don't know the filename.
Content Library — /apps/content_library.html
Educational explainers on private credit, blockchain, tokenization, onchain finance. JSON-driven — content lives in apps/library/*.json.
DD Matrix — /apps/dd_matrix.html
Due diligence scoring matrix and partnership evaluation rubrics. Rubric JSON in apps/rubrics/. Used for auditing-partner selection and standardized partner scoring.
Underdog Company Reference — /apps/underdog_company_reference.html
Company-specific reference page. Spun off because Underdog's deal had enough surface area to warrant its own quick-access view.
Planning / strategy apps
Project Tracker — /apps/laurelin.html#projects
Just a deep link into Laurelin's Projects tab. Listed separately because some people think of it as a different tool.
Data Ops — /apps/data_ops.html
Operational references — folder-structure views, data documentation. Used by the data team to keep the new folder layout discoverable.
Data Ingestion Plan — /apps/data_ingestion_plan.html
Deal-type → source → pipeline-architecture plan for the data MVP.
Attio Integration Plan — /apps/attio-integration-plan.html
Plan/design doc for the Attio sync (separate from the existing Notion sync).
Valinor Wireframe — /apps/valinor_wireframe.html
Wireframes for product UI work.
Drafts / preview apps
Company Intake — /apps/company_intake.html
New company / project intake form. Currently in preview — submits to a queue but isn't wired to Notion or Laurelin auto-creation yet.
Proposals — /apps/proposals/
PDF proposals indexed for browsing. Not a JSX app per se; PDFs copied through deploy.
How they're built
Every .jsx file in apps/ is wrapped at deploy time:
- Imports are stripped (only
useStateis implicitly available from the runtime, plususeEffect/useRef/useCallback/useMemoare provided automatically in the wrapper). - The
export default functionbecomes a top-levelfunction. - The wrapped file pulls React 18 + Babel-standalone from a CDN and renders the component into
#root. - Result: standalone HTML, no build step, drop a JSX file in and it ships.
Laurelin is the exception. It's bundled with esbuild via apps/laurelin.entry.jsx (cuts first-load from ~30s to ~3s). All other apps still use the Babel path.
For the full wrapping mechanics see Add a JSX app and Architecture.