I conceived, designed and built the Neusatz Archive to give Novi Sad something no museum or institution had made: one public home for the city's visual history. It brings together photographs, postcards, maps, prints and documents of Novi Sad, Petrovaradin and Sremska Kamenica, from the late seventeenth century to the end of socialist Yugoslavia. Every picture is dated from evidence, placed on the map where its view allows, described, tagged and readable in five languages. It is the factual side of Neusatz, my world-building project about the city.
One record on desktop and phone: the picture, its date, and a description of what it shows.
The pictures of old Novi Sad exist, but they are scattered. Some sit in the online collections of museums and libraries in Budapest, Vienna, Szeged, Kraków and Novi Sad itself, each catalogued in its own language. Many more circulate privately, shared in collectors' groups and family albums, with no date, no place and no source.
No Serbian museum or institution had brought them together. I set out to build the archive the city was missing: one place where anyone can follow a street, a square or a bridge across three centuries, and trust what each picture says.
The places index: 118 places, each with its names in the city's other languages, the years its pictures cover and how many there are.
I own the archive end to end: the idea, the scope, the content model, the interface, and every call the evidence cannot settle. I designed and built the interface from scratch.
The research, writing, translation and code are done with Claude Code, Anthropic's AI coding tool, working as my build and research team. It works to rules I set. Every ruling I give goes into a dated rulebook, with my reason, and each working session reads it before changing anything. I review the results on the live site and send back what is wrong.
Most old pictures of the city arrive with a guessed date, or none at all. I treat each one as evidence, and the picture narrows its own years down, one clue at a time:
Trams. Novi Sad's electric tram started on 30 September 1911. Overhead wires put a street scene after that day; a horse-drawn tram puts it before.
The back of a postcard. A back divided for the address and a message means 1905 or later.
The photographer's title. "Court photographer" required an imperial appointment, so the view is no later than 1918.
Names. A street renamed after 1918 means 1919 or later. A stamp of the Kingdom of Serbs, Croats and Slovenes means 1918 to 1929.
The words of an occupation. A Hungarian caption calling the Banovina Palace "former", or a home of the Levente youth movement, can only come from 1941 to 1944.
How the picture was made. Engraving, hand-tinted lithograph or real photograph narrows the decades further.
Dated from its own caption: the Hungarian "A volt báni palota", the former Ban's Palace, is wording from the occupation of 1941 to 1944.
Some answers are dramatic. A set of flood photographs first dated 1900 to 1930 turned out to show the great Danube flood of March 1876. The proof was a newspaper's name painted on a shop front and a Cyrillic letter that the spelling reform had already retired from print. The alphabet alone dates nothing, because Novi Sad printed Serbian Cyrillic beside Hungarian and German long before 1918. The names do.
Alongside the archive I built a correlational map of the city in Obsidian: hundreds of linked pages, one for every place, photographer, publisher and collection. Each place page carries its history, its names in Serbian, Hungarian and German, which periods survive in pictures and which are still missing. It is rebuilt with every publish, so each new picture makes it richer. This backbone is what turns a pile of images into a connected history of the city.
The town map: every placed picture pinned where it was taken.
Select a picture and its record opens beside the map: date, place, source, licence and tags.
The archive covers Novi Sad and the two towns that grew up with it across the Danube: Petrovaradin, under its fortress, and Sremska Kamenica. Holding that focus gives every picture a place in one connected story, from the Habsburg frontier town to the socialist city.
Each record carries a written description of what is in the picture, which also serves as its alt text. Every sign, caption, stamp and postmark that can be read is transcribed letter for letter. Then the picture is tagged in layers: its era; its type, from photograph and postcard to map, print, coin, banknote, stamp and document; one or more of fifteen categories such as architecture, street life, transport or war; the place it shows; and what can be seen in it, from trams and carriages to shop signs and the Danube. All of it is searchable, so typing a shop's name or "tram" finds the pictures that show it, and every title and description reads in five languages.
Fifteen categories, each with its count, and a picture can sit in several. Ticking transport narrows the archive from 1,591 pictures to 402.
I built the interface from scratch with Claude Code: no template and no UI framework. It is more than 9,000 lines of HTML, CSS and JavaScript. The only outside pieces are MapLibre for the map and two typefaces, Cinzel and Spectral.
I designed it in the browser. Each round I reviewed the live build at four widths (320, 390, 768 and 1440 pixels), sent screenshots of what was wrong, and Claude Code made the change. Every decision went into the rulebook so later rounds would keep it. A few of them: the same header on every page, with search, filters and sort fixed at the top while you scroll; Back at the top left and Share at the top right, out of the filter row; every picture carrying a written description of what is in it, used as its alt text and searchable.
The Banovina Palace place page on a laptop and a phone. On the phone, the tab bar takes over the bottom edge.
My brief for the mobile layout was one sentence: "we are imitating iOS apps." A tab bar owns the bottom edge, the header works as a navigation bar with a back chevron, large titles collapse as you scroll, and every touch target is at least 44 points. The structure follows Apple's conventions. The look stays the archive's own: dark, and set in Cinzel.
A record and the places list on a phone.
The archive opens on the Wall: one masonry plane of photographs that repeats in both directions, so dragging never reaches an edge. It is written without an animation library. A full-screen slideshow plays the archive over the city map.
The Wall, the archive's landing view.
A second interface, private to me, puts every open question in front of me with a suggestion, such as a place link the evidence left uncertain, and publishes my decisions in the background while I keep working.
The archive is built to be fast and to last. It is a set of plain web pages with no database behind them, so it loads quickly and is simple to keep online. Publishing is one step, and that step checks its own work: before anything goes live, automatic checks look for the kinds of mistakes that once slipped through, and afterwards it opens every changed page on the live site to confirm it matches what was built.
The archive is also written for AI assistants. A plain-text guide and a readable copy of every page let them find a picture, its date and its source when someone asks about the city.
A place page: Petrovaradin Fortress, with its names in three languages, its history and every picture of it.
The archive is one part of Neusatz, my world-building project about the city, and each part feeds the others.
Town of Neusatz is the fiction side: a site of boroughs, curiosities, lore and crews, with its own timeline and map. Neusatz Monopoly puts the city on a 3D board you can play in the browser, with card art that starts from archive photographs. A series of historical short films, from the Neusatz Trailer to Fear in Ratzenstadt, sits in the Motion section of this site. And short reels, each built from one archive photograph, carry the archive to YouTube and Instagram, and every one ends by pointing viewers back to Neusatz.
The archive is promoted through short vertical reels. Each one turns a single archive photograph into about 30 seconds of film: every detail in the picture becomes its own shot, and the reel ends on Neusatz.cc.
The archive record of Rákóczi Ferenc Street in 1941, and the opening of the reel made from it.
Pick one photograph from the archive and read its record: the date, the place, the lettering.
Pull every detail out of it as its own shot. Each shot starts from a frame composed from the real photograph and gets one action and one gentle camera move. Veo animates it. Each clip is generated at 8 seconds, and the edit keeps its best 2 to 5.
Write the text in the language of the period, Serbian, Hungarian or German, never English. Titles and short lines are painted into the frame and dissolve into the scene. Long historical statements go on cards.
Score the whole reel with one piece of music, generated on my own machine, and keep only the clip sounds that matter. Some reels carry spoken dialogue in Serbian.
Check the cut against a checklist of every comment I have given on earlier reels, then watch it myself. Nothing goes out until I approve it.
Publish to YouTube Shorts and Instagram, with a description written in the Neusatz voice.
Claude Code runs the pipeline: it composes the frames, writes the prompts, generates and checks the clips, cuts the film and drafts the description. I direct each reel and approve the cut.
The reels meet people where they already are, in the feed, and send them back to the archive. The archive-based reels are among the most watched on the Neusatz channel, and the best of them have each passed a thousand views. These three show the approach at its best:
Újvidék, 1941
Peterwardein, 1917
Summer on the Danube
Three towns and more than three centuries, from 1687 to the end of socialist Yugoslavia
More than 1,500 pictures from more than fifty museums, libraries and collections, and growing
Four eras: the Habsburg town, the Kingdom of Yugoslavia, the Second World War and socialist Yugoslavia
Every picture dated from evidence, described, tagged and readable in five languages
More than a hundred places with a page of their own, and most pictures pinned on the town map
A family of Neusatz projects around it: a fiction site, a board game, films and reels