internal/docs
Aesthetic sample of the proposed research / write-up surface. Standalone Nuxt 3 + Nuxt Content v3 project — intentionally not in pnpm-workspace.yaml, so it can't affect the root lockfile, turbo pipeline, or CI.
internal/docs
Aesthetic sample of the proposed research / write-up surface. Standalone Nuxt 3 + Nuxt Content v3 project — intentionally not in pnpm-workspace.yaml, so it can't affect the root lockfile, turbo pipeline, or CI.
Run
cd internal/docs
pnpm install
pnpm dev
Open http://localhost:3000.
What's in here
content/*.md— sample write-ups with typed frontmattercontent.config.ts— frontmatter schema (zod)pages/index.vue— filterable table (search, tags, status)pages/[...slug].vue— write-up detail view, prose-styledpublic/diagrams/*.excalidraw.svg— inline Excalidraw embed demo
Frontmatter schema
---
title: Power user retention cohort analysis
description: One-liner shown in the table row
tags: [retention, power-users, mobile]
status: published # draft | published | archived
owner: rajiv
date: 2026-05-09
metabaseUrl: https://... # optional
linearUrl: https://... # optional
---
Excalidraw embedding
Save Excalidraw drawings as .svg with "Embed scene" checked. The resulting file is simultaneously:
- a renderable SVG (embed with standard markdown image syntax)
- an editable scene (re-open the same file in excalidraw.com to keep editing)
No runtime React/Excalidraw library needed — it's just an image to the browser.
Comments (giscus)
Per-page discussion threads via giscus, backed by GitHub Discussions on studyflash-ai/studyflash. Mapping is pathname, so each write-up route gets its own thread automatically.
One-time setup:
- On the
studyflash-ai/studyflashrepo, enable Discussions (Settings → General → Features). - Install the giscus GitHub App and grant it access to the repo.
- Create a Discussion category named
Doc comments(type: Announcement — only maintainers can open threads, anyone with repo access can reply). - Visit https://giscus.app, fill in the repo + category, copy the generated
data-repo-idanddata-category-id. - Set the IDs as env vars (e.g. in a local
.envor in deploy config):NUXT_PUBLIC_GISCUS_REPO_ID=R_kgDO... NUXT_PUBLIC_GISCUS_CATEGORY_ID=DIC_kwDO...
Until those IDs are set, the <DocComments /> block silently no-ops — the page renders without a comments section.
Note: commenters need GitHub read access to studyflash-ai/studyflash. This surface is intentionally eng-only.
Why standalone (not in the workspace)
- True quarantine: a half-finished demo can't break the monorepo's build/lint/typecheck pipeline.
- No root-lockfile churn until/unless we decide to graduate this to
apps/research. - The
.npmrchere setsignore-workspace=truesopnpm installworks without parent-workspace interference.