Nuxt/Node Progressive Web App
A little history…
We built spike.news to scratch our own itch. We wanted a dashboard of all the latest news too keep on top of the latest tech trends.
Versions 1-3 were written in PHP and simply ran a CRON job to cache a list of RSS feeds, then converted them into columns of links. It ran flawlessly for years.
Each version brought design tweaks and gradual improvements. The initial commit was on 2012-09-31, and you can still see the original readspike.com
Spike.News – Nuxt & Node
In 2017, readspike.com got noticed. It appeared at the top of Hacker News, and mega-blog boingboing.net posted a glowing review:
The best yet in its class, beautiful and simple, with a good taste in sources. It might be too beautiful, if you see what I mean? The next step here, though, would surely be the ability to pick your sources. Rob Beschizza, Editor, boingboing.net
It was clear spike.news users needed it to be customisable.
By 2019, we’d fallen in love with Vue.js and were getting pretty good with it. We’d made a few custom APIs with Node & Express, and we’d enjoyed using Google’s Firebase as a no-sql database.
Nuxt, the Vue.js Single Page App (SPA) framework was starting to get some traction when it reached v2, and we found it amazing to work with, just the right amount of batteries included – file based routing, shared state with Vuex (now Pinia), API routes and server-side data hydration.
V4 → V5
We started coding up v4, and got it working, but as it was our first attempt, we made a few poor architecture decisions that left it brittle and not stable enough for public use.
We took the learnings and the good parts of v4, and rolled them in to what you see today - a customisable, privacy first, fast, accessible and reliable SPA.
We also rolled in light mode, left handed mode, RTL mode, large type, auto-favicons and JSON import / export, leaving all the user data to the user.
Of course, not everybody likes change, so we left v3 up and running at readspike.com, and launched the new version at the catchy new domain, spike.news