Files
novi-lessons/v2-klasB/Les02-OpenCode/Les02-Slide-Overzicht.md
2026-05-19 18:50:11 +02:00

15 KiB
Raw Permalink Blame History

Les 2 — OpenCode Pro: Rules, Worktrees & Scroll Animations

Slide Overzicht (Klas B — 2 uur, online)

Bronnen-overzicht onderaan dit document.

Lesflow: Theorie eerst in blokken, dan dedicated Live Demo momenten. Geen heen-en-weer geswitch.


Slide 1: Title

Les 2 — OpenCode Pro

Visual:

  • Background: CREAM
  • "Les 2" in BLUE
  • "OpenCode Pro" in BLACK
  • Subtitle: "Rules · Worktrees · Een scroll-animatie site bouwen"

Bronnen: [1]


Slide 2: Terugblik

Waar staan we?

Content:

  • Les 1: kennismaking + leerlijn-opzet
  • Iedereen kent ChatGPT en/of Claude (als chat)
  • Eindopdracht: AI-app met Next.js + Supabase + Vercel AI SDK

Vandaag: "Van AI als chat naar AI als coding-IDE. Met regels, config en parallel worktrees."

Visual: Chat-bubble → IDE icoon


Slide 3: Planning

Vandaag — 120 minuten

Onderwerp Duur
Welkom + Terugblik 10 min
Theorie 1 — Waarom OpenCode + kern features 20 min
Live Demo 1 — Desktop tour 10 min
Theorie 2 — AGENTS.md + config + plugin + stack + Vercel 17 min
Live Demo 2 — Setup + worktree + bouw + Vercel preview 20 min
Pauze 15 min
Lesopdracht: bouw scroll-sectie + preview 28 min
Huiswerk + Afsluiting (eind)

Visual: Timeline met YELLOW pauze-rij + PINK demo-rijen


Slide 4: Waarom OpenCode (en niet Cursor)?

Alternatieven kennen is professioneel

Iedereen kent Cursor. Wij beginnen bewust met OpenCode. Waarom?

Cursor OpenCode
Licentie Commercieel ($20/mnd) Open source (gratis)
Models Eigen routing Direct: OpenAI, Anthropic, Google, Groq, Ollama
Lock-in Hoog Geen
Scriptable Beperkt Volledig (CLI + plugins)
Lokale AI (via Ollama)

Belangrijke punten:

  • Provider-keuze — jij beslist welk model, niet de tool
  • Geen vendor lock-in — past in een pro-toolchain
  • Concept is hetzelfde — leer OpenCode goed, dan begrijp je Cursor + Claude Code ook
  • Onderdeel van leerlijn — later kijken we naar Cursor; nu de open variant

Belangrijk: dit is geen Cursor-bashing. Cursor is uitstekend. We kiezen voor breedte: meerdere tools kennen > vasthangen aan één.

Bronnen: [1] [4]


Slide 5: Wat is OpenCode?

Een AI coding-IDE in twee smaken

Content:

  • Open source · 60.000+ GitHub stars · door SST
  • Werkt met elke provider: OpenAI, Anthropic, Google, Groq, Ollama
  • Lokaal — code blijft op jouw machine

Twee smaken:

Desktop (vandaag) TUI (terminal)
Visuele diff-viewer Snel met keyboard
File tree + Sessions sidebar Werkt over SSH
Multi-session parallel Goed voor scripts / CI/CD
Sneller leren als je begint Worktree plugin spawnt auto terminal

Vandaag: Desktop. We tonen TUI 1 minuut in Live Demo zodat je weet dat 't bestaat.

Voor jouw eindopdracht: Desktop.

Bronnen: [1] [2] [3] [5]


Slide 6: Plan/Build/@explore + /init

De vier dingen die je echt moet kennen

Twee modes (Tab om te wisselen):

  • plan — read-only, denkt mee, wijzigt niks
  • build — default, schrijft code, voert commands uit

