INIT
REX — Live AIDD

Solo Builder

The real difficulty is always one step further than the one you see

0

commits

commits

0

repos

repos

0

days

days

I'm a PM, not a dev. I know my product domain. I just need a tech stack… That's what I thought.

▼ scroll

Previously in the Lyra talks

What we covered

⚙️

Claude Code

The tooling: 17 skills, 9 agents, a full workflow from plan to deploy.

🔀

Dev Process

Tiers, phases, human gates. How to structure work with AI agents.

The Lyra Story

How a side-project became a personal intelligence engine.

🗡️

The Technical Build

545 commits in 24 days. Hub-and-spoke, asyncio, hexagonal, streaming.

📈

Product Decisions

Pivots, kill darlings, iteration speed. 52 days from first line to first user.

🔷

Lyra Architecture

Multi-agent, multi-channel, voice pipeline, memory. The platform under the hood.

Those talks told the what and the how. This one tells the journey — the real difficulties, the order they come in, and what we'd do differently.

Act 1 — First embers

"The hard part is the tech stack"

January. 1,200 commits on a boilerplate. You pick TanStack Start + NestJS + Drizzle + Better Auth. You think you've done the hard part. Then reality hits.

TanStack Start

React + Vinxi

NestJS

Fastify + Drizzle

Better Auth

RBAC + Multi-tenant

Paraglide

Compile-time i18n

shadcn/ui

Design system

GitHub Actions

CI/CD + Auto-merge

Vercel + Neon

Preview deploys

GDPR + Cookies

Consent management

Fumadocs

Documentation app

Playwright

E2E testing

Admin Panel

Users, orgs, audit

API Keys

Public API v1

801commits on the boilerplate

Just the boilerplate. Not the product.

The tech stack is 20% choosing and 80% plumbing. But that's not where you'll struggle.

Act 2 — Forging your own tools

"The hard part is the tooling"

The tools you've used for years can't keep up. Linear, Jira, Confluence — incompatible with 50 commits per day. You migrate. Then you build.

Linear
GitHub
Linear's AI integration wasn't up to par
8/20repos are pure tooling — half the ecosystem supports the other half

Project bootstrap

roxabi-plugins
/initBootstrap project
/devFull dev lifecycle
/readme-upgradeDoc quality audit
/doc-syncSync docs after changes
make visualsHTML diagrams index
roxabi-dashboardProject health view

Extensions for Lyra & Claude

voiceCLITTS + STT local
imageCLIFLUX, SD3.5
roxabi-vaultKnowledge store
lyra-stackSupervisord hub

Skills for Lyra & Claude

content-generatorVideo scripts, posts
web-intelScrape, summarize, adapt
logo-generatorSVG + AI logos
rsyncSync plugins to Claude cache

Content generation

roxabi-productionVideo engine
roxabi-talksPresentations

You're no longer developing a product. You're maintaining an ecosystem. And the tooling has become a project of its own.

Act 2b — The arsenal

What did we actually build?

Two tools that changed the way every project starts and gets explained.

roxabi-plugins — /init

$ /init

Bootstrapping project…

prereqsbun, gh, biome
discoverdetect stack
create-projectGH Project V2
labelsS/M/L + priority
workflowsCI/CD pipelines
protect-branchesbranch rules
scaffold-rulesCLAUDE.md + stack.yml
scaffold-docsstandards & guides
scaffoldartifacts dirs

Project ready — 9 steps, zero manual config

Plugins — libs, sync & daemons

Plugin sync

$ rsync plugins → ~/.claude/

Update & synchronize skills across all Claude caches

Service management

make lyraTelegram + Discord
make ttsvoicecli_tts daemon
make sttvoicecli_stt daemon
make deploygit pull → test → restart
make remote statusprod supervisor

To come?!

Vercel portless — deploy without leaving the terminal

You don't build tools because you want to. You build them because the alternative is doing the same thing by hand, every day, across 20 repos.

Act 3 — The fire runs wild

"The hard part is keeping up with the speed"

Lines changed per week

