Vibe Coding
The idea is mine, the compiler is theirs.
Vibe coding is the working method behind everything on this site. One clear division of labour: the idea and the decisions are mine, the build is theirs. I describe what I want and why. The agents build it. I read what came out and decide what ships and what gets thrown away.
It is not magic and it is not a shortcut. It is a way of directing the work. I am not the one writing the lines — I am the one who sets the task, reads the output and says "not like that, again, and this time differently." Most of the job is being able to describe exactly what should exist, then reading it back critically. Anyone who can do that does not need to know the syntax.
The rest of this page is about the tools that do that work. No how-tos — how anything is configured belongs in Tips & Setup, not here. This page only says what each tool is and why I use it.
Claude Code
Claude Code is a tool from Anthropic that runs in the terminal. It is not a chat in a browser or an editor plugin — it is an agent that actually runs the whole build. I tell it what I want, and it reads the files in the project, edits them, runs commands, reads the output and carries on from there. When something fails, it sees the error and tries to fix it. I just set the task and check the result.
Why I use it: I can't code and in 2026 I'm not going to start. Claude Code is exactly the piece I'm missing. Instead of writing code, I describe the intent in plain language and read what came of it. It moves my role from "the one who writes the lines" to "the one who sets the task and decides." That is work I can do, even though I don't know what a loop looks like.
The model underneath is Claude Opus — Anthropic's strongest model — on the Claude Code Max plan. Always the newest Opus available, no dropping to a weaker model to save money. Everything that gets made is versioned in Git and kept in private repositories on GitHub — around nineteen of them, all of them closed. Every change is therefore traceable and reversible: when something breaks, I know where, and I can go back.
MCP servers
MCP (Model Context Protocol) is, in one sentence, the bridge between the model and a real service. Without it the model would only write text. With it, it reaches into a database, a host, a set of notes — it does real things, not just suggestions. Here is every server I actually use:
Notion — notes, a log of individual sessions and brand decisions. This is where what happened and why gets written down, so it doesn't get lost between conversations.
Supabase — the database. It holds the data for the newsletter and the updates section. When the site needs something more than static text, it reads it from here.
Vercel — hosting and deployment. This is where the site is pushed, where it runs, and where a new version is published after every change.
Gemini toolkit — the second model. Used for analysis, critiquing someone else's design, and translation. More on it below in its own section.
Cloudflare — DNS and the domain. It manages where euphronic.com points and how it behaves at the domain level.
Sentry — error reporting. When something falls over in production, it catches it and tells me, instead of the error disappearing without a trace.
context7 — current library documentation. Through it the model reads how a given library is used now, not from stale training data.
chrome-devtools and Playwright — browser control. Used for tests: the model opens a page, clicks through it and checks it behaves the way it should.
memory — a knowledge graph. It holds connected facts about the project across sessions, so the context doesn't get lost.
Antigravity-dispatch — access to the desktop Gemini 3. It is opt-in, turned on deliberately, not automatically — used when it makes sense to send heavier batch work to the second model.
Gemini
Gemini is the second model and I mostly use it as an opponent. Cross-review: it reads what Claude proposed and actively looks for holes in it. Not because it is always right — so that the proposal doesn't pass without resistance. One model won't criticise itself; it needs a second view that has no reason to praise the first.
Besides the critique I also use it to analyse images, video and PDFs, and to translate between English and Czech. The working rule: anything that matters or ships goes through the second model before I approve it.
Nano Banana
Nano Banana is Gemini's image generator. I use it for brand visuals and their variants — logo iterations, images for sharing previews (OG images), graphic elements. It stays close to the facts: I describe what I need, it generates a few variants, I pick one or send it back with a change. Not an all-purpose tool for everything, just the specific part of the pipeline that deals with images.
HeyGen
HeyGen is a tool for avatar video. I have a Personal Model in it trained on my own face — a script turns into a vertical video for TikTok, Shorts and Reels without me having to film on a camera. It is still an experiment. It works, but it is a proving phase, not a finished routine, and I treat it that way: I test what is usable out of it and what isn't.
What it actually looks like
Sometimes it works better than I expected. I describe something in three sentences and a moment later there is a thing running that I couldn't have built myself in a week. That is the good part and it is worth admitting.
And then sometimes it fails spectacularly. The agent invents something nobody asked for. Two pieces of code each work on their own and cancel each other out together. Something that should have taken ten minutes eats an afternoon. That belongs to it just as much as the good part, and there is no point hiding it. What I have learned: the postmortem is often more interesting than the launch. That something worked says little. Why it broke and what could be salvaged from it — that is the part you can actually learn from.
Concrete setup, connectors and procedures: Tips & Setup.