Creating your own Gemini Server — part 1: What is the Gemini Protocol?

Simen Mailund
Erus Encodia
Published in
6 min readAug 23, 2023

--

Photo by NASA on Unsplash

The Gemini protocol is a lightweight, text-based internet protocol designed to provide a simple and efficient way to access online information. It is similar to the protocols behind your familiar web browser but embraces the philosophy of “keep it simple” and “less is enough.” Gemini allows users to explore an online collection of written documents that can link to other written documents. Its focus on simplicity and minimalism enables it to avoid many of the complexities and issues present in the modern web.

The name “Gemini” comes from the Gemini space program, which was conducted by NASA in the 1960s and 1970s. The Gemini program aimed to develop techniques for advanced space travel and spacewalking (extravehicular activity). The analogy with the Gemini space program draws a parallel between the protocol’s approach and the spacecraft’s philosophy of doing less with more. In the case of the Gemini protocol, it achieves a lot with minimal complexity.

As explained in the official FAQ: “Gemini is a group of technologies similar to the ones that lie behind your familiar web browser. Using Gemini, you can explore an online collection of written documents which can link to other written documents. The main difference is that Gemini approaches this task with a strong philosophy of ‘keep it simple’ and ‘less is enough’. This allows Gemini to simply sidestep, rather than try and probably fail to solve, many of the problems plaguing the modern web, which just seems to get worse and worse no matter how many browser add-ons or well-meaning regulations get thrown at them.”

Why another internet protocol? What’s wrong with HTTP or Gopher?

Much like the regular internet protocol (HTTP), Gemini enables users to navigate documents linked together. Although Gemini might seem like an older, less feature-full internet protocol, it is rather a modern internet protocol designed to be simpler and more focused on reading and sharing text-based information. It does not support complex media like images, videos, or client-side scripting by design. This simplicity leads to a more streamlined and distraction-free reading experience.

Some of you might be familiar with Gopher, which was an earlier protocol that was popular in the early days of the internet that allowed users to browse and retrieve text-based documents Due to lacking some of the interactivity that HTTP provided, Gopher slipped out of the mainstream early on, but has a dedicated community of enthusiasts to this day. While Gopher and Gemini share similarities in their text-based nature, Gemini is more modern and takes inspiration from the best aspects of both Gopher and HTTP, seeking to create a better user experience. In fact, a lot of the main contributors to the Gemini protocol were active in the Gopher community!

While there is a lot of overlap between HTTP, Gopher and Gemini, Gemini is not meant to replace existing internet protocols like HTTP or Gopher. Instead, it is intended to be an additional option for users who seek a simpler and more focused online reading experience. Rather than viewing Gemini as turning the clock forward or backward, it is better seen as a timeless experience that can coexist with modern web technologies. It aims to provide a distraction-free reading mode similar to the “reading mode” some modern browsers offer, catering to users who appreciate a more minimalist approach to online content consumption.

Web page -> Capsule

In the Gemini protocol, the equivalent of a “web page” is referred to as a “capsule.” This encapsulates the idea that the content is more contained and self-contained, aligning with the protocol’s minimalist approach.

Strengths of the Gemini Protocol

As an additional option to the modern web, Gemini offers several unique strengths through it’s extremely miniamlist approach. These strengths make it an appealing option for those who value simplicity, privacy, and distraction-free browsing.

Extremely Stripped-Down Web Stack

Unlike modern web protocols that include complex features like images, video, client-side scripting and flashy style sheets, Gemini focuses solely on delivering text-based content. This stripped-down web stack results in lightweight, fast-loading pages that prioritize content over flashy visual elements.

Privacy-Centered

Gemini takes privacy seriously and is designed to discourage extensive user tracking that has become prevalent on many modern websites. By limiting client-side scripting functionality, such as JavaScript, Gemini avoids the use of intrusive tracking scripts and eliminates potential security vulnerabilities associated with client-side code execution.

Distraction-Free Browsing

One of Gemini’s primary goals is to provide users with a distraction-free reading experience. It deliberately excludes intrusive interactive elements like pop-ups, autoplaying videos, and animated ads. The absence of client-side scripting means there are no dynamic or animated elements to distract users from the content they seek.

Gemtext Format

Gemini content is authored in a format called “Gemtext,” which is a clean and simple markdown-like markup language. This format enforces a straightforward and easily readable style for all pages. The use of Gemtext promotes uniformity across capsules and gives clients the freedom to render the pages according to their preferences, as opposed to the modern web where the layout and style of the page is dictated through stylesheets provided by the server.

Light-Weight and Fast Loading

Gemini’s focus on simplicity translates into extremely light-weight pages that load swiftly even on slow internet connections. With no heavy media files or complex JavaScript to process, the protocol enables a more efficient data transfer, making it suitable for users with limited bandwidth.

Ease of implementation

One of the key strengths of Gemini is its accessibility to hobbyist programmers and small-scale implementations. The protocol’s simplicity and minimalist design make it relatively easy for individuals to program their own tools, servers and clients. This open nature encourages experimentation and fosters a diverse ecosystem of user-created applications and interfaces.

How to Browse Gemini

Just like you use Safari or Firefox to browse the regular web, you need a Gemini client to access content on the Gemini protocol. Gemini clients come in various forms, catering to different user preferences and platforms. Some clients are terminal-based, offering a text-based interface that can be used within command-line environments. Examples of terminal-based clients include “Amfora,” which is well-regarded for its simplicity and efficiency. On the other hand, there are graphical user interface (GUI) clients that provide a more familiar browsing experience, allowing you to navigate Gemini with your mouse. “Geminaut” is a popular GUI client that is user-friendly and suitable for newcomers.

I would recommend amfora as a good starting point for a terminal-based client. Alternatively, lagrange is a well known GUI client available for all major operating systems.

Additionally, Gemini clients are available for mobile devices, enabling you to browse Gemini content on your smartphone or tablet.

There is also a large list of all known Gemini software on the offical Gemini project page. Note that link requires a gemini client.

Finding Content on Gemini

Navigating Gemini can be a unique experience, reminiscent of browsing the early web. Gemini has fewer of the large central aggregators or search engines. As a result, discovering where to start can be challenging initially.

To facilitate content discovery, there are aggregators and indices that collect and present links to various capsules. These aggregators act as starting points, helping users find interesting content. Some aggregators categorize capsules by topics or genres, while others curate content based on user recommendations. These aggregators play a vital role in helping users explore the vast landscape of Gemini.

There is a list of good aggregators and search engines on the offical Gemini page as well! This list is on Gemini as well, and requires a gemini client to browse.

Closing thoughts

Overall, the Gemini protocol provides a refreshing alternative to the complexities and information overload often associated with the modern web. Its focus on simplicity, privacy, and distraction-free browsing fosters a user experience centered around reading and accessing written content efficiently. While it may not replace the existing web technologies, Gemini serves as an additional protocol that brings value to users who appreciate a more straightforward and streamlined approach to online content consumption.

Have fun exploring!

--

--