11K
W03
44K
W04
321K
W05
70K
W06
84K
W07
72K
W08
220K
W09
284K
W10
377K
W11
202K
W12
113K
W13
11K lines — W03377K peak — W11

The two-track workflow

For the AI agent

analysis.md

spec.md

plan.md

For you, the decision-maker

Interactive HTML

Diagrams, dashboards, comparisons

Decision

GO / NO-GO

🎬

Rprod.

Remotion-based video production — talks, demos, animated explainers

🎲

Multiple seeds

Generate multiple examples with different seeds, pick the best

🔊
Qwen3TTS
🗣️
ChatterboxTTS
🎤
WhisperSTT
🖼️
FLUXImage
🎨
SD3.5Image
👁️
VLMVision

Speed is not an advantage if you lose visibility. And infra always ends up becoming a topic.

Act 3b — Visual arsenal

"make visuals" — your interactive library

make visuals

$ make visuals

Scanning ~/.agent/diagrams/ …

hub-spoke.html

architecture

forgeflow.html

flow

mission-control.html

dashboard

benchmark-2026.html

analysis

symphony.html

architecture

deploy-pipeline.html

infra

57 files
8 categories
manifest synced
visual-explainer-guide.mdvisual-explainer-guide.md
Split-file patternHTML shell + css/ + js/ + tabs/
Light / dark modeCSS vars, data-theme toggle, localStorage
Diagram metatitle, date, category, color — auto-indexed
Brand book priorityProject palette overrides defaults
Version isolationtabs/v<N>/ — no collision across versions

One guide for every diagram — the agent reads it before generating. Consistent output, zero manual setup.

Generate → compare → pick the best

#42

clean lines

#137

bold contrast

#256

warm tones

#512

selected ✓

#789

high detail

Same prompt, multiple seeds — variations let you select the best result without re-prompting.

Visibility scales when you standardize the output. A guide + a command = a visual factory.

Act 3c — Reconnaissance

Reverse engineer everything

You don't build in a vacuum. You scrape, benchmark, compare, steal patterns. The best ideas come from deconstructing what already works.

Video production quality4/10 → iterate

The first Lyra presentation video was a 4/10 on production quality. Solution: scrape 10 top YouTube tech presentations, extract the patterns that work — pacing, cuts, typography, hooks. Apply. Iterate.

Lyra is a chimera

Lyra doesn't copy one agent framework — it borrows the best ideas from many. Each "claw" project is reverse-engineered to extract architectural patterns worth stealing.

The recon loop

🔍

01

Find 5–10 references in the wild

⚙️

02

Scrape / analyze / deconstruct

✂️

03

Extract the patterns that work

🔧

04

Apply to your own context

The fastest way to get good isn't to invent — it's to study what already works, then adapt it.

breathe

Act 4 — Back to the blacksmith's plans

"The hard part is the product"

Tech pulls you in. You're in build mode, solving concrete problems, seeing progress. And you realize you haven't done what's supposed to be your domain of expertise.

Not done

Personas
Positioning
Customer voice
Marketing strategy
Visual consistency

Actual order

1. Stack technique

2. Outillage

3. Vitesse

4. Produit ← ?!

Ideal order

1. Produit

2. Stack technique

3. Outillage

4. Vitesse

766commits before the product brief
8brand commits in 1 day

The step you should have done first is the one you do last. The PM who didn't do their PM work.

Act 4b — The playbook & the toolkit

Don't lose the why

You need a playbook for brand, and methods for product. The question is when to use them — not whether.

Brand Exploration Playbook8 phases
🔍
1Discovery & Audit

Inventory everything before creating

🌀
2Strategic Exploration

Diverge — positioning, personas, visuals

🎯
3First Convergence

Founder review, lock strategic pillars

✏️
4Refined Exploration

Converge — voice, typography, messaging

🔒
5Final Convergence

Lock brand book, sign off

🏭
6Production Assets

Logo, animation, handoff specs

🔄
7Asset Iteration

Sub-variant funnel, kill list, polish

🎬
8Video Production

Brand video brief, Remotion pipeline

Agent-orchestrated, 4–8h of founder attention. Breadth first, then converge at decision gates.

