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.

The homepage of top2000feitjes.nl: a wall of records and cassettes with cardboard letters spelling Top 2000 feitjes.nl, with the menu and a countdown below
The homepage of top2000feitjes.nl, with the countdown to the 28th edition (click the image to open the site)

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 Bizarre feitjes page of top2000feitjes.nl with a random fact about Bohemian Rhapsody never placing lower than number 2
The “Bizarre feitjes” page, with a random fact each time and its own link per fact (click to enlarge)

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.

A popup about the artist Queen with a second popup on top about the song Love Of My Life, with a chart of positions per edition
An artist in a popup, with the song on top and a chart of the positions per edition (click to enlarge)

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.

Pim Uijttewaal behind a wooden radio, next to a rotary telephone and a pile of papers
Me, my radio and a pile of papers. On the site there is a teak frame around it (click to enlarge)

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.

What can I do for you?

#Top2000 #NPORadio2 #WebDevelopment #Portfolio #LightningFastWebsites #CustomSoftware #PageSpeed #SQLite #Radio #TheJumpingFox

Regards,Pim

Share this story

← Back to the blog

TL;DR

The short version

  • I built top2000feitjes.nl (in Dutch): all 27 Top 2000 lists since 1999, with facts, bizarre facts, presenters and listening figures.
  • At the top it shows live what is playing on NPO Radio 2, within about 40 seconds of the change.
  • Everything is clickable (artists, titles, years, presenters), there is a search function of its own and the performance scores 100 on PageSpeed.
  • It is my portfolio piece: this is how I build custom websites with their own data and live information.

TL;DR

What does TL;DR mean?

TL;DR stands for “Too Long; Didn’t Read”. It is internet slang for the short version: the main points in a few lines, for when you are in a hurry or just want to know what a story is about.