I really enjoyed messing around with Gemini a while ago! But after the "messing around" stage with the protocol itself, the restrictions inherent to gemtext sapped my excitement around it.
It's a mark up language squarely focused on those that write text, but arduous to use if you want to share things you've illustrated, which is most of what I share online that isn't tech related. There's of course the argument that inline images/a spec'd way to expose an image directory listing with thumbnails/etc would only serve to distract or exploit you... but that also ignores the fact that people make art for your eyeballs too. Text is certainly the first class citizen, where images/music/video are all tied for second class, accessible only by downloading them 1 by 1.
That does mean it's perfectly fit for purpose! I wouldn't say it's bad just because I don't get my specific needs met. Someone who's needs are met by Gemini will love it.
I built and run a search engine and a "Wayback Machine" for Gemini:
gemini://kennedy.gemi.dev
There are ~4K hosts and ~1M documents/images/files which make for nice playground with experimenting with crawlers, indexers, and more. Its a nice hobby. Lots of primarily static sites, and CGI is used to add some interactivity:
My main blog is now an "anonymous" gemlog. I use the kineto http proxy to provide a website version as well. I wrote a little deploy script that scrapes my posts and creates an atom XML feed (static doc) that kineto serves for those few people who want to stay up-to-date.
Once a quarter, I batch up the recent posts and bcc a bunch of folks I like to keep in touch with. Some of them respond. This is what I do in place of social media now; outside of email, Discord and WhatsApp are all I use to keep in touch with folks.
I also like to poke around different gemlogs with Lagrange, which is a nice desktop-oriented Gemini client. It's good fun.
Yeah they missed an opportunity to more fully support something more like markdown that offered in-line links and basic text formatting. Missing tables is also quite the deal breaker for a bunch of things.
But yeah it seems like these lack of features is a willful and highly-opinionated approach to what the author of the protocol wants to take a stance on (their excuse is ease of implementation for clients, but I think it is a more of a deliberate choice). That's fine. It's their protocol and they can do what they want with it, but I think they missed an opportunity for it to take off.
Various people since have suggested we just settle on HTML 4 (with no scripting) and we'd be way better off and I agree.
I've had a Gemini Capsule (what Gemini calls a 'website/blog' since about 2021. It gets very little traffic, but it's fun to have. Browsing the smallweb is nice in the evenings when I want a high signal-to-noise ratio of interesting content.
Honest question, how do you discover interesting content over this protocol?
Is there people building the equivalent to web directories and web rings? Or search engines? What are the cultural expectations on navigating other people's published resources?
If this is being developed, it should have a more modern description. Comparing it to Gopher is fine as a historical point, but comparing it to http/html is more useful today. I read the faq for geeks and didn't learn much:
> 1.1.1 The dense, jargony answer for geeks in a hurry
> Gemini is an application-level client-server internet protocol for the distribution of arbitrary files, with some special consideration for serving a lightweight hypertext format which facilitates linking between hosted files. Both the protocol and the format are deliberately limited in capabilities and scope, and the protocol is technically conservative, being built on mature, standardised, familiar, "off-the-shelf" technologies like URIs, MIME media types and TLS. Simplicity and finite scope are very intentional design decisions motivated by placing a high priority on user autonomy, user privacy, ease of implementation in diverse computing environments, and defensive non-extensibility. In short, it is something like a radically stripped down web stack. See section 4 of this FAQ document for questions relating to the design of Gemini.
Annoyed that for a system about plain text links, there's no link to "section 4".
The transport sounds like http without saying so. It doesn't go into why it doesn't use http. I'd probably be fine with HTTP and Markdown + image/video links. Maybe the Gemini document capabilities/scope is better but they're not described.
Edit: they are in "4.1.2"[0] Be warned, there's still a lot of beating-around-the-bush.
> 4.1.2 I'm familiar with HTTP and HTML. How is Gemini different?
A Gemini client is an application like a web browser, but simpler. It sends a one-line plain text request to a Gemini server over a TLS socket. The server sends back a document with a MIME type, or an error message, and closes the connection. The client renders the response for the user. That's basically it. It's similar to Gopher or to HTTP/0.9. A common document type returned is Gemtext, which is a text format like a simplified Markdown that can be parsed on a line-by-line basis.
Given the amount of servers and clients people have written for it[0] I'd say there are definitely people out there who understand how it works. What don't you get exactly?
Google renamed Bard to Gemini last year. Side note: Google's "Gemini" product name is way overloaded. They have like 6 different things that you can buy/use that are named that.
Gemini's native protocol isn't HTTP, they invented their own. I don't really see what this does you couldn't do with simple HTML pages (or Gopher 35 years ago).
Even simple HTML pages may require Javascript and want to run code on your computer or phone. You need knowledge of the document, knowledge of its author, or constant keepup and awareness of browser settings (e.g. did some update re-enable Javascript) to mitigate this.
A .gmi is 100% certain not to need any extra code capable of potential unwanted external communications, not now and not in the future.
Also .gmi is extremely simple and can be rendered very simply (and thus more securely) because it can be processed nearly statelessly line by line, without need of a rendering tree or document model.
... which looks even more stupid when you can force quite a number of browsers to get you something through gopher if you just pretend it's http on port 70. of course you have to self interpret the result, but gophermaps are quite readable. :)
Related:
Six Years of Gemini - https://news.ycombinator.com/item?id=44578143 - July 2025 (166 comments)
(There are others but a little hard to sift apart from you-know-what)
I really enjoyed messing around with Gemini a while ago! But after the "messing around" stage with the protocol itself, the restrictions inherent to gemtext sapped my excitement around it.
It's a mark up language squarely focused on those that write text, but arduous to use if you want to share things you've illustrated, which is most of what I share online that isn't tech related. There's of course the argument that inline images/a spec'd way to expose an image directory listing with thumbnails/etc would only serve to distract or exploit you... but that also ignores the fact that people make art for your eyeballs too. Text is certainly the first class citizen, where images/music/video are all tied for second class, accessible only by downloading them 1 by 1.
That does mean it's perfectly fit for purpose! I wouldn't say it's bad just because I don't get my specific needs met. Someone who's needs are met by Gemini will love it.
I built and run a search engine and a "Wayback Machine" for Gemini:
gemini://kennedy.gemi.dev
There are ~4K hosts and ~1M documents/images/files which make for nice playground with experimenting with crawlers, indexers, and more. Its a nice hobby. Lots of primarily static sites, and CGI is used to add some interactivity:
gemini://gemi.dev/cgi-bin/moon.py
From what I remember about the name, it's derived from NASA space programs. Where Gopher is Mercury, Web is Apollo and Gemini is in between.
Gemini is a new internet protocol which:
- Is heavier than gopher
- Is lighter than the web
- Will not replace either
- Strives for maximum power to weight ratio
- Takes user privacy very seriously
I wonder how discovery and search work if it’s just a bunch of linked documents? Do search engines exist outside of Gemini and link into it?
There are several search engines of Geminispace, running as Gemini servers. There are also a number of feed aggregators that are widely used.
Also, part of the idea is discovery through linked high-quality sites. Like the webrings of the 1990s.
You find a capsule you like and discover others through that person's links.
Gemini was so much fun during lockdown - I loved the distraction of a new simple protocol, and the challenge of writing a gui client for it.
Can't say I'm surprised that it hasn't taken the world by storm, but it's still a cozy part of the Internet.
I completely missed out on this :'(
My main blog is now an "anonymous" gemlog. I use the kineto http proxy to provide a website version as well. I wrote a little deploy script that scrapes my posts and creates an atom XML feed (static doc) that kineto serves for those few people who want to stay up-to-date.
Once a quarter, I batch up the recent posts and bcc a bunch of folks I like to keep in touch with. Some of them respond. This is what I do in place of social media now; outside of email, Discord and WhatsApp are all I use to keep in touch with folks.
I also like to poke around different gemlogs with Lagrange, which is a nice desktop-oriented Gemini client. It's good fun.
I have got only two annoyance on Gemini, lack of inline links and _font styling_, and they are by design (https://geminiprotocol.net/docs/faq.gmi#44-questions-about-t...)
It's fine for something like HN, but I heavily rely on named links and emphasis on all my blogs and is a dealbreaker.
Yeah they missed an opportunity to more fully support something more like markdown that offered in-line links and basic text formatting. Missing tables is also quite the deal breaker for a bunch of things.
But yeah it seems like these lack of features is a willful and highly-opinionated approach to what the author of the protocol wants to take a stance on (their excuse is ease of implementation for clients, but I think it is a more of a deliberate choice). That's fine. It's their protocol and they can do what they want with it, but I think they missed an opportunity for it to take off.
Various people since have suggested we just settle on HTML 4 (with no scripting) and we'd be way better off and I agree.
And CSS from the client only!
Same here. Those are my gripes exactly.
I've had a Gemini Capsule (what Gemini calls a 'website/blog' since about 2021. It gets very little traffic, but it's fun to have. Browsing the smallweb is nice in the evenings when I want a high signal-to-noise ratio of interesting content.
Honest question, how do you discover interesting content over this protocol?
Is there people building the equivalent to web directories and web rings? Or search engines? What are the cultural expectations on navigating other people's published resources?
There are search engines, directories and feed aggregators [1].
Best means of discovery is like the original web, you surf it, bouncing from capsule to capsule finding what you like.
1. https://github.com/kr1sp1n/awesome-gemini?tab=readme-ov-file...
If we maintain this trajectory Gemini is going to have as many dual meanings in the software world as Map.
Too many things are named Gemini
I'd love a minimal protocol like this that was also somehow scraping resistant.
I looked at this a few years ago and it seemed to be a graveyard of toy implementations and personal blogs.
Isn't that what it's meant to be?
If this is being developed, it should have a more modern description. Comparing it to Gopher is fine as a historical point, but comparing it to http/html is more useful today. I read the faq for geeks and didn't learn much:
> 1.1.1 The dense, jargony answer for geeks in a hurry
> Gemini is an application-level client-server internet protocol for the distribution of arbitrary files, with some special consideration for serving a lightweight hypertext format which facilitates linking between hosted files. Both the protocol and the format are deliberately limited in capabilities and scope, and the protocol is technically conservative, being built on mature, standardised, familiar, "off-the-shelf" technologies like URIs, MIME media types and TLS. Simplicity and finite scope are very intentional design decisions motivated by placing a high priority on user autonomy, user privacy, ease of implementation in diverse computing environments, and defensive non-extensibility. In short, it is something like a radically stripped down web stack. See section 4 of this FAQ document for questions relating to the design of Gemini.
Annoyed that for a system about plain text links, there's no link to "section 4".
The transport sounds like http without saying so. It doesn't go into why it doesn't use http. I'd probably be fine with HTTP and Markdown + image/video links. Maybe the Gemini document capabilities/scope is better but they're not described.
Edit: they are in "4.1.2"[0] Be warned, there's still a lot of beating-around-the-bush.
> 4.1.2 I'm familiar with HTTP and HTML. How is Gemini different?
[0] https://geminiprotocol.net/docs/faq.gmi#412-im-familiar-with...
Edit 2: Seems opinionated in many stupid-by-todays-needs ways. It feels like text-web made by some group of deniers.
Ya, I still don't understand how this works at a high level. Does anyone actually understand how it works?
A Gemini client is an application like a web browser, but simpler. It sends a one-line plain text request to a Gemini server over a TLS socket. The server sends back a document with a MIME type, or an error message, and closes the connection. The client renders the response for the user. That's basically it. It's similar to Gopher or to HTTP/0.9. A common document type returned is Gemtext, which is a text format like a simplified Markdown that can be parsed on a line-by-line basis.
Given the amount of servers and clients people have written for it[0] I'd say there are definitely people out there who understand how it works. What don't you get exactly?
0: https://github.com/kr1sp1n/awesome-gemini
Recently:
Six Years of Gemini
https://news.ycombinator.com/item?id=44578143
Why is everything named Gemini these days?
The Gemini protocol started in 2019, before Google's Gemini in 2023.
It's proably a popular word for tech workers fans of the american space race.
Or for people who want to evoke notions of duality/parallels/twinship.
Google renamed Bard to Gemini last year. Side note: Google's "Gemini" product name is way overloaded. They have like 6 different things that you can buy/use that are named that.
Because Copilot was already taken
Yeah it seems like everybody and their brother is naming things Gemini, is there a dual meaning I’m not aware of?
Nice pair of Gemini puns
yeah seems like an odd choice for a new project.
The project is six years old
I stand corrected.
This long predates Google LLMs
So Gopher?
gopher over http: Seems like firefox et al removed support for it years ago.
Gemini's native protocol isn't HTTP, they invented their own. I don't really see what this does you couldn't do with simple HTML pages (or Gopher 35 years ago).
Even simple HTML pages may require Javascript and want to run code on your computer or phone. You need knowledge of the document, knowledge of its author, or constant keepup and awareness of browser settings (e.g. did some update re-enable Javascript) to mitigate this.
A .gmi is 100% certain not to need any extra code capable of potential unwanted external communications, not now and not in the future.
Also .gmi is extremely simple and can be rendered very simply (and thus more securely) because it can be processed nearly statelessly line by line, without need of a rendering tree or document model.
I think some of the point is what you can’t do with it rather than what you can. It’s an intentionally very restrictive protocol.
Nothing.
But that's not the point.
... which looks even more stupid when you can force quite a number of browsers to get you something through gopher if you just pretend it's http on port 70. of course you have to self interpret the result, but gophermaps are quite readable. :)
Not the Gemini I was hoping to see in the front page today :D