Product methods toolboxdon't skip the intention
5 WhysFrame

Root-cause the real need

🎯
Jobs-to-be-DoneFrame

What job does the user hire this for?

🗺️
User Story MappingSpec

Map the user journey before slicing

💥
Impact MappingFrame

Why → Who → How → What

📊
MoSCoWSpec

Must / Should / Could / Won't

💀
Pre-mortemFrame

Imagine it failed — why?

When to apply?

FrameBefore writing anything. Why are we doing this? For whom?

SpecWhen slicing the solution. What's in, what's out?

Methods are not overhead. They're the cheapest insurance against building the wrong thing. The 5 Whys take 10 minutes — undoing a wrong feature takes weeks.

Act 5 — The steel cracks

"The real hard part: steering without drifting"

The problem isn't building. It's keeping course. You spend long periods in tunnel mode. You don't step back. And you drift alongside the agent.

🏔️

Altitude

Architecture, roadmap, prioritization

🔬

Detail

API, message format, edge case

Lyra's hexagonal drift

Clean

W1–W3

Bugs/week2
Per feature2h
Eroding

W4–W6

Bugs/week7
Per feature4h
Broken

W7–W9

Bugs/week18
Per feature8h
01

You set up hexagonal architecture through your patterns

02

The agent introduces 'exceptions'. You don't see it.

03

Bugs pile up. Root cause: the architecture is no longer hexagonal.

04

You drift AT THE SAME TIME as the agent. Neither of you sees it.

You drift at the same time as the agent. That's the most dangerous part: neither of you sees it.

Act 5b — Recalibrate

Recalibrate

Lyra refacto phases — real commits

01

core/ split into strict sub-directories

47 commits
02

300-line cap enforced per file

32 commits
03

LlmEvent / RenderEvent / StreamProcessor rewrite

68 commits

545 commits on Lyra in 24 days — nearly half is refactoring

50%

Features

50%

Refactoring

Automated guardrails

Agents don't drift if the linter catches them first. Strict rules are your cheapest steering tool.

noExplicitAnywarnbiome
noExcessiveCognitiveComplexitywarnbiome
noExcessiveLinesPerFunctionwarnbiome
noExcessiveLinesPerFile500 maxbiome
strict + strictNullCheckstruetsconfig
noUnusedImports / Variableserrorbiome

The steering pyramid

Production

If it's red here, everything else waits

CI / CD

Green pipeline = permission to ship

Pull Requests

Review queue — don't let it pile up

Issues & WIP

New work enters here, not above

If it's red at the top, you unstack. Don't create new at the bottom.

If it's red at the top, you unstack. Don't pile new features on broken foundations.

Act 6b — Ship & validate

Test your product. Now.

Fast development cycles are useless if you never put your product in front of real users. Ship early, break things, learn fast.

The fast cycle

01

Build the smallest thing that works

02

Ship it to real users

03

Watch what they actually do

04

Fix what matters, cut what doesn't

Good practices at speed

01

CI/CD from day 1

If it's not in prod, it doesn't exist. Automate deploy so shipping is free.

02

Feature flags, not branches

Ship dark. Toggle on for 10% of users. Watch. Decide.

03

Metrics before opinions

You don't know what users want. You think you do. Measure instead.

04

Kill your darlings

That feature you spent 3 days on? If nobody uses it, delete it.

The biggest waste isn't bugs or tech debt — it's building something nobody asked for.

Act 6 — The mastered forge

What I'd do differently

Starting fast and iterating has its virtues. But the ideal sequence exists, and now I know it.

Before code

1

Product first

Personas, positioning, visual identity before the first line of code.

2

/init from day 1

Plan for plumbing. Use a standardized scaffold.

3

The .md / visual split from day 1

.md files for agents, HTML visuals for your decisions.

During build

4

Tooling = 30% of time

Every hour invested here saves ten later.

5

2 machines from the start

Never risk your dev env with a model that crashes.

6

The exploratory approach

Generate 10 variants, pick 3, iterate. The key is comparison.

Ongoing

7

Architecture checkpoints

