Digital products, blueprints, and research
Structure of the FrankX product catalog in data/products.json, the research publication gate, and the frankx.ai/docs proxy route.
frankxai/frankx.ai-vercel-website/data/products.json, frankxai/frankx.ai-vercel-website/scripts/check-research-publication.mjs, frankxai/frankx.ai-vercel-website/app/docs/[[...slug]]/route.tsFrankX combines digital product blueprints (data/products.json), source-verified research hubs (app/research/), and proxied brand documentation (app/docs/[[...slug]]/route.ts) inside frankxai/frankx.ai-vercel-website.
Product catalog structure (data/products.json)
The product catalog in frankx.ai-vercel-website/data/products.json defines 21 product entries rendered at /products/[slug] and linked across the homepage and domain hubs. Each record includes id, slug, name, category, badge, headline, promise, transformation[], socialProof, offer, modules[], faq[], analyticsId, and optional delivery metadata.
Unprovisioned commercial offers route their primary CTA to /waitlist?intent=<slug> rather than exposing an unconfigured checkout button.
| Category | Verified catalog entries (data/products.json) | Pricing & delivery posture |
|---|---|---|
| Life Architecture | creators-soulbook (soulbook) | Free download (/soulbook/vault, PDF blob products/soulbook/soulbook-7-pillars-framework.pdf) |
| Creator Tools | vibe-os (vibe-os) | Free web tool (/products/vibe-os/app and /products/vibe-os/docs) |
| Creative Intelligence | creative-ai-toolkit (creative-ai-toolkit) | $47 offer; routed to /waitlist?intent=creative-ai-toolkit |
| Creator Systems | generative-creator-os, agentic-creator-os, reality-architect-os, system-architect-starter-kit (starter-kit), command-center-template, founders-circle-guild (founders-circle), infogenius-pro | Free open-source repo (realityarchitect), diagnostic/application flows, or waitlist capture (/waitlist?intent=starter-kit, /waitlist?intent=command-center) |
| Music Intelligence | 5-suno-prompts (free at /music-lab), suno-prompt-library ($27) | Free prompt guide + waitlist capture (/waitlist?intent=suno-prompt-library) |
| Design + AI | aurora-ui-kit ($19), agentic-content-engine ($97) | Routed to /waitlist?intent=aurora-ui-kit and /waitlist?intent=agentic-content-engine |
| Story Systems & Books | creation-chronicles ($497), plus 6 book entries (love-and-poetry, spartan-mindset, self-development, imagination, manifestation, golden-age) | Free online reading at /books/<slug> |
Research publication gate (scripts/check-research-publication.mjs)
Public research claims in frankx.ai-vercel-website are gated by scripts/check-research-publication.mjs, which validates both data/research/approved-claims.json (validateApprovedClaims) and the TypeScript source registries lib/research/sources.ts and lib/research/validated-claims.ts (findUnsupportedGeneratedGrades).
1. Approved claims ledger (validateApprovedClaims)
Every claim in data/research/approved-claims.json (schemaVersion: 1) must satisfy:
- Stable slug & dossier: Unique kebab-case
id,domainslug,text(at least 20 characters), and all 9 requireddossierfields (question,scope,method,inclusionCriteria,exclusionCriteria,limitations,contraryEvidence,correctionCheck,rightsDecision, each at least 20 characters). - Publication status: Must be one of
supported-synthesis,vendor-claim,preprint-finding, orindependently-replicated. - Direct HTTPS sources: Every source requires
title,locator,version,type(journal,preprint,official-report,benchmark, ordocumentation), and a direct HTTPS URL. Search result URLs (google.com,bing.com,scholar.*,/search) and self-referentialfrankx.aiURLs are rejected. - Independent replication proof: Claims marked
independently-replicatedrequire at least two distinct studies from two independent organizations plus areplicationReceipt(protocolUrl,resultUrl,team,performedAt). - Human maker-checker receipt:
reviewedBymust be a named human reviewer (never an agent/bot identifier likeai,agent,claude,codex,gpt, orllm), distinct fromdraftedBy, paired with areviewReceiptpinningrepository: 'frankxai/frankx.ai-vercel-website', a 40-hex-characterheadSha,prNumber,reviewId, andreviewerLogin.
2. Generated grade guard (findUnsupportedGeneratedGrades)
The script parses exported literals (domainSources, validatedClaims, researchBriefs) in lib/research/sources.ts and lib/research/validated-claims.ts and fails if any entry:
- Uses a search engine URL or self-referential
/research/citation. - Marks
type: 'journal'or'conference'without a primary identifier (doi.org/,pubmed.ncbi.nlm.nih.gov/, orarxiv.org/abs|pdf/). - Claims
confidence: 'high',replicationStatus: 'replicated',evidenceQuality: 'rct', orcrossRefCount > 0without a backing primary source URL. - Uses the banned
PhD-gradeprestige label anywhere in a string field.
# Run the research publication gate and its unit test suite
node scripts/check-research-publication.mjs
node --test scripts/tests/research-publication-gate.test.mjsHow frankx.ai/docs proxies to docs-platform
The App Router handler at app/docs/[[...slug]]/route.ts (backed by lib/docs-proxy.ts) serves the FrankX documentation tenant at https://frankx.ai/docs:
- Path mapping & content negotiation: Bare
/docsmaps to/frankx/intro. Requests ending in.mdor carryingAccept: text/markdown(weighted higher thantext/html) resolve to/llms.mdx/frankx/<slug>/content.md./docs/llms.txtmaps to/llms-index/frankxand/docs/llms-full.txtmaps to/llms-full.mdx/frankx. - Forwarded headers & timeout budget: The proxy forwards
accept,rsc,next-router-prefetch,next-router-state-tree, andnext-urlwith a20,000msconnect/header timeout (UPSTREAM_TIMEOUT_MS) and follows up to3manual redirects (UPSTREAM_REDIRECT_HOPS), rejecting any redirect that leaves thefrankxdocs prefix. - Response rewriting (
rewriteForProxyHost): Fortext/htmlandtext/x-componentresponses, root-relative"/frankx/..."links are rewritten to"/docs/...", while"/_next/...","/llms.mdx/frankx/...", and"/llms-index/frankx"rewrite to absoluteDOCS_ORIGINURLs.