Sub-agents:

  • @explore — read-only verkenning (spaart tokens)
  • @general — brede taak
  • @scout — gerichte zoekopdracht

/init commando — eerste actie in elk nieuw project:

  • Scant je repo
  • Stelt vragen
  • Schrijft/update je AGENTS.md

Best practice:

Plan eerst. Lees mee. Geef feedback. Tab → Build.

Bronnen: [6] [7] [8]


Slide 7: LIVE DEMO 1 — Desktop Tour

Wat je nu gaat zien (~10 min)

Setup: OpenCode Desktop open op een leeg Next.js project.

Wat ik laat zien:

  1. TUI 1 minuutopencode in terminal, snelle Tab/exit. "Hetzelfde, maar terminal-only."
  2. Desktop UI tour — file tree, chat panel, diff viewer, Sessions sidebar
  3. Plan mode — vraag analyseer dit project, zie dat niks wijzigt
  4. Tab → Build mode — vraag iets simpels, zie diff
  5. @explore@explore wat zit er in deze repo? — aparte context
  6. /init — laat AGENTS.md genereren

Visual: Mockup van Desktop layout met annotaties. PINK badge "LIVE DEMO".


Slide 8: AGENTS.md — Projectregels

De officiële OpenCode standaard

Wat is AGENTS.md? Markdown in project-root dat OpenCode automatisch in elke context laadt. Officieel format — alternatief voor Cursor's .cursorrules.

Twee locaties:

  • ./AGENTS.md — per project (in repo)
  • ~/.config/opencode/AGENTS.md — globaal voor alle projecten

Externe regels referencen:

@rules/styling.md
@rules/security.md

Hoe te maken:

  • Handmatig schrijven, OF
  • /init in OpenCode — scant repo, stelt vragen, genereert

Tip: schrijf concrete regels die je AI kan controleren. "Gebruik clean code" werkt niet. "useGSAP alleen, geen useEffect" wel.

Bronnen: [9]


Slide 9: opencode.json — Config

Model · Permissies · Plugins

Locaties:

  • ./opencode.json — per project
  • ~/.config/opencode/opencode.json — globaal

Basis:

{
  "$schema": "https://opencode.ai/config.json",
  "model": "openai/gpt-4o-mini"
}

Permissies (uit officiele docs):

{
  "permission": {
    "bash": { "*": "ask", "git *": "allow", "rm *": "deny" },
    "edit": { "*": "deny", "app/**/*.tsx": "allow" }
  }
}

Drie levels: allow · ask · deny. Glob patterns voor bash én files.

Bronnen: [10] [11]


Slide 10: opencode-worktree Plugin

Auto-magisch worktrees aanmaken

Wat doet het? Plugin van kdcokenny. Geeft de agent twee tools:

  • worktree_create — branch + worktree
  • worktree_delete — commit + cleanup

Installatie via ocx:

curl -fsSL https://kdco.dev/ocx/install.sh | sh
ocx add kdco/worktree --from https://registry.kdco.dev

Desktop workflow:

  1. In main session: "Maak worktree feature-hero"
  2. Plugin maakt worktree-folder
  3. Klik + New SessionOpen Folder → kies worktree
  4. Parallel agents in sidebar

Bronnen: [12] [13]


Slide 11: Demo Stack — Next.js 16 + GSAP + Lenis

De stack voor high-end scroll storytelling

Stack:

  • Next.js 16 App Router + TypeScript (Turbopack default)
  • TailwindCSS
  • GSAP 3.15 + @gsap/react — sinds 2025 100% gratis (ScrollTrigger, SplitText)
  • Lenis 1.3 (lenis/react) — door Darkroom Engineering

Waarom deze combinatie?

Dit is dé stack waarmee award-winning scroll-storytelling sites gebouwd worden. Niet "een" optie — de standaard op pro-niveau.

