{frontmatter.title}
+ )} + {frontmatter.subtitle && ( +{frontmatter.subtitle}
+ )} + + {/* Gerenderde Markdown blocks */} + {renderBlocks(blocks, context)} +diff --git a/content/worksheet.md b/content/worksheet.md new file mode 100644 index 0000000..6feb813 --- /dev/null +++ b/content/worksheet.md @@ -0,0 +1,71 @@ +--- +title: Workshop Materiaal +subtitle: Alles wat je nodig hebt tijdens de Claude Code Workshop +--- + +## Download Superpowers + +Superpowers is een plugin voor Claude Code die extra mogelijkheden toevoegt. Denk aan gestructureerd plannen, test-driven development en slimmer debuggen. Tijdens de workshop gebruiken we deze plugin. + +:::tip +Download het zipbestand en installeer het in Claude Code. Ga naar Customize > Personal Plugin (+) > Create Plugin > Upload Plugin en zet daar de zipfile in (niet uitgepakt) +::: + +[Download Superpowers (zip)](superpowers-main.zip) + +## Start Prompt + +Gebruik deze prompt als startpunt om te brainstormen met Claude Code over je project. Plak hem in je terminal en vervang `{HIER JE IDEE}` door jouw projectidee. Aan het einde kun je het plan nog aanpassen of extra's aan toevoegen. + +:::command[Start prompt] +Ik wil {HIER JE IDEE}. + +Stel me maximaal 5 vragen om mijn idee beter te begrijpen. Stel ze een voor een met AskUserQuestions, niet allemaal tegelijk. + +Maak daarna een bouwplan (PRD) met: +- Wat het doet (in gewone taal) +- Hoe het eruitziet (beschrijf de interface) +- Zelfstandige bouwfasen (max 3-4), in volgorde van prioriteit. Fase 1 is het minimum dat waarde oplevert. +Elke fase levert iets werkends op. + +Als ik het bouwplan goedkeur: +1. Sla het op als PRD.md in de projectmap +2. Maak een CLAUDE.md aan met een samenvatting van het project, de bouwfasen en hun status (allemaal "nog niet gestart") +3. Stop. Ga niet verder met bouwen tot ik het zeg. + +Beperkingen: +- Alleen lokaal, geen hosting of externe diensten +- Gebruik HTML/CSS/JavaScript waar mogelijk (geen framework nodig voor eenvoudige projecten) +- Node.js als een server nodig is +- Python alleen als Node.js echt niet volstaat +::: + +## Tips tijdens het bouwen + +### Sessiemanagement +- **Start een nieuwe sessie per bouwfase** - niet alles in een lange sessie proberen +- Elke sessie: open de PRD, zeg "bouw fase X" en go. +- Korte sessies zijn efficienter dan lange (minder context = minder tokens = snellere antwoorden) +- **Kernboodschap:** je PRD is je anker. Bewaar die goed, dan kun je altijd opnieuw starten. + + +### Waarom niet een lange sessie? +- Pro-limiet bereik je sneller in een lange sessie (meer context = meer tokenverbruik) +- Vroege signalen dat je limiet nadert: tragere antwoorden, kortere code, stappen overslaan +- Als je de melding "usage limit reached" krijgt ben je te laat en zul je een paar uur moeten wachten +- Tenzij je een Extra Usage Wallet hebt ingesteld (Settings > Usage) +- **Preventie is beter:** plan je sessies per fase, dan is de kans kleiner dat je tegen limieten loopt + + +### Workflow +1. Brainstorm en PRD schrijven (sessie 1) +2. Nieuwe sessie in dezelfde werkmap: "bouw fase 1" (sessie 2) +3. Nieuwe sessie: "bouw fase 2" (sessie 3) +4. Herhaal tot prototype klaar is + +### Agents (voor gevorderden / Max-gebruikers) +- Claude Code zet zelf al subagents in wanneer het nuttig is - daar hoef je niks voor te doen +- Expliciet aansturen kan: "Zet waar mogelijk agents in om parallelle taken tegelijk te doen" +- **Let op:** agents verbruiken meer tokens, niet minder - elke agent heeft zijn eigen context +- Voor Pro-gebruikers die al tegen limieten aanlopen versnelt dat het probleem +- **Advies:** alleen actief inzetten als je op Max zit of een API key gebruikt \ No newline at end of file diff --git a/public/superpowers-main.zip b/public/superpowers-main.zip new file mode 100644 index 0000000..25348f6 Binary files /dev/null and b/public/superpowers-main.zip differ diff --git a/src/components/editor/MarkdownEditor.jsx b/src/components/editor/MarkdownEditor.jsx index 72b3ef4..67ec9b2 100644 --- a/src/components/editor/MarkdownEditor.jsx +++ b/src/components/editor/MarkdownEditor.jsx @@ -21,7 +21,7 @@ import { useKeyboardShortcuts } from './useKeyboardShortcuts'; * @param {string} props.content - Huidige Markdown content * @param {function} props.onContentChange - Callback bij wijzigingen */ -export default function MarkdownEditor({ content, onContentChange }) { +export default function MarkdownEditor({ content, onContentChange, filename = 'installatie.md' }) { const [isOpen, setIsOpen] = useState(true); const [isDirty, setIsDirty] = useState(false); const [isSaving, setIsSaving] = useState(false); @@ -41,7 +41,7 @@ export default function MarkdownEditor({ content, onContentChange }) { const response = await fetch('/__editor/save', { method: 'POST', headers: { 'Content-Type': 'application/json' }, - body: JSON.stringify({ content }), + body: JSON.stringify({ content, filename }), }); const result = await response.json(); @@ -88,7 +88,7 @@ export default function MarkdownEditor({ content, onContentChange }) {
{content}
{content}
{frontmatter.subtitle}
+ )} + + {/* Gerenderde Markdown blocks */} + {renderBlocks(blocks, context)} ++ Kom je er niet uit? Mail naar{' '} + + frank@frankmeeuwsen.com + +
+