A structural audit every 2-3 days.

8

The 50/50

Protect refactoring time. It's structural, not optional.

9

Steering dashboard

WIP limit applied to the ecosystem. Know when to unstack.

Act 7 — What's next

Agents are not algorithms

The next shift isn't technical. It's cultural. How we think about AI agents changes everything about how we work with them.

The wrong mental model

You expect deterministic output. You micromanage every line. When it makes a mistake, you feel betrayed. You treat the agent as an extension of yourself.

The right mental model

Give it a frame and an objective. Accept its output quality level. Don't verify every detail — manage like a leader manages a team.

The identity trap

When the agent is "you", criticism of its output feels personal. When the agent is a separate entity, feedback becomes constructive. This is the same dynamic as a manager whose team's work is critiqued.

"Does this agent, in this context, with this verification level, help me reach my objective?"

The cultural shift: from "AI as perfect tool" to "AI as managed collaborator". Not an algorithm. An entity.

Lyra by Roxabi

Your intelligence, compounded.

I don't regret starting with the tech — it gave me velocity. But each phase taught me a lesson I could have learned earlier.

Mickael — Roxabi

Lyra — visual explainers

HTML diagrams built alongside the code. The .md is for the agent, the visual is for the human decision-maker.

Brand playbook — visual artifacts

7 deliverables produced in a single sprint. From positioning exploration to video brief — each one is a decision checkpoint.

Steering dashboard

Multi-project real-time view. CI/CD at the top, prod above everything. If it's red, you unstack.

Act 6c — Field notes

Random tips from the trenches

Things I wish someone had told me. Not rules — observations.

The exploratory loop

Generate 5–10 variants
Select the 3 best
Seed 5–10 new variants from those 3
Repeat until convergence

Works for: logos, UI layouts, brand directions, voice styles, prompts, architecture decisions. The key is comparison infrastructure, not volume.

Claw Family — Architecture comparisons

Reverse-engineered agent architectures compared against Lyra. Each framework is scored across 8 dimensions — the goal isn't to copy, but to steal the best patterns.

Tooling vs Product ecosystem

8 out of 18 repos are pure tooling — almost half the ecosystem exists to support the other half.

Tooling
Product
Infra
Content
RepositoryCommitsType
roxabi_boilerplate1,200Product
lyra545Product
roxabi-plugins360Tooling
roxabi-dashboard735Tooling
roxabi-talks280Content
roxabi-production145Content
voiceCLI122Tooling
2ndBrain98Product
roxabi-vault85Tooling
roxabi-vault-tags62Tooling
imageCLI36Tooling
roxabi-claude-config28Tooling
lyra-stack21Infra
remotion-factory45Tooling
ryvo766Product
ryvo_brand8Product
roxabi_site15Product
compte_appart12Product
18 repos4,1968 tooling

Lyra refactoring phases

545 commits in 24 days. The refacto phases are as important as the feature phases — they're what kept the architecture alive.

Features (398)
Refacto (147)

27% refacto — 73% features

Refactoring phases
PhaseWhat changedCommits
Phase 1core/ split into strict sub-directories47
Phase 2300-line cap enforced per file32
Phase 3LlmEvent / RenderEvent / StreamProcessor rewrite68
Feature phases
PeriodWhat shippedCommits
Week 1Telegram adapter + message routing89
Week 1–2Discord adapter + voice channels64
Week 2–3Hub-and-spoke multi-LLM routing112
Week 3–4Memory system + context management78
Week 4Supervisor integration + deploy55

Lines of code across ~/projects

Source only — .ts .tsx .js .jsx .py .sh .css .sql — excludes node_modules, build output, generated files

ProjectLOC
roxabi_boilerplate91,779
lyra75,628
2ndBrain62,377
roxabi-talks36,845
roxabi-plugins30,323
roxabi-production12,126
voiceCLI10,703
remotion-factory8,995
Angelique4,848
roxabi-vault-tags3,458
roxabi-vault2,980
imageCLI2,778
roxabi-claude-config1,508
compte_appart765
lyra-stack534
roxabi_site345
Total345,992