Wie gebruikt dit?

  • Apple product pages (GSAP scroll animaties)
  • Stripe, OpenAI marketing — beide GSAP-based
  • Awwwards / FWA winnaars — bijna altijd GSAP
  • Studios: Active Theory, Locomotive, Resn, Darkroom Engineering (makers van Lenis zelf)

Waarom niet Framer Motion?

  • Framer Motion is uitstekend voor app UI (modals, transities, micro-interacties)
  • GSAP heeft betere timing-precisie en GPU-optimalisaties voor scroll storytelling
  • Voor jouw eindopdracht (een site die "wow" doet bij scrollen): GSAP

Next.js 16 detail:

  • cookies(), headers(), params, searchParams zijn async — altijd await

Bronnen: [14] [15] [16] [17] [18] [19]


Slide 12: Onze AGENTS.md

Regels voor het scroll-animatie project

# Project Rules

## Why this stack
High-end scroll storytelling site (Awwwards/FWA niveau).
GSAP + Lenis = pro standaard — Apple, Stripe, OpenAI, Active Theory,
Locomotive, Darkroom Engineering. Framer Motion is voor app UI, niet voor
scroll storytelling. Kies GSAP voor timing-precisie + GPU-perf.

## Stack
- Next.js 16 (App Router, TypeScript, Turbopack)
- TailwindCSS · GSAP 3.15+ (incl. ScrollTrigger, SplitText)
- Lenis 1.3+ (`lenis/react`)
- @gsap/react voor de useGSAP hook

## Hard rules
- Geen Framer Motion, react-spring, AOS
- Animaties altijd in Client Components (`"use client"`)
- useGSAP(() => {}, { scope: ref }) — nooit useEffect voor GSAP
- Lenis sync: gsap.ticker.add met autoRaf: false
- Next 16: await params, await cookies(), await headers()

## Patterns
- Eén <SmoothScroll> wrapper in app/layout.tsx
- Tailwind voor layout; GSAP voor transform/opacity

## Done =
- Geen hydration warnings
- ScrollTrigger.refresh() na dynamische content

De ## Why this stack sectie geeft de agent context. Hij snapt nu waarom deze keuzes — en stelt voor dezelfde redenen geen Framer Motion voor.

Bronnen: [14] [15] [19]


Slide 13: Vercel + Preview Deployments

Feature branches = automatische preview URLs

Het idee: Elke push naar GitHub → Vercel maakt automatisch een unieke preview URL voor die branch. Geen handmatige deploys, geen "stuur me een screenshot".

Setup (eenmalig per project):

  1. npx vercel link — koppelt repo aan Vercel project (of via dashboard)
  2. Git remote staat → Vercel installeert eigen GitHub App
  3. Klaar — elke git push triggert deploy

Hoe het werkt:

Branch Wat krijgt Vercel? URL
main Production deploy jouw-app.vercel.app
feature-hero Preview deploy jouw-app-git-feature-hero-jij.vercel.app
feature-gallery Preview deploy jouw-app-git-feature-gallery-jij.vercel.app

Waarom dit goud is voor scroll-storytelling:

  • Stuur preview URL naar designers/stakeholders per feature
  • Vergelijk verschillende secties side-by-side
  • Geen "het werkt op mijn machine"
  • Comment in PR direct met working URL

Combinatie met onze worktrees:

  • 1 worktree = 1 branch = 1 Vercel preview
  • 3 features parallel = 3 live previews

Bronnen: [20] [21]


Slide 14: LIVE DEMO 2 — Setup + Worktree + Vercel preview

Wat je nu gaat zien (~20 min)

Wat ik laat zien:

  1. AGENTS.md invullen met onze projectregels
  2. opencode.json maken met permissions
  3. Tonen dat rm -rf geblokkeerd wordt
  4. ocx + worktree plugin verifiëren (was al klaar)
  5. Via prompt: worktree feature-hero aanmaken
  6. + New Session → openen op worktree-folder
  7. SmoothScroll wrapper laten bouwen — agent volgt AGENTS.md
  8. git push origin feature-hero vanuit worktree
  9. Open Vercel dashboard → toon preview URL verschijnt automatisch
  10. Open preview URL → scroll-animatie werkt live

