Systems & Infrastructure

The new viborc.com: what changed, what survived, and why

viborc.com becomes an English-language publication on artificial intelligence, intelligence work, information warfare, quantum computing, and geopolitics - the topics that now occupy my time. Custom-built for that purpose, with a renewed mission worth stating plainly.

Two framed website screenshots on a deep violet field: the old WordPress viborc.com homepage set back and dimmed, the new editorial homepage in front at full brightness.

I think that the oldest dataset on this site starts in March 2015: fifty-six months of approval polling for a Croatian president, collected while I was learning what data could do in a browser.

The oldest article still standing is younger, from January 2018, and even that is not the true beginning: there was a viborc.com before this one, and some iterations before that. Across those years this domain has been a Croatian-language blog, a bilingual blog, a data-visualization playground, an election-night dashboard, and, for long stretches, a site I quietly avoided.

A lot of publishing ceremony, and honestly, me trying to figure out the next direction. More on that a little bit later.

But that avoidance had reasons, and recently it became total: the last article on the old site went up in January 2025, and then I simply stopped posting. Publishing had stopped feeling like writing. I was spending more time updating WordPress plugins, keeping the theme in check, and watching the server than actually writing, sharing what I was thinking, doing research.

New work took the rest of me: I have spent these past years inside the AI wave, at GPT Engineer, which turned into a stellar Lovable, Zencoder, and then Daydream, watching the field remake itself week by week. And Russia’s brutal aggression against Ukraine pulled my older passions, OSINT and open-source research among them, back to the center of my attention.

The old site is where I learned the craft: collecting data, drawing maps, checking claims against their sources.

But the subjects in front of me now are heavier than the ones I practiced on, and some of them I understand from the inside in a way I couldn’t have a decade or just a few years ago. I wanted a place to write that down, in public, while these things are still being decided.

Today, viborc.com becomes something else: an English-language publication about intelligence work, artificial intelligence, information warfare, quantum computing, geopolitics, and the systems underneath all of them. The name on the header is the same name. But almost everything beneath it was rebuilt from the ground up.

The logo is now more meaningful

The four overlapping circles predate this redesign; if you’ve been here before, you’ve seen them. What’s new is that I’ve decided to explain what they mean.

Each circle is a meta-domain of this publication’s work:

  • Magenta, human judgment: intelligence tradecraft, cognition, analysis
  • Amber, the developing edge: quantum computing, work still forming
  • Teal, systems and data: built systems, infrastructure, data work
  • Violet, power and synthesis: geopolitics, information warfare

Every piece on the site lights the circles its topics touch, so the little mark beside a title is a classification, and not just eye candy.

Two rules:

  • work spanning three or more domains lights the violet synthesis circle automatically, and
  • research still in progress carries amber until it ships.

The mark literally changes when a piece is finished.

The center changed too: the old mark filled its middle; the new one cuts the central flower out entirely, down to the page itself.

I left the middle empty on purpose: the overlap, the intersection of those four domains is where the work happens, and the mark keeps that space open.

The viborc.com mark: four overlapping translucent circles in magenta, amber, teal, and violet with the central flower cut out to the page color, next to the lowercase viborc.com wordmark
The mark and wordmark: the center is cut to the page itself, and ".com" is now an even clearer part of the identity.

The wordmark is simply the domain, lowercase: viborc.com. After a decade of iterations, the most honest name of this place is its address.

Type with roles

I spent time redesigning the typographic scale and now three typefaces run the site, and each has a job.

Newsreader speaks. It carries titles, standfirsts, and the occasional pull quote, with real optical sizing so display cuts stay sharp and text cuts stay sturdy.

Libre Franklin works. Body text, navigation, labels, the interface.

IBM Plex Mono offers facts. It appears only where a fact’s paperwork appears: dates, routes, reading times, measurements. When you see monospace on this site, you are looking at evidence.

Type specimen showing the three roles: a Newsreader display headline, a Libre Franklin body paragraph, and an IBM Plex Mono line of dates, routes, and measurements
The three roles, set in the site's own faces: Newsreader speaks, Libre Franklin works, IBM Plex Mono offers facts and evidence.

All three families are self-hosted, subset to the characters actually used, and served from this domain. There is no font CDN, and there are no third-party requests. Prose gets oldstyle figures that sit inside sentences; tables get tabular lining figures that align in columns. There might be some slippage here, but I’m working on fixing it.

Every established article address survived

Since the old website has been around for a while, the links are promises. People spent roughly a decade linking to this domain from forums, papers, Reddit threads, and bookmarks. This rebuild changed almost everything else about the site, which made those promises more work to keep, not less binding.

So the migration ran under one non-negotiable rule: established article URLs do not change. Not one of the 81 migrated archive article addresses did.

The archive holds 81 preserved articles - 42 in English, 39 in Croatian - each at its original address. What that means for you: if you bookmarked something here in 2019, the bookmark still works. If an old forum thread or a search result points at a piece, the link lands where it always did. The old work is not showcased on the homepage; it lives in the archive, at its own addresses, and pieces that still earn attention can get promoted into the new publication without ever changing address.

