Thybrid (everything)ThybridOSSeparation plan Folderswebsite/WorkersServices and infraDataDocsCleanup

Thybrid: every folder and component

Inventory of Desktop/thybrid as of 14 Nov 2026, built from three read-only passes over the folders, the website repo and the ThybridOS code. Each item is tagged as Thybrid business, ThybridOS, or shared.

BIZ Thybrid businessOS ThybridOSSHARED bothNEITHER

The short version

Only website/ is a git repo (branch main, f2285dad). Everything else in Desktop/thybrid is plain folders. Inside website/, one Next.js 16 app is built with OpenNext into one Cloudflare Worker named thybrid. That Worker serves the public site (thybrid.com) and ThybridOS (admin.thybrid.com). middleware.ts decides by host. Nine satellite Workers, a few AWS pieces and a Terraform folder sit around it.
1Main Workerpublic site + ThybridOS + write APIs
9Satellite Workerscron, jobs, leads, hot, media, crm-sync, analyzer, reports, mcp
6Static report sitesadsreport, appflow, automations, qa, seoaeo, uxopt
35Neon migrationsone shared CRM schema
~106API routesapp/api, 24 of them cron
~620lib filesapp/lib, 246 shared by both sides
flowchart TD
  ROOT["Desktop/thybrid (not a git repo)"]
  ROOT --> WEB["website/ (git repo, main)"]
  ROOT --> WT["worktrees/ (dev-v3, old-site)"]
  ROOT --> EXP["exports/ (dated deliverables)"]
  ROOT --> ARC["archive/ (dormant)"]
  ROOT --> LG["thybrid-leadgen/ (BIZ)"]
  ROOT --> FV["fran_voice/ (BIZ content)"]
  ROOT --> RS["research/, assets/, tools/, data/"]
  WEB --> APP["app/: site + ThybridOS"]
  WEB --> SAT["9 satellite Workers"]
  WEB --> SITES["6 static report sites"]
  WEB --> SVC["services/ (Lambda, Modal, Meta, Notion)"]
  WEB --> INF["infra/ (Terraform)"]
  WEB --> DOCS["docs/ + db/migrations + tests + scripts"]
  APP --> PUB["public funnel (BIZ)"]
  APP --> OSUI["admin-v2 = ThybridOS (OS)"]
  APP --> LIB["app/lib (shared)"]

Top-level folders

FolderSizeTagWhat it isSuggestion
website/3.6GSHAREDThe only git repo. Site, ThybridOS, Workers, infra, docs.Keep. Real source is about 1.4G.
worktrees/3.3GSHAREDGit worktrees of website/. Now only dev-v3 and old-site, plus a symlink to exports.Cleaned today (was 12G).
exports/8.8GBIZ + OS12 dated folders, 15 Sep to 13 Nov: reports, release logs, wipe backups, ops-arch.Keep as the live log. Offload _zipped (3.0G) and 2026-09-30 (2.5G). Trim offer-film-vo and vision-eval (1.7G).
archive/4.7GNEITHERDormant. trash/ is 4.7G and its README says safe to delete. Also old GHL harness, legacy backups, an unrelated invoice generator.Delete trash/ on the owner's word.
thybrid-leadgen/1.2GBIZLead-gen toolkit: openoutreach (nested git repo), harvey cold-email package, enrich scripts, prospect data with PII, retired Slack bridge.Keep data and harvey. Archive slack and supervisor. The venv is reinstallable.
fran_voice/847MBIZFrancis voice-clone workspace. Generated output is parked (the AI-voice film is not used).Keep samples, golden and scripts (about 100M). Archive output and source (710M).
research/251MBIZBrand and campus research, scrapes of the old site.Keep. Archive raw_ht (219M).
assets/197MBIZBrand kit, brochure editions, 3D models, concept renders.Keep brand. Archive old brochure editions, model and visuals.
exports-main-untracked-2026-11-05/160MBIZ + OSThe only copy of the 27 Oct to 5 Nov deliverables. A missing slice of exports/.Merge into exports/, then delete the wrapper.
tools/2.1MBIZMeta Ads MCP launcher (referenced from global config), Twilio harness, old QA shots.Keep the launcher in place.
data/340KSHAREDTwo encrypted applicant archives (production PII).Keep as is.
loose filessmallNEITHERREADME.md (stale), CLAUDE.md, .env files, 4 stray screenshots.Rewrite README. Trash screenshots.

Inside website/

PathTagWhat it is
app/ve, app/apply, app/book, app/prepareBIZLanding variants (current, scroll, v2home, v3), apply form, booking and prepare pages. v3 is live for all visitors.
app/rewire, sanctuary, gallery, teams, founders-story and similarBIZMarketing and content pages. Short routes /b, /j, /cw, /r, /stop, /m.
app/api/{apply,booker,booking,otp,phone,ev,rec}BIZFunnel APIs. OTP is retired and returns 410.
app/admin-v2, app/api/admin, app/lib/admin-v2OSThybridOS. See the ThybridOS page.
app/api/{stripe,slack,zoom,whatsapp,meta,email,ses,call-bot,cron}OSProvider webhooks and cron doors. Public funnel does not call them.
app/lib (about 620 files)SHARED284 files reached only by the OS, 28 only by the public side, 246 by both.
app/db.ts, server.ts, slack.tsSHAREDDynamoDB layer, server actions (150 KB), all Slack cards (230 KB).
middleware.tsSHAREDSecurity headers, host routing, admin rewrite, CSP.
public/ (435M)BIZLanding media, shared/funnel form kit, booker script. admin-sw.js is OS.
db/migrationsSHARED35 SQL files, one linear history. Most tables are OS-owned.
tests/ (~720 files)SHARED13,228 tests, run with npm test.
scripts/ (118 files)SHAREDDeploy guards, secrets sync, migrations, ve-sync, marketing tools. scripts/admin-v2 is OS.
docs/ (247 files)SHAREDSee the docs section below.
evals/callsBIZ5 scripted call transcripts for the scorer.
wrangler.jsonc, wrangler.dev.jsonc, next.config.tsSHAREDMain Worker and dev Worker config. Main Worker sits at the 128 binding cap.

