Moved from maxwell/blog to standalone repository. - Next.js research journal application - Notes 001-005 with YAML/MD content structure - Claude Code configuration for blog development Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2.7 KiB
2.7 KiB
A Research Journal
Personal research projects exploring unfamiliar territory with AI.
Parent context: See ../CLAUDE.md for project-wide routing.
Development
npm install
npm run dev
Architecture
This blog uses a data-driven architecture:
- Content lives in
content/- YAML metadata + Markdown prose - Components in
src/components/- Reusable DRY components - Dynamic routes - Notes use
[slug]for SSG
Content Structure
content/
├── projects/
│ └── maxwell.yaml # Project metadata
├── notes/
│ ├── 001-picking-a-problem/
│ │ ├── meta.yaml # Prompts, navigation, metadata
│ │ └── content.md # Prose content
│ └── 002-building-the-scaffolding/
│ ├── meta.yaml
│ ├── content.md
│ └── files/ # Expandable file contents
│ ├── vision.md
│ ├── architecture.md
│ └── roadmap.md
└── white-paper/
└── outline.yaml # Structured sections
Routes
/- Journal home (list of projects)/maxwell- Maxwell project landing/maxwell/white-paper- Formal paper outline/maxwell/notes/[slug]- Individual research notes (dynamic)
Adding a Note
- Create
content/notes/NNN-slug/directory - Add
meta.yamlwith prompts, navigation, filesCreated - Add
content.mdwith prose - Add
files/directory if filesCreated references files - Update previous note's
meta.yamlnavigation.next
Key Files
| File | Purpose |
|---|---|
src/lib/content.ts |
Content loaders (getProject, getNoteBySlug, etc.) |
src/components/layout/PageLayout.tsx |
Page wrapper |
src/components/layout/BackNav.tsx |
Back navigation |
src/components/notes/NoteHeader.tsx |
Note header (#id, date, title) |
src/components/notes/PromptsSection.tsx |
Prompts with copy buttons |
src/components/notes/FilesSection.tsx |
Expandable files |
src/components/notes/NoteFooter.tsx |
Prev/next navigation |
src/components/white-paper/OutlineSection.tsx |
Outline sections |
src/components/copyable.tsx |
CopyButton, CopyableBlock, ExpandableFile |
Note meta.yaml Schema
id: "001"
slug: 001-picking-a-problem
date: "2026-02-06"
title: Picking a Problem
preview: "Short description for list view"
prompts:
- id: unique-id
label: Button label
content: |
Prompt content here
filesCreated:
- name: filename.md
description: What this file is
navigation:
prev: null # or { slug, id, title }
next:
slug: 002-building-the-scaffolding
id: "002"
title: Understanding the Project