Stefan Hagen Stefan Hagen on Mastodon

Net Citizen

The web was still young when I first went online in 1996. It felt like a utopian dream of free culture and free knowledge. Anyone could contribute and communicate. I spent countless hours on IRC, learnt html, php and mysql and created my first site on a shared shell server with some webspace.

I’ve watched as the dream has become a nightmare of surveillance and monetisation (1, 2, 3). Companies such as Google and Facebook offer their services for free to the public because their real products are their advertising networks powered by the personal data of their visitors.

I’ve watched hundreds of carefully handcrafted, personal websites become slow and boring wordpress, medium and bootstrap blogs that all look the same. Many of them just disappeared and people moved to big social media plattforms.

I’ve watched networks becoming regulated, favoring services for money and slowing down or blocking services that were not liked by the network provider, endagering Net neutrality.

I watched a network that was made for everyone become a marketing instrument to influence politics and make everyone pay with their personal data. Mostly involuntarily and by offering a useful service people want. This service is mostly not the business the company is in, but rather a side product needed so people join in.

The same scheme can be seen in games, which use psychological techniques to get people addicted, so they buy in app goods, which have absolutely zero value in real life.

And here I am, ranting about the past like one of the old people.

I have little influence over the wider web, but I can control my small part of it, and hold it to the ideal I learned to love. This page is simple, doesn’t use javascript, tracking or cookies. It’s just there, like a good old homepage.

Copyright limits creativity and holds back progress by restricting our rights to build upon the works of others. Therefore I’m releasing this website, it’s code and content under the terms of the Creative Commons CC0 1.0 Universal Legal Code. You can use and adapt it without attribution.

Exempt from this release are all pictures that show people or are in the Photos section of this website.


My site is hosted on a server provided by Hetzner Online GmbH in Germany. I’m operating the server myself and Hetzner only provides the hardware and remote access to it. There is no content delivery network involved when accessing this site. This means it might be slow in far away regions, but it also means that no data is shared with a CDN provider. The server is fully encrypted and webserver logs are deleted after two weeks.

Almost every site today includes code that tracks visitors for statistical and advertising purposes. Often the site owner includes code with the deliberate aim of tracking their visitors, but sometimes they just want to include a feature provided by a third party, and that provider includes their own tracking code.

My site doesn’t include any tracking code, and doesn’t load any code from third parties. It doesn’t have a cookie banner because it doesn’t use cookies.


You probably don’t know me, and shouldn’t have to trust me. Instead, you should be able to check security and privacy claims for yourself. Unfortunately most sites today use a process called code minification, which makes them faster but also makes it harder for other people to understand their code.

My site doesn’t need to use code minification in order to load quickly due to its simple design, efficient implementation, and absence of resources loaded from third parties. As a result, other software developers can easily understand how the layout, styling, and interactive features are created.


I’m not every good with design and therefore many design related elements of this page are taken from Kate Rose Morley who thankfully released her work under a permissive license. However, the way how the page and content is generated is different and based on a modified version of zodiac, which is a static website generator written in the programming language AWK. Some content pages are generated by asciidoctor and others by shell scripts or a markdown parser. Here is the Source Code.