Vi Grey


I'm Reclaiming and Simplifying My Website (New Website Design)

Nov 10, 2022


You may have noticed that my website looks considerably different from what it did even a week ago. I decided to change up my website's design considerably and go for a "text first" inspired static site experience. To do this, I created a HTTP+Gemini server called Bergelmir, the source code of which can be found in the link below. My website is now currently simultaneously a website and a Gemini capsule. Both the web server and the gemini capsule also have built-in Tor hidden service support!


Bergelmir Source Code

Gemini Capsule?


Gemini is a protocol, much like HTTP is a protocol, that was created in 2019 to distribute arbitrary files and serve lightweight hypertext files that can link to other files. Put more simply, it's similar to "the web" or the gopher protocol. The thing that makes Gemini different though is how text oriented and simple these hypertext files are by default compared to HTML files.


HTML files can include a lot of bloat, like css, javascript, ads, and trackers. Gemini hypertext files, frequently called "Gemtext" files, strip things down to essentially the bare minimum by design. Gemtext files limit you to text, links, headers (3 levels of headers, equivalent to <h1>, <h2>, and <h3>), unordered list items (not nested), blockquotes, text, and preformatted text (equivalent to <pre> in HTML). The first 3 characters of a line informs the browser what type of formatting the line uses. The specification looks very similar to a minimalist version of Markdown. For more information on Gemini, I am including the http and gemini links to the specification and the Gemini Project frequently asked questions pages below. I will also include a talk by James Tomasino titled "Rocking the Web Bloat: Modern Gopher, Gemini and the Small Internet" below.


Gemini Protocol Specification (HTTP)
Gemini Protocol Specification (Gemini) [Gemini Protocol Link]
Project Gemini FAQ (HTTP)
Project Gemini FAQ (Gemini) [Gemini Protocol Link]
2022 - Rocking the Web Bloat: Modern Gopher, Gemini and the Small Internet - Youtube video

The simplicity of Gemtext and the Gemini protocol means building a server and a client from scratch are quite simple. Good luck trying to build a web browser nowadays with the amount of things that are needed to be supported, especially with all of the quirks of CSS and Javascript.


Here is what this site looks like in the Amfora Gemini browser (terminal based browser)


vigrey.com/projects running in the "Amfora" Gemini browser

And this is what this site looks like in Firefox


vigrey.com/projects running in Firefox

Why Use That?


The design features of Gemini pushing for a text oriented experience is very appealing to me, as text is incredibly cheap in terms of storage and bandwidth. A huge inspiration to me in terms of simplicity and design was the solar powered version of the LOW←TECH MAGAZINE, which runs off of a Raspberry Pi powered by a solar panel. The link to that website can be found below.


LOW←TECH MAGAZINE Website

Reclaiming My Website


For a while now, I was convinced that I needed to be a brand, essentially indistinguishable from a company. I'm not a company though. I'm a person with quirks and strange hobbies who likes to talk about the things I like doing. In my opinion, the bloat from advertisements, tracking, Javascript, and even CSS has made the web incredibly heavy, intrusive, unsafe, and slow. Moving to a "Gemini first" website philosophy will make my website smaller and more accessible, especially in terms of accessibility tools like screen readers and refreshable braille displays. As an extra bonus, printing out my blog posts or saving the page as a PDF results in a much more "content oriented" experience than my last website design, as styling doesn't get in the way. In terms of website size, at the time of writing this, my entire website is only a total of about 20 MiB (20 * 1024^2 Bytes) in size, including all PDFs and images.


Your web browser is expected to just run arbitrary code that the web server throws at it. In the vast majority of cases, the people who run the web servers don't even know what arbitrary code is being run on their users' browsers. Have you seen how huge and unwieldy a Wordpress blog page is? It's madness!


Information wants to be free. Words want to be read. Your browser probably doesn't want to have to use reserve half of your RAM to load up those bloated pages that run Javascript that fetches Javascript that fetches more Javascript, even if the business model of the company behind Chrome is distributing ads.


The HTTP version of this site will use whatever the default sans-serif, serif, and monospace fonts are on the computer viewing this site, which shrinks the website considerably, as fonts don't need to be temporarily downloaded by the web browser. Information comes first for both the Gemini and HTTP versions of this site. I want to share information and I hope you want to meet me in the middle by reading this information.


I would like to write more, and setting my website up this way will make it easier for me to write more, as writing Gemtext files are very straight forward compared to HTML. It's also harder to mess up formatting compared to HTML. Gemtext files essentially look like what the final content looks like, where a web browser hides a LOT of information in terms of tags of an HTML file.


Quick Disclosure on Javascript Usage on This Site


My website (the HTTP version) uses Javascript in exactly 3 ways. First is to obfuscate my email address on the footer of each page, second is the light/dark mode button on the header of each page, and third is handling storing whether you are in light or dark mode (only after clicking on the light/dark mode button) for your convenience in your browser's local storage. The HTTP version of my site works perfectly well without them and Javascript can be turned off without impacting anything else. This website also works perfectly well in the Tor Browser with the security mode set to "Safest".