Workers

WorkerFolderTagJob
thybridapp/SHAREDthybrid.com, www and admin.thybrid.com. Every write API.
thybrid-devsame codeSHAREDdev.thybrid.com. Writes to the same prod data.
thybrid-sweepcron-worker/SHAREDOwns every cron (16 expressions) and calls /api/cron/* with a bearer secret. Consumes the call-score queue.
thybrid-jobsjobs-worker/BIZGoogle offline conversions, Clarity digest, marketing collectors into Neon (OS reads those tables).
thybrid-leadsleads-worker/BIZLead-gen helpers, watchdog on the sweep heartbeat, D1 database.
thybrid-hothot-worker/BIZFast booking slot reads. Imports route code straight from app/.
thybrid-mediamedia-worker/BIZSigned media URLs and site films from R2.
thybrid-adset-analyzeradset-analyzer-worker/BIZDaily ad set check. Standalone.
thybrid-crm-synccrm-sync-worker/OSMonthly cold backup of Neon to R2.
thybrid-mcpmcp-worker/OSRead-only MCP over people, pipeline and calls.
thybrid-reportsreports-worker/BIZdash.thybrid.com Command Centre. Overlaps ThybridOS Home.
6 static Workers*-site/BIZReport pages. No bindings, no secrets.
thybrid-oldworktree old-siteBIZold.thybrid.com, frozen copy of the pre-12-Oct site.

Services and infrastructure

services/ads-syncAWS Lambda, 03:00 Bangkok. Meta numbers into DynamoDB and Notion. Also hosts admin_ai for ThybridOS. BIZ
services/alarm-slackLambda: CloudWatch alarms to #ops-alarms. BIZ
services/llm-modalModal function relaying call scoring to OpenRouter, plus admin_ai. SHARED
services/stt-modalSpeech-to-text benchmark. Not deployed. BIZ
services/meta-api, meta-browserHand-run Meta Graph and Ads UI tooling. Handles tokens. BIZ
services/notion-cc, notion-setupLegacy Command Centre builders in Notion. BIZ
infra/ (Terraform)DynamoDB tables, IAM, Secrets Manager (4 bundles), ads Lambda, transcripts bucket, dash domain. State in S3. The 711M .terraform folder is a provider cache.
Not in TerraformWorkers, KV, R2, D1, queues, Cloudflare Access apps, Neon project, Modal.

Shared data stores

StoreWho writesWho reads
DynamoDB thybrid-applicationsFunnel (create, draft, booking)ThybridOS (status, notes, outcome, payment), analyzer, MCP
DynamoDB admin-users, sessions, audit-log, ai-budgetThybridOSThybridOS
DynamoDB ads-dailyads-sync LambdaBoth
Neon Postgres (about 92 tables)Funnel writes people and appointments. ThybridOS owns the rest.Both, plus jobs, crm-sync, mcp
One KV namespace, bound in 7 WorkersBoth (switches, throttles, heartbeats)Both
R2 crm-archive, site-media; D1 leads; Queue call-scoreSeveralSeveral
Secrets Manager thybrid/workerOwner by handOne bundle feeds both halves

Docs

247 files in website/docs. docs/README.md is the index and a test fails if a markdown file is not linked. Many are 100-byte stubs marked MOVED.

DocTagCovers
OPS.md (313K)SHAREDOps bible: workers, crons, health, invariants, call bot, journey engine, booking calendar, connections, social, exports, GHL boundary, privacy runbook.
CRM.md (161K)SHAREDNeon CRM after GHL retired on 15 Oct.
BOOKING.md (145K)BIZBooking, moving, cancelling, hours, host caps, messaging.
DECISIONS.md (214K)SHAREDDecision log.
META-ADS.md (102K), MONEY.md, DASHBOARD.mdBIZAds state, Stripe figures, dash.thybrid.com.
ROLES.md, AI-API.mdOSPermission matrix, AI API contract.
SECURITY.md, CONSENT.md, GLOSSARY.md, HUMAN-ACTIONS.md, CUTOVER.md, TESTING.mdSHAREDAccess control, consent, constants, open human actions, GHL exit.
docs/ARCHIVE (110 files)BIZ45 dated handoffs, brand, business, legacy, research, vendor tickets.
docs/superpowers (43)SHAREDCall bot, call scoring and consolidation plans and specs.
ARCHITECTURE.md, INTEGRATIONS.mdstubsBoth say MOVED. There is no standalone architecture doc. This site is the first.

Outside the repo: Desktop/thybridos/thybrid-docs holds the ThybridOS Build Plan and Product Overview.

Cleanup status