// ══════════════════════════════════════════════════════════════════════ // KERN v2.0.0 — Real Production Examples (for LLMs) // // These are actual .kern files from production projects. // Not toy examples — real apps shipping with KERN. // ══════════════════════════════════════════════════════════════════════ // ══════════════════════════════════════════════════════════════════════ // EXAMPLE 1: SoundKit Landing Page (Next.js target) // A music production tool — dark theme, feature cards, CTA // ══════════════════════════════════════════════════════════════════════ page name=LandingPage client=true {bg:#09090b} metadata title="SoundKit — Audio Toolkit" description="Analyze your mix with AI-powered stem separation and frequency analysis." keywords="audio,mixing,mastering,AI" row {jc:sb,ai:center,p:16,border:#27272a} link to=/ text value=SoundKit tag=h1 {fs:24,fw:bold,c:#fff} row {gap:16,ai:center} link to=/features text value=Features {fs:14,c:#a1a1aa} link to=/pricing text value=Pricing {fs:14,c:#a1a1aa} button text="Get Started" to=signup {bg:#f97316,c:#fff,br:8,p:12,"transition":"all 0.2s ease",:hover:bg:#ea580c} col {ai:center,p:80,gap:24} text value="Analyze your mix in seconds" tag=h1 {fs:48,fw:800,c:#fff,ta:center} text value="AI-powered stem separation, frequency analysis, and mastering suggestions." tag=p {fs:18,c:#a1a1aa,ta:center} row {gap:16} button text="Start Free Trial" to=signup {bg:#f97316,c:#fff,br:8,p:16,fs:16,fw:600} button text="Watch Demo" onClick=openDemo {bg:transparent,c:#fff,br:8,p:16,fs:16,fw:600,border:#3f3f46} grid cols=3 gap=32 {p:32} card {bg:#18181b,br:16,p:24,border:#27272a} text value="Stem Separation" tag=h3 {fs:18,fw:600,c:#fff,mb:8} text value="Split any track into drums, bass, vocals, and more using Demucs ML." tag=p {fs:14,c:#a1a1aa} card {bg:#18181b,br:16,p:24,border:#27272a} text value="Frequency Analysis" tag=h3 {fs:18,fw:600,c:#fff,mb:8} text value="Identify problematic frequencies and get EQ fix suggestions per stem." tag=p {fs:14,c:#a1a1aa} card {bg:#18181b,br:16,p:24,border:#27272a} text value="Mastering Chain" tag=h3 {fs:18,fw:600,c:#fff,mb:8} text value="Auto-generated mastering presets based on your genre and reference tracks." tag=p {fs:14,c:#a1a1aa} // ══════════════════════════════════════════════════════════════════════ // EXAMPLE 2: Music API (Express target) // RESTful API with auth, CRUD, and schema validation // ══════════════════════════════════════════════════════════════════════ server name=MusicAPI port=3001 middleware name=cors middleware name=json middleware name=auth handler=verifyToken route method=get path=/api/tracks handler <<< const tracks = await db.tracks.findAll({ userId: req.user.id }); res.json(tracks); >>> route method=post path=/api/tracks/analyze schema body="{trackId: string, options?: {stems: boolean}}" handler <<< const { trackId, options } = req.body; const result = await analyzeTrack(trackId, options); res.json(result); >>> route method=get path=/api/tracks/:id handler <<< const track = await db.tracks.findById(req.params.id); if (!track) return res.status(404).json({ error: 'Not found' }); res.json(track); >>> route method=delete path=/api/tracks/:id middleware name=requireOwner handler <<< await db.tracks.delete(req.params.id); res.status(204).send(); >>> // ══════════════════════════════════════════════════════════════════════ // EXAMPLE 3: Agon CLI (CLI target) // Multi-AI orchestration tool — forge, brainstorm, tribunal // ══════════════════════════════════════════════════════════════════════ cli name=agon version=2.0.0 description="Any AI can join. They compete. You ship." flag name=verbose alias=v type=boolean description="Verbose output" flag name=json type=boolean description="JSON output format" command name=forge description="Run competitive forge" arg name=task type=string required=true description="Task to implement" flag name=test alias=t type=string description="Fitness test command" flag name=timeout type=number default=600 description="Engine timeout in seconds" flag name=engines type=string default="claude,codex,gemini" description="Engines CSV" import from="../src/forge.js" names=runForge handler <<< const engineList = opts.engines.split(','); await runForge(task, engineList, opts); >>> command name=brainstorm description="Multi-AI confidence bid" arg name=question type=string required=true description="Question to brainstorm" import from="../src/brainstorm.js" names=collectDrafts,rankDrafts,display handler <<< const drafts = await collectDrafts(question, opts); const ranked = await rankDrafts(drafts); display(ranked); >>> command name=tribunal description="Multi-AI debate and ruling" arg name=topic type=string required=true description="Topic to debate" flag name=rounds type=number default=3 description="Debate rounds" import from="../src/tribunal.js" names=runTribunal handler <<< await runTribunal(topic, opts); >>> // ══════════════════════════════════════════════════════════════════════ // EXAMPLE 4: Agon Terminal UI (Terminal target) // Rich terminal interface with gradients, spinners, scoreboards // ══════════════════════════════════════════════════════════════════════ screen name=AgonTerminal state name=busy initial=false gradient text="AGON" colors=[208,214,220,226,228,230,255] box color=214 text value="Any AI can join. They compete. You ship." {fw:bold} separator width=48 text value="Engines ready:" {c:#a1a1aa} text value=" claude codex gemini" {c:#f97316,fw:bold} separator width=48 spinner message="Dispatching engines..." color=214 progress value=75 max=100 color=214 separator width=48 text value="Forge Results:" {fw:bold} scoreboard title="Forge Scoreboard" winner="claude" metric name=Score values=["89","74","71"] metric name=Diff values=["436","570","317"] metric name=Time values=["45s","52s","38s"] // ══════════════════════════════════════════════════════════════════════ // EXAMPLE 5: Fitness Dashboard (React Native target) // Mobile app with progress tracking, meal log, tab navigation // ══════════════════════════════════════════════════════════════════════ screen name=Dashboard {bg:#F8F9FA} theme bar {h:8,br:4} row {p:16,jc:sb,ai:center} text value=FITVT {fs:24,fw:bold} image src=avatar {w:40,h:40,br:20} card {p:16,br:12,bg:#FFF,m:16} progress label=Calories current=1840 target=2200 unit=kcal color=#FF6B6B $bar progress label=Protein current=96 target=140 unit=g color=#4ECDC4 $bar progress label=Carbs current=210 target=260 unit=g color=#FFD166 $bar progress label=Fat current=58 target=70 unit=g color=#6C5CE7 $bar button text="Log Meal" to=LogMeal {w:full,br:8,bg:#007AFF,p:16,:press:bg:#005BB5} list title="Recent Meals" separator=true item id=m1 name="Greek Yogurt Bowl" time=08:15 calories=320 item id=m2 name="Chicken Salad" time=12:40 calories=540 item id=m3 name="Protein Shake" time=15:10 calories=220 tabs active=Dashboard tab icon=home label=Dashboard tab icon=plus label=Log tab icon=chart label=Stats tab icon=gear label=Settings // ══════════════════════════════════════════════════════════════════════ // EXAMPLE 6: Order State Machine (Core Language) // Generates full TypeScript: enum, guards, transition function // ══════════════════════════════════════════════════════════════════════ machine name=OrderStatus initial=pending transition from=pending to=confirmed event=confirm transition from=confirmed to=processing event=startProcessing transition from=processing to=shipped event=ship transition from=shipped to=delivered event=deliver transition from=pending to=cancelled event=cancel transition from=confirmed to=cancelled event=cancel type name=Order field name=id type=string field name=status type=OrderStatus field name=items type="OrderItem[]" field name=total type=number field name=createdAt type=Date interface name=OrderService fn name=createOrder params="items:OrderItem[]" returns=Promise fn name=updateStatus params="id:string,event:OrderStatusEvent" returns=Promise fn name=getOrder params="id:string" returns=Promise // ══════════════════════════════════════════════════════════════════════ // These examples demonstrate KERN across all major targets. // Each one compiles to production-ready code. // // Target commands: // kern dev landing.kern --target=nextjs // kern dev api.kern --target=express // kern dev cli.kern --target=cli // kern dev terminal.kern --target=terminal // kern dev dashboard.kern --target=native // kern dev types.kern --target=nextjs (core nodes work in any target) // ══════════════════════════════════════════════════════════════════════