Behind all of it sits a migration pipeline (and hours of architectural rework) that verified every article and every image against the original site before anything shipped, and a pretty strict build contract that refuses to publish if a preserved page ever changes unexpectedly. Two old articles embedded charts whose data vanished with a third-party service years ago; sadly, nothing could bring them back, so those pages now say so instead of pretending the charts never existed.

The interactive work got the deepest treatment.

Some five application families I built over the years were rebuilt rather than preserved as-is: presidential approval, the Moody’s credit map, presidential election results, candidate polling, and parliamentary switching.

Their obsolete third-party runtimes, remote fonts, and analytics loaders were not carried over.

Instead, their complete datasets are now rendered into the pages at build time: real tables, readable by anyone, including readers with JavaScript switched off, screen readers, and search engines. A small first-party script adds the interactive layer on top when it can.

As a result, the data no longer depends on any company’s continued existence to remain visible.

Croatian readers keep their archive too. Nothing was retroactively translated, nothing was moved, and the historical pieces remain exactly as written, at their original /hr/ addresses, inside the new shell.

Boring on purpose

Now, I think that boring can be good. Hear me out.

I spend my working days in the fastest-moving corner of tech/software, where the tools reinvent themselves between one project and the next (or even faster than that). I needed this site to act almost as a counterweight: I built it to be the slowest-moving thing I own.

It has promises to keep (your 2019 bookmark, an archive that must still resolve in 2035), and excitement is the enemy of that kind of promise.

So the publication itself is plain files. No CMS, no PHP, no plugins: every page is a text file under version control, compiled ahead of time into static HTML. What the server does is very simple: it hands you files. It does a little more around the edges (the contact form and newsletter live in a small separate service), but files are the essence, and the attack surface is deliberately small: small enough for one person to reason about, and rebuildable from source if anything ever goes wrong.

The rule I am proudest of: the build refuses any script that lacks an exact, per-page, human-approved fingerprint - including mine. I build with AI every day and I know how easily code slips into places it shouldn’t. Here, every inline script is hashed and registered against the specific pages allowed to carry it; change one byte without a matching approval and the site will not build at all.

On ordinary editorial pages, JavaScript stays small and first-party: it handles reading aids, navigation behavior, and a few decorative details. The restored interactive applications add their own reviewed first-party code. Everything a page argues - text, tables, figures, footnotes - is present in the HTML before any script runs. Turn JavaScript off and you lose enhancements, not the argument or its evidence. You can still use the website normally.

Audience measurement is designed around PostHog Cloud EU with a cookieless baseline and a separate enhanced mode that recognizes returning readers and connects their sessions.

The analytics code passes through the same fingerprint gate as everything else, and the privacy policy describes the bounded data contract and its choices in plain language. Before public activation, that contract gets proven on the protected preview: what the browser sends, what the relay passes on, what gets stored, and what the payloads contain.

The editorial position

While rebuilding this, I thought about the mission first: I want to explain and document, with evidence a reader can check, how machine intelligence, information warfare, tech, and the contest for power are changing the ground we all stand on.

The website itself, data viz, code… everything below is machinery in service of that.

Also, this is where the publication stands at launch, not where it will end. It will evolve, and several months or a year from now it will not look exactly like this. What I intend to hold constant are the fundamentals: the subjects, the evidence discipline, and the promise that established addresses do not change.

I was also rethinking the reading model and landed on two forms and six topics.

Essays are the default form: writing that argues, explains, or explores, at any length.

Research is the deeper content. Pieces there typically carry a declared question, a method, and evidence a reader can inspect; sometimes they are broader syntheses, work first published in other venues, or investigations still under way.

This is not an academic journal, and it does not aim to be one. There are places where I can publish that kind of work; this is likely not one of them.

It is simply where the heavier work lives, whether it grew up here or appeared in a peer-reviewed publication first.

So, when I’m in doubt, a piece ships as an essay. Maps, visualizations, and datasets are not a separate section anymore; they are vocabulary any piece may speak.

The six topics:

Every piece carries one form and one or more topics, and the archive keeps its own nine collection shelves for the historical work.

New publishing is English-only. The Croatian archive stays, preserved and respected, but this publication now writes in one language.

And a standing commitment is that the sources, dates, and data stay visible on the page. Where I am documenting, you will see the documents. When I am arguing or merely guessing, I will say so.

What happens next

The Research shelf opens with a revised web edition of peer-reviewed research I co-authored with my friend David Kirichenko on Russian influence operations in the Balkans. It was first published in the Georgetown Security Studies Review.

A report on the weaponization of large language models is still being written. And more essays will come steadily across all six topics.

If you want to follow along, the RSS feed carries every new essay and research piece. You can also subscribe to the viborc.com newsletter in the footer. It is email-only and double opt-in, built with the same small, careful machinery. The contact page reaches me directly.

As I type these final thoughts before a launch I’ve been postponing for days now, I am excited about this publication, and even more about what these topics will do to our work, our systems of power, and how we see both. I plan to write it down as it happens. Follow along, and let’s stay in touch.