Hi there 👋🏻

Solution architect from Belgrade with a passion for tech, IoT, and home automation. This blog is a collection of my thoughts and experiences, mixing the technical with the nonsensical.
A pegboard wall of bicycle workshop tools, every wrench and plier hung in rows in full view

How to Build an MCP Server (and Read What It Costs per Turn)

The quickstart gets you a working MCP server in twenty minutes. What it doesn’t say: every tool you define is a paragraph the model reads before every reply, for as long as the server is connected. Build one, then read what it ships.

September 18, 2026 · 10 min · Vladimir Cvetić
A network patch panel with numbered ports, one blue cable plugged into port 074 among grey ones

What to Use Instead of Firebase for Chat

Every list of Firebase alternatives is a list of databases. If the thing you built on Firebase is chat, that’s the wrong list. Here are the options for chat specifically, with what each one makes you rebuild and what its bill looks like.

September 18, 2026 · 11 min · Vladimir Cvetić
A hand holding a typed index card at the front of an open library card catalog drawer

What Goes in CLAUDE.md, and What Belongs in an ADR

You read the previous post and pasted the why into CLAUDE.md, and now that paragraph rides along on every task the agent ever runs. The sign belongs there. The reason doesn’t.

September 9, 2026 · 8 min · Vladimir Cvetić
Four walled-off app containers, each holding its own green presence dot, with the links between them severed

Presence Was Supposed to Be Infrastructure

XMPP didn’t lose. The web turned presence into a product and rented it back to us one app at a time. Matrix isn’t the successor — it’s a different bet, and the thing it turned off is the P.

August 31, 2026 · 8 min · Vladimir Cvetić

ADRs for AI-Assisted Codebases: Write Down Why, or the Agent Will Undo It

ADRs were written for the future engineer who asks ‘why is it like this?’ That engineer is now an AI agent, it arrives in minutes instead of years, and it doesn’t ask - it refactors.

August 23, 2026 · 4 min · Vladimir Cvetić
An AI hand pulling a zombie hand holding a floppy disk out of a grave, surrounded by tombstones for moment.js, var, callback hell, and XMLHttpRequest

JavaScript Necromancy: The Web Never Forgets, and Now It Autocompletes

LLMs learned JavaScript from a web that never deletes anything. Now they generate 2013’s best practices at scale, publish them back onto the web, and the next model learns from that. The graveyard has a feedback loop.

August 23, 2026 · 9 min · Vladimir Cvetić
Artistic reconstruction of Byzantine Constantinople — the Hippodrome, Hagia Sophia and the Great Palace behind the sea walls

1204: The Receipt Europe Forgot to Throw Away

Prestige can outlive the state that produced it. 1204 was not just a medieval atrocity — it was the receipt for a much larger transaction.

August 22, 2026 · 13 min · Vladimir Cvetić

When Home Assistant Becomes the Family API

The moment you automate your home, everyone who lives in it becomes a user of a system they never agreed to. Here’s how to design for people who didn’t consent to being users.

August 18, 2026 · 7 min · Vladimir Cvetić
Context is an architectural surface

Context Is an Architectural Surface

Context isn’t what you paste into the prompt. It’s what the model sees, prioritizes, and is constrained by. That’s not prompting — that’s system design.

February 23, 2026 · 5 min · Vladimir Cvetić
Stop betting on one-shot — a practical LLM workflow

Stop Betting on One-Shot: A Practical Workflow for Shipping with LLMs

LLMs don’t ship software. They ship text. You ship software by constraining the problem until text reliably becomes change sets you can trust.

January 17, 2026 · 5 min · Vladimir Cvetić