Dogfooding @neurowire/core to power this blog's feeds
This site pumps out its own Atom, JSON Feed, and NWF feeds from one canonical Neurowire rig, because a netrunner running their own library on their own turf is the most honest test it gets, choom.
The Atom, JSON Feed, and NWF links in this site’s footer are all pumped out by @neurowire/core, the same library the Neurowire docs describe. One canonical rig serialises to all three formats at build time. I jack my own library into my own blog because that is the fastest way for a netrunner to find out where the chrome actually hurts.
mederic.me is a static Astro site. No server, no feed plugin, no hand-written XML. At build time the site collects its posts, builds one Neurowire rig, and asks that rig to emit each feed format. If the library is a gonk, my own feeds flatline first, and I clock it before any other choom does.
How does a static site build a feed rig?
The flow is short. Astro hands me the writing collection, I map each post into the canonical shape Neurowire expects, and I construct a single NeurowireFeed rig from that list. That rig holds the feed metadata and the entries once, with no format-specific assumptions baked in.
From there it is three calls. toAtom() gives me the Atom XML, toJsonFeed() gives me JSON Feed, and toNwf() gives me the native Neurowire format. Each one is a pure serialisation of the same source, so the three endpoints can never disagree about what was published.
Why is one canonical rig the point?
Most sites generate feeds independently, so the Atom and the JSON Feed quietly drift. A date format differs here, an entry is missing there, and nobody clocks it until a reader’s reader flatlines. When every format is a projection of one rig, drift is structurally impossible. That single source is your ICE against drift: nothing to keep in sync because there is only one rig to trust.
That is the whole thesis behind the Neurowire project: model your feed once, serialise it anywhere, preem. The docs describe that canonical rig in full, and this blog is the proof that it works in a real static build, no corpo hand-waving.
Why is dogfooding the best test?
Tests check the cases you thought of. Running the library on your own live turf checks the cases you did not, the ones lurking in the shadows like a scav. When I add a post and the build emits three correct feeds, that is a stronger signal than any unit test, because it exercises the real Astro pipeline, real content, and real edge cases in titles and dates.
It also keeps me honest about ergonomics. If building the rig is a pain for me, it is a pain for every other choom who jacks in, and I feel that friction immediately. A library you use daily cannot hide a clumsy API from its own netrunner.
What did dogfooding surface?
The honest answer is the small stuff: a date that needed normalising, an empty-summary case, the exact shape Astro hands you for a collection. None of it flatlined the build, and all of it would have shipped unnoticed if my own feeds were not on the line. That is exactly why I built it this way, nova and clean, and why the launch write-up leans on the same rig. The best test for a feed library is a real feed you actually read. You can build and read your own in the Neurowire App, choom.