Visual: Mockup Sessions sidebar + Vercel preview URL. PINK badge "LIVE DEMO".


Slide 15: Pauze

Pauze!

Visual: "Pauze" groot, "15 minuten"


Slide 16: Lesopdracht

Bouw een scroll-sectie + preview — 28 minuten

Setup (al klaar in starter):

  • Next.js 16 starter
  • AGENTS.md, opencode.json, plugin
  • GSAP + Lenis geïnstalleerd
  • SmoothScroll wrapper bestaat al

Jouw taak: 0. Fork starter naar jouw GitHub + vercel link

  1. /init runnen — check AGENTS.md
  2. Vraag agent: maak worktree voor jouw feature
  3. Open de worktree in nieuwe Sessions tab
  4. Plan-mode → review → Tab → Build
  5. Test lokaal op npm run dev
  6. git push origin <jouw-branch> — Vercel deployt automatisch
  7. Open preview URL → animatie werkt live → plak in chat

Niet klaar in de les? Geen probleem — je werkt thuis in dezelfde fork verder. Het huiswerk bouwt voort op dit punt.

Sectie keuze: hero (SplitText) · features-grid (stagger) · testimonials (horizontaal) · gallery (parallax)


Slide 17: Huiswerk

Bouw verder in je les-repo

Voor volgende week: Doorbouwen in dezelfde fork als in de les — eerst sectie 1 afmaken (indien nog niet), dan 2-3 extra secties tot een kleine landing page met 3-4 scroll secties.

Eisen:

  • Eigen AGENTS.md (onze mag als basis)
  • opencode.json met permissions
  • 2+ worktrees gebruikt (Sessions sidebar)
  • 3 verschillende scroll-animaties
  • Lenis smooth scroll
  • Vercel gekoppeld — main = productie, branches = previews
  • WORKFLOW.md reflectie (max 400 woorden) met screenshots van preview URLs per feature

Lever in: GitHub URL + Production URL + minstens 2 preview URLs (per worktree-branch) + screenshot git worktree list

Bonus: Eigen sub-agent · MCP server (context7) · Lighthouse 90+


Slide 18: Afsluiting

Volgende les — Introductie Cursor

Vandaag gedaan:

  • Waarom OpenCode (vs Cursor)
  • Plan/Build/@explore//init
  • AGENTS.md + opencode.json
  • opencode-worktree plugin via ocx
  • Live: Next.js 16 + GSAP + Lenis scroll-site
  • Parallel agents via Sessions sidebar
  • Vercel preview deployments per branch

Volgende keer — Cursor:

  • De commerciele tegenhanger van OpenCode
  • Cursor rules vs AGENTS.md
  • Composer, Tab-completion, @-references
  • Wanneer kies je welke tool?

Vragen? Feedback?


Slide Summary

# Title Type Bronnen
1 Title Opening [1]
2 Terugblik Intro
3 Plan Intro
4 Waarom OpenCode Theorie [1] [4]
5 Wat is OpenCode Theorie [1] [2] [3] [5]
6 Plan/Build/@explore Theorie [6] [7] [8]
7 LIVE DEMO 1 Demo
8 AGENTS.md Theorie [9]
9 opencode.json Theorie [10] [11]
10 Worktree plugin Theorie [12] [13]
11 Demo stack Theorie [14][18]
12 Onze AGENTS.md Theorie [14] [15] [19]
13 Vercel preview deployments Theorie [20] [21]
14 LIVE DEMO 2 Demo
15 Pauze Break
16 Lesopdracht Praktijk alle
17 Huiswerk Praktijk alle
18 Afsluiting Closing

Bronnen

OpenCode (officieel):

Worktree plugin:

Next.js 16:

GSAP:

Lenis:

Vercel: