Gemini Application Developer Guide v1.0

📅 2024-09-08

🏷 Gemini

Last summer, at Solderpunk's request, I started drafting a guide for developing Gemini applications, i.e., programs that run on a Gemini server and provide their user interface via a Gemini client. In other words, the Gemini equivalent of web apps.

I figured it would take me a couple of months to distill the knowledge I had gathered while developing Lagrange, GmCapsule, Cosmos, and Bubble. But of course, life got in the way and it took more than a year to get to version 1.0. But here it is, on geminiprotocol.net:

Gemini apps and web apps have a lot in common but there are many important differences as well. The idea of this guide is to focus on the aspects that make Gemini unique: the restrictions of Gemtext as the user interface, methods of receiving input from the user, all the intricacies of client certificates, and security and privacy considerations. It is not intended to be a detailed step-by-step guide, but more of an overview to get your head in the right place.

Some topics that would be good to cover are likely still missing. Let me know if you can think of some! There are several Geminauts out there who have experience creating interactive Gemini apps, and I look forward to hearing from you so we can keep improving this guide further.

CC-BY-SA 4.0

The original Gemtext version of this page can be accessed with a Gemini client: gemini://skyjake.fi/gemlog/2024-09_app-guide-published.gmi