Write technical blog post
This skill covers how to write technical blog posts about tldraw's implementation details.
Process
1. Create the workspace
Create an assets folder for this topic:
.claude/skills/write-tbp/assets/<topic>/
āāā research.md # Gathered context and notes
āāā draft.md # The blog post draft
Use a short, kebab-case name for the topic (e.g., scribbles, arrow-routing, dash-patterns).
2. Research the topic
Use an Explore subagent to gather all relevant information:
Task (subagent_type: Explore, thoroughness: very thorough)
Find all code, documentation, and context related to [TOPIC] in the tldraw codebase.
Look for:
- Implementation files in packages/editor and packages/tldraw
- Type definitions in packages/tlschema
- Related examples in apps/examples
- Any existing documentation in apps/docs/content
- Tests that reveal behavior
- Comments explaining why things work the way they do
For each relevant file, note:
- What it does
- Key functions/classes
- Interesting implementation details
- Any "why" comments or non-obvious decisions
Output a comprehensive summary of how [TOPIC] works. This document will be read by another agent. No need to over-optimize for human readability.
Save the research output to assets/<topic>/research.md.
3. Identify the interesting angle
Before writing, answer these questions from the research:
- What problem does this solve? Not "what does it do" but "what would go wrong without it?"
- What's surprising or unintuitive? The obvious approach that doesn't work, or the hidden complexity.
- What's the key insight? The "aha" that makes the solution work.
- What did we try first? Any journey or iteration visible in the code or comments.
If you can't find an interesting angle, the topic may not be suitable for a technical blog post.
4. Write the draft
Create assets/<topic>/draft.md following the blog-guide structure:
- Frame the problem ā Hook the reader with context and tension
- Show the insight ā The key idea that makes it work
- Walk through the implementation ā Code and explanation, building complexity
- Wrap up ā Where it lives, tradeoffs, links to files
Target 800-1500 words.
5. Self-evaluate
Check the draft against the blog-guide checklist:
Revise the draft to address any gaps.
6. Output
Present the final draft to the user for review. The draft remains in assets/<topic>/draft.md until the user is satisfied, at which point they can move it to the appropriate location.
References
- Style guide: See
../shared/blog-guide.md for voice, tone, and structure.
- Writing guide: See
../shared/writing-guide.md for general writing conventions.