This website is a work-in-progress. My goal is to make something I am truly proud of as a home for my content. I have professional experience as a web developer, but truth-be-told, I was never one for the
This site is a departure from my comfort zone. I want to design it myself and implement it in a new way. This site is based on my vision for the web, and if you like it, you can read further and view the source on Github. There is a lot more I wish to do on this site, however, I don't have unlimited time to develop it fully. I am rushing this first version out so I can start posting content and will be back to update this page as I go.
The Internet is something I cherish and I aim to preserve its spirit. Perhaps one day I will try to codify the spirit of the Internet into laws, but for now I will simply paint the picture of what a good webmaster-citizen should do. These are the requirements for my website:
FOSS — As mentioned above, this website's source is available on Github (or, of course, you can view source in the browser). Feel free to repurpose any of the code I've developed for your own site. Immitation is the biggest form of flatterly.
No Ads or Tracking — I don't use Google Analytics. I don't need a GDPR warning (I think...). I won't embed third-party media on the page. I won't use reCaptcha. I will probably end up using server logs for analytics. I realize not everyone has the luxury of doing this, but since this site is not how I earn a living, I can make do with less insights about my audience.
Webperf — Not every user has fast Internet. Some people have a poor connections, and some are using privacy-preserving software that slows their bandwidth speeds. I respect that. Also, web performance leads to a better user experience, which I will cover in the next section. I have carefully crafted this site to be as minimalistic as possible, not importing any large assets, but there are still many optimizations I have yet to make.
Decentralized Communication Channels — I have set up a mailing list so that I can directly contact my audience through a robust, federated communication channel. You will see me plug my list later in this article. I also want to implement other protocols for keeping my audience up-to-date, including RSS and ActivityPub.
Accessibility — This is my number one priority. I feel bad putting this in the
not yet implemented section. I will do this as soon as possible (the site should already be relatively accessible, but I have not researched what needs to be done to be sure of that yet).
Onion Service — I want to make this website available as a Tor service.
There is a fantastic platform called Write.as that has fully implemented most of these features and embodies these ideals. The only reason I am not using them is because I want more control over my source code. I believe I can implement it better if I have full control, and take these ideas to new heights (over time). This will be covered more in detail in the
technical implementation section below.
The single biggest design inspiration for this site is Practical Typography, a project I greatly admire. Through typography, it is possible to create a minimalistic site that adheres to the objectives laid out above. Subtle factors like adjusting the line height can make a simple design suddenly look elegant. However, I am breaking one major rule: don't use default system fonts. While that generally seems like a good rule, I am using the default font in order to make a statement that it is unnecessary to import assets to have a good site. It would be possible to find another system font, but I like it this way better. That said, I may add a custom font in the future, since it is a great way to make a design look very polished without relying on large images or fancy designs.
Another minor influence for this site Roam Research (notice the different looking link-style). I will use this format for links to other posts and pages on my site. Roam pioneered the use of double brackets around connected pages and I love the aesthetic.
I have many technical goals for this blog, but right now it's very crude. Currently, I hacked together a template and am typing this article in-line to the html. My goal will be to create a custom static site generator that will process text files the exact way that I want. I could certainly use existing static site generators for this purpose, but I thought it would be fun to implement one myself.
At first, I will host the site using Github, however, I plan on switching over to AWS shortly. I am open to considering different data centers, but I want one that helps me meet my objectives, such as being Tor-friendly (supposedly CloudFlare is bad at this) and loading quickly (AWS, among others, is good at this).
I have many other ideas of directions I could take this, but it is important that I start small. Ultimately, my blog is just an artistic medium I am using to distribute my writing. I run a start up full-time and need to get to writing, so I will slowly but surely improve this blog.
In conclusion, please check back on this page for updates on my progress. As the title suggestions, this is a living, breathing document. I will update the text and the website implementation as I go.