internal/docs/README.md

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 frontmatter
  • content.config.ts — frontmatter schema (zod)
  • pages/index.vue — filterable table (search, tags, status)
  • pages/[...slug].vue — write-up detail view, prose-styled
  • public/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:

  1. On the studyflash-ai/studyflash repo, enable Discussions (Settings → General → Features).
  2. Install the giscus GitHub App and grant it access to the repo.
  3. Create a Discussion category named Doc comments (type: Announcement — only maintainers can open threads, anyone with repo access can reply).
  4. Visit https://giscus.app, fill in the repo + category, copy the generated data-repo-id and data-category-id.
  5. Set the IDs as env vars (e.g. in a local .env or 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 .npmrc here sets ignore-workspace=true so pnpm install works without parent-workspace interference.