I just wanted to see who was in the Top 2000
A cosy little radio list, I thought. It became a domain of its own, a database, a live block, a search engine and a maintenance page showing a radio on fire.
Why? Because you won’t take my word for it
A company that promises “lightning-fast custom websites” can say so all it likes. Proving it is more fun. So I looked for a project with lots of data, live information, a search function and serious SEO, and one I would enjoy myself. The Top 2000 has been in my earshot for years. It became a portfolio piece: look, this is how I build things.

What is it?
A site (in Dutch) with all 27 lists from 1999 up to and including 2025, split into facts: one-hit wonders, heavy hitters, artists who suddenly vanished and the highest new entries. Plus presenters, listening figures per year, a history overview and, at the top, what is playing right now on NPO Radio 2. Every artist, title, year and presenter is clickable and opens a popup. Popups within popups too, because one layer is for amateurs.
My favourite is the section “Bizarre feitjes” (bizarre facts). For example, in 27 editions Bohemian Rhapsody was number one 22 times and number two five times. A huge surprise, I know. And Prince appears under three names, which makes for a lovely sentence when you want to build a database.

The challenges (or: where my evening went)
First the data. Dozens of lists in different spellings had to go into one SQLite database. Artists turn out to enjoy appearing several times, like Prince above, which then counts beautifully twice. Then the live block. NPO serves the data from multiple servers, and one of them sometimes runs a few minutes behind. The result: I had a new song and the site insisted it was still U2. So I built a guard that never lets an older song overwrite a newer one. Yes, for a radio programme.
Then Safari. It decided that a background tab should keep quiet and slowed the timers right down. I decided otherwise and made the page catch up at every movement. Finally the logo, which was rather large. It is now 28 KB. My PageSpeed score said thank you.

How it works now
It is plain, fast files, without a heavy CMS. A script of my own builds the pages and the search index with every update. The live block fetches the latest data every 30 seconds, and within about 40 seconds of the change at NPO the song is on your screen. For “live” radio that is fine. There is a maintenance page for when things overheat (with a burning radio, naturally), weekly checks, and a nudge to search engines with every change. Meanwhile my A.I. assistant keeps the logs and doesn’t complain about the hours.
And yes, that’s me
Under “Wat heb ik gedaan?” (“What have I done?”) my name is a link. Click it and you get a photo of me behind my radio, in a 1960s teak frame with a brass nameplate. Why? Because I can.

What can I do for you?
Do you have an idea for a website with lots of data, live information or simply a great many facts? Or an app that just works? Have a look around top2000feitjes.nl (in Dutch) and tell me what you want.
#Top2000 #NPORadio2 #WebDevelopment #Portfolio #LightningFastWebsites #CustomSoftware #PageSpeed #SQLite #Radio #TheJumpingFox
Regards,Pim