#Smallweb
My opportunity to reference kagi.com for ad-free search!

They also have smallweb (kagi.com/smallweb/) which is a nice way to experience an internet similar to that of the old.
Kagi - Reclaim the Web & Restore Your Privacy
Reclaim the web from clutter. Get ad-free search, private browsing, and powerful tools that respect your data.
kagi.com
September 30, 2026 at 12:05 AM
i missed the old internet, so i built a 1996 chat room.
not servers. not channels. a room. you walk in, strangers are mid-conversation about a tape deck, somebody says "a/s/l" unironically.

lolchat.rip

#SmallWeb #RetroComputing #90sNostalgia #IndieWeb
September 29, 2026 at 12:37 AM
Kagi Small Web

An initiative by the alternative search engine Kagi, launched in September 2023. It surfaces recent posts from personal, non-commercial websites that the big search rankings tend to bury: https://kagi.com/smallweb/

Also added to the Small Web […]

[Original post on mastodon.social]
September 28, 2026 at 10:13 AM
Kagi Small Web

An initiative by the alternative search engine Kagi, launched in September 2023. It surfaces recent posts from personal, non-commercial websites that the big search rankings tend to bury: https://kagi.com/smallweb/

Also added to the…

https://knot.tilman.me/post/kagi-small-web/
September 28, 2026 at 10:13 AM
Decided to try out a new font stack on the website, just to see how the pants fit. As much as I love JetBrains Mono as a general preference (if client has it installed, of course), it can feel a bit... too clean.

#webdev #fonts #css #indieweb #SmallWeb
September 28, 2026 at 1:53 AM
#Development #Resources
32-Bit Cafe · A community cultivating a flourishing personal web ilo.im/16g1ef by 32-Bit Cafe

_____
#Community #Blogs #Websites #Projects #IndieWeb #SmallWeb #WebDev #Frontend #Backend
32-Bit Cafe
A web space community that focuses on building websites for self-expression and creativity, made up of professionals, hobbyists, and enthusiasts of the personal web.
ilo.im
September 27, 2026 at 10:06 AM
#Business #Collections
Pixel Area · Every pixel is a person’s place on the web ilo.im/16gamf by Oleh Providnyk

_____
#Directories #Projects #Websites #Blogs #IndieWeb #SmallWeb #Design #WebDesign #Development #WebDev
Pixel Area – a map of the independent web
One pixel – one personal blog. Explore the field with your lantern: no metrics, no algorithms, everyone equal.
ilo.im
September 27, 2026 at 5:02 AM
#Design #Mindsets
Robots have no voice · “That’s why you find it annoying.” ilo.im/16g6p6 by Michael Lopp

_____
#Writing #Caring #Authenticity #Humans #AI #Content #Blogs #Websites #Business #SmallWeb #IndieWeb
Robots Have No Voice
Robot writing has no voice. That's why you find it annoying. Like it or not, your brain is currently one of the best organic pattern matchers in the known solar
ilo.im
September 26, 2026 at 9:10 AM
A Love Letter to the Super Dimension Fortress
The more I learn about the web, the more appreciative I become of what came before. We truly are standing on the shoulders of giants. In the past week, I've had the pleasure of (finally) becoming an ARPA member on SDF, a non-profit public-access UNIX system and online community that has been in continuous operation since 1987. But what is SDF? Well, to answer that, we need to go back four decades and talk about the BBS era. ## Bulletin Board Systems It's June 16, 1987. Ted Uhlemann ("iczer") plugs an Apple IIe's 300-baud[1] modem into a phone line his mother had just given him for his birthday, running _Magic City Micro-BBS_ (written in Applesoft BASIC). He names it SDF-1 after his favorite anime, hoping to attract fans of "anime, industrial music and the Church of the SubGenius," per a 30th-anniversary retrospective by Stephen Jones. The original hardware is one 1200bps modem and two floppy drives holding 280 kilobytes each. This was the very beginning of SDF. SDF is self-described as "a community platform for inspiring, facilitating and implementing new ideas". It's a multi-user NetBSD machine, funded solely by its members as a 501(c)(7) nonprofit, where tens of thousands of people hold accounts. The name comes from the anime _Super Dimension Fortress Macross_ (known in the West as part of _Robotech_), and the system began as a BBS for Japanese anime fans. The BBS-era of SDF was can be witnessed in the eight-part 2004 documentary on YouTube titled _BBS: The Documentary_ , which includes a recorded interview with Stephen Jones, SDF's longtime sysadmin. Bulletin board systems predate the modern Internet, and arguably turned personal computers from expensive novelty kits into far more popular machines. BBSes were what changed PCs into essential gateways for global and local communication during the 1980s and early 1990s. They were proof the computer was for connecting with other people. There were no search engines at the time, so you had to look through computer magazines or text files from other boards to find a BBS. A "website address" was a local 7-digit phone number. You opened a terminal program on your computer and typed a command to make your modem dial the BBS phone number. Because it used your home phone line, nobody in your house could use the phone while you were online. You would listen to the computer physically dial the number, followed by the iconic, harsh screeching and static hiss of two modems talking to each other. At its peak of popularity, there were over 150,000 BBSes operating in North America. By 2005, there were only a few hundred. In a 2006 bsdtalk interview, one longtime member summed up what makes the place stick around: > "SDF is more than a shell account, it's a community of people who communicate with one another via the various methods that SDF provides... What makes SDF special is that it is run like a computing environment in the early days of the Internet. It's not corporate at all." A university researcher's 2019 survey of public-access UNIX systems, _History, Evolution and Future of Public Access UNIX_, hosted on SDF itself, describes the modern system as "a fully articulated social community," and adds that SDF supports special interest groups for ham radio (SDFARC), Python, Gopher enthusiasts, and Minecraft players alongside "digital artists, computer historians, web developers, gamers, and of course many, many programmers." SDF's own pictorial tour documents the hardware year by year back to 1985, including a stint at a telephone museum and the machines running today. Today the network includes NetBSD servers on DEC Alpha and AMD Opteron hardware, plus live retrocomputing environments: a TOPS-20 system (twenex.org, running Panda Distribution TOPS-20 on two XKL TOAD-2s), a Symbolics Genera machine, and an ITS system. Free accounts are available on all of them. In the past four decades, SDF has survived hardware failures, countless DDoSes, a termination by its own ISP, and multiple relocations across the United States. It has never gone commerical, nor lost its userbase in that time. Jones, still running SDF decades in, wrote in his 30th-anniversary letter: > "Some people today may come here and see us as outdated and 'retro.' But if you get involved, you'll see it is quite alive with new ideas." ## Services Offered by SDF SDF has come a long way since its BBS days, though it's still one of the last places offering free dial-up access. When you become a member on SDF, you get a lot of services—rather similar to getting a Tildeverse or omg.lol account, and predating both. You begin in the shell. Running the command `ssh you@tty.sdf.org` puts you in NetBSD with typical stuff like `bash`, `ksh`, `tcsh`, `rc`, and `zsh`; editors from `ed` to `emacs`. And `ping`, `traceroute`, `dig`, `whois`, and `finger`, etc. You get your own web page, running `mkhomepg` on the shell will create a `~/html` folder, and asks which URL you want. You add your files in `~/html` and the site is live immediately at `you.sdf.org`. ARPA members can pick a vanity domain from ~60 choices (`pdp10.org`, `twenex.org`, `chaosnet.org`, `freak.net`, `multics.org`...). See wiki.sdf.org for the list. CGI works out of the box. Shell/awk/sed for everyone, and full `php`/`perl`/`python`/`ruby` for ARPA members. The Gopher and Gemini protocols are typically more used by SDF users. Run `mkgopher` in the shell and choose setup. It'll create `~/gopher` (a symlink into `/ftp/pub/users/you`) served as both `gopher://sdf.org/1/users/you` and `gemini://sdf.org/users/you`. One directory, two protocols! Write a `gophermap` or add `.gmi` files. See gopher setup and gemini setup. And that's just the tip of the iceberg: Service | Where ---|--- IRC | `irc.sdf.org`:6667 Jabber/XMPP | `jabber.sdf.org` Matrix | `matrix.sdf.org` Gitea | git.sdf.org Mastodon | mastodon.sdf.org PixelFed | pixelfed.sdf.org PeerTube | toobnix.org TT-RSS | ttrss.sdf.org Lemmy | lemmy.sdf.org Gallery | sdf.org/g Deskshots | deskshots.org Jitsi | jitsi.sdf.org aNONradio | anonradio.net Minecraft | `mc.sdf.org` BZFlag | `sdf.org:5154` SDFMud | sdf.org/mud TOPS-20 | twenex.org ## How to Join Originally, the only way to join SDF and get verified was to physically mail one dollar to their PO box in Seattle with your username. This was a clever way of preventing spam and abuse. Nowadays, thankfully, you can just donate via Paypal, making the entire process a lot easier. I think one of the coolest things about SDF is the lifetime _ARPA membership_. For a one-time fee of $36USD, you get: * Outbound tools: `telnet`, `ssh`, `sftp`, `ftp`, `snarf`, `wget`, `ytalk`, external IRC. Free accounts are inbound-only; ARPA opens the network both ways * File transfer: `scp`/`sftp` and non-interactive SSH: `ssh-copy-id` is enabled * Development: `gcc`, `perl`, `php`, `python`, `ruby`, `elisp` on the box * Full CGI: `php`/`perl`/`python`/`ruby` on your site * VoIP: internet calling, voicemail, conferencing (PSTN calling is a $15/quarter add-on with a real DID option) * UUCP + ClariNET: mail and newsfeeds via TCP or dialup * Voting rights: on system features and policy * Quotas: ~150 MB / 5000 files each for home, mail, webspace, gopherspace Not only do you get all of the above for life, but you're supporting a networked community that's been around longer than I've been alive! ## Bonus: Making a Perl CGI Guestbook on SDF Back in the day, to add functionality to your website, you wrote scripts that interacted with a web server via the Common Gateway Interface (CGI) protocol. In the late 1990s and early 2000s, it was the primary technology used to transition the World Wide Web from static HTML pages to dynamic, interactive websites. Sadly, they're not used much in modern-day web development, and are considered obsolete and discouraged. You see, traditional CGI spawns a brand new operating system process for every single visitor click. So on busy websites, they consumed massive amounts of server memory, and slowed performance down to a crawl. But when you're making a little personal website, things like "scaling" and "efficient resource usage" can be thrown out the window! Who cares? Since I have access to Perl CGI as an ARPA member, I decided to make a simple guestbook on my little SDF webpage. Here's how I put it together. ### 1. Understanding SDF directories In SDF, the root of your webpage is the `~/html` directory, but that isn't your home directory. Rather, its a symlink into `/www/<a>/<b>/<username>` (the parent directories come from your username, so mine is `/www/af/b/bren`). Your real home directory is somewhere like `/sdf/arpa/af/b/bren`. Now, you don't want your data file living inside the publicly-served `~/html` folder, where a visitor could request it directly. Instead, keep it one level up, outside the web root: /sdf/arpa/af/b/bren/guestbook.dat <- data file, NOT web-accessible /www/af/b/bren/guestbook.cgi <- the script itself, lives in ~/html Also, `$ENV{HOME}` isn't set when your CGI script runs under `suexec`, so you can't rely on relative paths like `~` inside the script. I just hardcoded the absolute path to the data file. ### 2. Writing the script For this, I use core Perl and `Fcntl` for file locking (if two visitors ever signed at the same time), but that's pretty much it. The script reads `$ENV{REQUEST_METHOD}`, parses the POSTed form body by hand (no `CGI.pm`, it's deprecated), validates the name/message length, and appends a line to the file: #!/usr/pkg/bin/perl use strict; use warnings; use Fcntl qw(:flock); my $DATA_FILE = "/sdf/arpa/af/b/bren/guestbook.dat"; sub add_entry { my ($name, $message, $url) = @_; my $ts = scalar localtime; my $enc_message = $message; $enc_message =~ s/\\/\\\\/g; $enc_message =~ s/\n/\\n/g; open(my $fh, '>>', $DATA_FILE) or return; flock($fh, LOCK_EX); print $fh join("\x01", $ts, $name, $enc_message, $url) . "\n"; flock($fh, LOCK_UN); close($fh); } Every entry is a single line, `timestamp \x01 name \x01 message \x01 url`, using the otherwise-unused `\x01` control character as a field separator, as this ensures names or messages containing regular punctuation don't break parsing. Newlines inside a message escape with a literal `\n` on write and unescaped again on read, turning multi-line messages into single lines as well. There's also a honeypot field, `website`, that's hidden from visitors with CSS. If it's filled in, the submission is ignored, but the robot will still see a "Thanks for signing!" ### 3. Locking down the data file Since the data file has to live somewhere Apache can access (in my case, I didn't want to think too hard about symlinks), add a `.htaccess` in `~/html`: <Files "guestbook.dat"> Order allow,deny Deny from all </Files> ### 4. Uploading and make it executable SDF requires CGI scripts to (1) end in `.cgi` and (2) be executable. There's no `cgi-bin` directory requirement, so it can be put anywhere in `~/html`: scp guestbook.cgi bren.sdf.org:html/ ssh bren.sdf.org chmod 755 html/guestbook.cgi mkhomepg -p `mkhomepg -p` will correctly reset your homepage permissions to SDF's expected secure defaults. ### 5. Visit it That's it! `guestbook.cgi` renders the same page for both `GET` (showing the form and the last 50 entries) and `POST` (validating and saving a new one). There's no database, framework, or build. It's a little janky by 2026 standards, and I love it. Sign it if you want: bren.sdf.org/guestbook.cgi (note the http, not https). ## Bonus: Making a Dillo-compatible Website Finally, I was rather inspired by Sunny's blog post _on positive, human-made software_ , which listed the Internet browser Dillo. Way back in the day, when my only computer was a painfully slow Intel Core 2 Duo, I remember trying to find lightweight browsers that would make websurfing a less painful experience. Dillo is certainly one of them! The "code base is currently 0.2% the size of Chromium's" and has ridiculously low memory usage. Unsurprisingly, that comes with a price. There's a lot of the web that doesn't render or function properly with Dillo because of its limitations. But to me, that's a feature. One of the best ways we can ensure our web pages honour smol web principles while also having source code that's easy for beginners to read is by making our sites Dillo-compatible. What does this actually mean, though? Well, Dillo supports a subset of HTML 4.01 with some HTML5 elements layered in, and a subset of CSS 2.1 with some CSS3 layered in. No JavaScript, at all. `<script>` and all inline event handlers (`onclick`, etc.) are discarded. `frameset`/`frame`/`iframe` have no rendering support. No `<canvas>` or `video`, `audio`, `source`, `embed`, `object` playback support, either. Regarding CSS and styles, there's no support for CSS variables (`var()`). There's also no `flexbox` and no CSS `grid`. Grid rules are just ignored. You'll have to do your layouts with (_gulp_) `table` and `float`, instead. There's also no custom webfonts with `@font-face`, as fonts resolve to the five CSS generic families: `serif`, `sans-serif`, `monospace`, `cursive`, and `fantasy`, all of which are set in the user's `dillorc` config (`font_serif`, `font_sans`, etc.). Dillo doesn't have the ability to load specific webfont files. Take this with a grain of salt, as I couldn't actually find a canonical compatibility table. The Dillo devs communicate through the manual, changelog, and bug tracker. ## Conclusion It's funny, the more I learn about web development, the more simple and back-in-time I go. I think this makes sense—good code is unbloated code. The closer you can get to no interface, the better the interface. It's a wonderfully paradoxical aspect of programming and working with computers. These are always going to be machines with finite limits—no different than us—and we need to not only be mindful of that, but lean into it. * * * 1. Terminal baud rate is the speed at which a hardware terminal or serial console communicates, measured in the number of signal changes (symbols) transmitted per second. At 300 baud, a terminal displays 30 characters per second. This is roughly the speed of a fast typist. Instead of text appearing instantly, you can physically watch the letters appear on the screen one by one, line by line. ↩︎
brennan.day
September 24, 2026 at 3:14 PM
https://elvery.net seems to have been added to Kagi's small web index (https://kagi.com/smallweb/). 😳
September 22, 2026 at 7:31 AM
GopherMap v1.1.0, in which I add a couple of types I'd missed out: blog.davep.org/2026/09/22/g...

#SmallWeb #smolweb #gopher #Python
GopherMap v1.1.0
I've just made a small update to GopherMap. While doing some work on Rogallo I noticed that, somehow, I wasn't showing a type "badge" for PNG files (p). I spent a moment or two trying to figure out wh...
blog.davep.org
September 22, 2026 at 7:25 AM
My obsession with webmentions is deepening. Someone replied to my post simply by posting on their own blog with a link back to my post. Just like that. Please do me a favour and take 30 mins to add web mention support to your website 😁! #SmallWeb
September 22, 2026 at 6:58 AM
📝 The Best Dumb Phone Is Already Strapped to Your Wrist

The cellular Apple Watch gives you everything a phone is for and none of what makes it toxic.

#indieweb #POSSE #smallweb

→ read the full entry
September 21, 2026 at 12:00 PM
I think it's important at this point for everyone interested in the #smolweb / #SmallWeb / etc. to categorically and explicitly commit to ensuring that every protocol it incorporates be simple enough that any dedicated computer practitioner can implement it themselves on their hardware of choice […]
Original post on kolektiva.social
kolektiva.social
September 20, 2026 at 7:45 PM
this is your reminder to add your site to the cowshed @ cowsites.net/cowshed. this means that other folks on cowsites can view your site from the main hub, and we also do a little daily rotation on your logged in homepage. how cute <3 #cowsites #oldweb #smallweb #y2k
The Cowshed
See what other users are up to!
cowsites.net
September 20, 2026 at 5:49 PM
Driftya is a #place to share #experiences, express yourself, and connect with others.
🎬 Memory Trail: Remember what you've watched, read, and played.
📝 Notes: Share your thoughts.
💬 Between Us: Connect with people.
driftya.com 

#SmallWeb #SocialMedia
A shared note
Write a short note. A stranger receives it. The note keeps moving.
driftya.com
September 20, 2026 at 2:21 PM
Giving @kagihq a try for a while as my main search engine. So far, so good. Love the smallweb site. Reminds me of StumbleUpon from back in the day, but for SmallWeb sites and blogs.

kagi.com/smallweb
September 20, 2026 at 4:01 AM
“A collection of personal websites and an RSS reader can produce a surprisingly good Internet. It will probably be a smaller one. That’s fine.” — Nick

_____
#Business #Internet #Web #Websites #Blogs #RSS #NewsReader #IndieWeb #SmallWeb #Quotes
September 19, 2026 at 10:18 PM
Kagi small web is one of my favorite things. https://kagi.com/smallweb
September 19, 2026 at 4:49 PM
📝 Meditation, the Limb I Kept Skipping: Building a Method for Stillness

For years I treated meditation as the part of the practice you get to eventually. Here is why I finally built it a real curriculum, on a platform I own — and who it is for.

#indieweb #POSSE #smallweb

→ read the full entry
September 19, 2026 at 12:00 PM
Creating a Blog in Gemini://
Welcome to my third post on Gemini and the alternative Internets and smallnets! This is going to be my most helpful and detailed article on the topic yet—and it's something I'm excited to get into. If you'd like a history and explanation of what Gemini is, read my first post, "Gemini, Gophers, and Fingers. Oh My! Alternative Internets Beyond HTTPS". My second article, "Oldnets and Altnets: A Guide to Building a Low-Spec Daily Internet Out of Gemini, Gopher, and Terminal Tools" was aimed more at resources that would allow people to use older hardware to connect to the Internet in general. This, however, is going to be only about Gemini (and a little of Gopher and Spartan, too). Because I realized that I only really explored the surface-level of what this protocol has to offer. While there are interesting things to read (which I'll be linking to), this guide is aimed more at creation, socialization, and interactivity that's possible on Gemini. But if you want a tl;dr, Gemini is a modern, incredibly simple Internet protocol alternative to https://, and requires a different Internet browser to use it. It was built in 2019 by a pseudonymous developer who goes by Solderpunk, and instead of HTML, every page is written in Gemtext, which is a stripped-down format with only headings, links, and lists. Every connection runs over TLS on port 1965, and it's one request, one response, then the connection closes. ## Blogging on Gemini: Why? First, I want to answer why someone would want to blog on Gemini compared to the widely-used, popular clearnet (which is `https://`). To start, you may have read headlines about how AI swarms could take over the Internet soon, which sounds rather terrifying. While I think the wording is alarmist, I think we can all agree that there has been an annoying increase of generative AI and agents on the Internet lately. With Gemini, you avoid all of that. There's no real viable revenue (and it's also obscure in general) meaning there's just humans in that part of cyberspace. Next, you don't need to worry about the technical complexity of JavaScript or CSS. Hell, you don't even need to worry about HTML. All your content will be in the Gemtext format, which can be understood as being an even simpler version of Markdown. (I also created an easy-to-use converter as well.) This means that you don't have to spend time and effort worrying about design or troubleshooting anything. This means you have a space where you're compelled to focus on the craft of writing, and to be more mindful of blogging. There's nothing else to distract you. Of course, for some people that's the _fun_ of creating things on the web. But if you want to have your work online before learning all of that, Gemini is a great place to start. As I've said before, being a webweaver means you wear a lot of different hats, and it can be overwhelming to try to learn how to be a better writer, web developer, and UX designer all at the same time, and starting with Gemini helps in that sense. You can always convert your files into Markdown and create a webpage proper with them at a later point in time. Now, there's nothing you can't do on the clearnet that you can do in Gemini, but I like to make the comparison of the popular, small eink reader Xteink which is designed to go on the back of your phone. Can you easily read the same content on your bigger phone screen? Yes, but the eink reader is limited by design. It's a different, and arguably better experience. Or maybe you want more privacy while still being public. Your audience in the Geminispace is much smaller, and it's also much more intentional because of that. Finally, as I've mentioned in my previous posts, Gemini is far less resource-intensive compared to the regular Internet. You can use Gemini entirely from a terminal-based browser, meaning that any hardware you have that can't handle the modern web still has a way to get online again. ## Blogging Platforms for Gemini There are a wonderfully surprising amount of places you can join and get started with your own Gemini capsule. If you want a blog that's both on the clearnet and Gemini (and Gopher), then I recommend SmolPub, which has a very simple interface and only costs $5 for a lifetime of the service. The Tildeverse is another great way to get started (and has so many other features!), though that does require getting a little familiar with the terminal and `ssh`. Servers like Tilde.pink are Gemini-only and will give you a capsule automatically, whereas Tilde.town will require you to use a command to set up a capsule, like `town request-gemini`. Similarly, SDF/Freeshell.org will give you a Gopher site. There are Gemini-specific platforms too, such as flounder.online and the Midnight Pub, though these require manual approval to get into. Gemcities is another platform I stumbled upon. Although it looks a _little_ vibecoded, it's also free and gives you instant access and a rather easy-to-use web interface to create and manage your capsule. Of course, you can also host your own Gemini server, and there are plenty of resources on that, but that's outside the scope of this article. ## What To Put In Your Capsule? The answer is the same as any webpage you make: anything you want! But here are some ideas to get you started: Less is more here, more than almost anywhere else on the Internet. All you need is a folder and some plain text files. A flat folder structure like this is already enough to get going: index.gmi # root (the file served by default at a base URL, the Gemini equivalent of index.html) about.gmi # an about page links.gmi # interesting non-https links you've found quotes.gmi # quotes you want to keep and share. gemroll.gmi # other people's capsules you want to share gemlog/ 2026-09-15-thoughts.gmi # a blog post 2026-09-01-update.gmi # another blog post ## The Gemlog Now, a blog in a Gemini capsule is usually called a gemlog, and although there's no official gemlog spec, the community has settled on some norms: * File naming: dated posts, often YYYY-MM-DD-slug.gmi and/or organized under a `/posts/` or `/gemlog/` directory. * Index page (index.gmi): a reverse-chronological list of posts as => links, each usually prefixed with the date: # My Gemlog => /gemlog/2026-09-15-thoughts.gmi 2026-09-15: Some thoughts => /gemlog/2026-09-01-update.gmi 2026-09-01: An update * Atom feed: many gemlogs also publish an `atom.xml`, so people can subscribe with an RSS feed reader, since Gemini has no native subscription mechanism. * First line as title: convention (not spec) is that a post's first line is a `#` heading used as its title when aggregated elsewhere. ## Other Goodies Most browsers built for Gemini, such as Bombadillo, Lagrange, and Kristall—all of which can also interface with protocols like Gopher, Spartan, etc., and work with the older `finger://` protocol. You can add a finger link into your capsule like any other: => finger://brennan@omg.lol Finger me for my current status => finger://example.com/kenny .plan file You can also have `.plan` and `.project` files, which can also live on a `now.gmi` page. * `.plan` → current status, what you're working on right this week (the original microblog) * `.project` → a one-line "what is this account/person about" Michael Lazar has a spec for Gemini capsules to have a plain-text file named `favicon.txt` containing a single Unicode emoji. A supporting client resolves a favicon for any given page by checking that directory for `favicon.txt`, and if absent, looks in the parent directory (the same logic as looking for `robots.txt`). Having a /favicon.txt in your capsule's root (e.g. 🍇) enables it for your whole site, and you can override it with different ones in subdirectories. Support is optional, though, and client-dependent. It's also good practice to add a `.well-known/security.txt` to your capsule just as on any other website, with something like: Contact: mailto:security@example.com Contact: https://example.com Expires: 2027-12-31T23:59:00.000Z Encryption: https://example.com Policy: https://example.com Preferred-Languages: en, es Canonical: https://example.com/.well-known/security.txt Gemini also supports `robots.txt` files, but Gemini requests carry no user-agent string, so instead of naming specific bots, the convention defines virtual user-agents by purpose: User-agent: archiver Disallow: /private/ User-agent: indexer Disallow: /drafts/ User-agent: researcher Disallow: User-agent: webproxy Disallow: / User-agent: * Disallow: /cgi-bin/ ## ASCII Art Because you're mostly limited to text, Gemini is a great excuse to dive into ASCII art. There are great text-to-ASCII generators, archives of ASCII art made by others, and tools to help you draw your own ASCII art. Hell, even WikiHow has a pretty good tutorial. ## Social Media and Interactivity on Gemini Now, I loved learning about this: despite how minimal Gemini is, there are still sites where you can sign up and interact with other users. The two most popular examples of this are **Gemini BBS** and **Station**. There is also a wonderful plant game called **Astrobotany** which also operates similarly. None of the interactivity breaks Gemini's design, rather, it's built from four small primitives in clever combinations. Instead of reading files off disk, a Gemini server can be configured to run scripts, which get a request URL (including query strings) and then gemtext is written to stdout: * Client requests a URL. * Server replies with status 10 (or 11 for sensitive input like a password) plus a prompt string instead of content. * The client shows a single text field with that prompt. * Whatever the user types gets URL-encoded and appended as a query string, and the client re-requests the same URL with that string attached. Gemini has no cookies, so persistent state across visits is handled with TLS client certificates. A server can respond with status 60 ("certificate required") for a path, and the client either generates one (with the user's permission) or presents one it already has. The server then keys any stored state to that certificate's fingerprint. This is how a capsule "remembers you" between sessions without passwords or cookies. For more information on this, I recommend looking at solderpunk's repository gemcert. ## Getting Started Now, it might be confusing to get started with Gemini. First things first, you'll need an actual Gemini browser, since your regular one can't speak the protocol. Lagrange is the one I use and recommend; one of the things I love about it is the sidebar, which has a "structure" option that lets you view the site you're on like a folder directory. But Amfora is a great terminal-based option. Past that, some of the hosting options above require using the terminal and SSH, so if you've never generated a key pair before, GitHub's guide to generating an SSH key is a good walkthrough even if you're not using it for GitHub itself. And for actually writing gemtext, the official specification is good, as there's not much to it. For more information and browser options, I recommend the Awesome Gemini repository. ## CGI Scripting on Gemini Gemini doesn't have anything like PHP or server-side JavaScript, but it does support old-school CGI (Common Gateway Interface) scripting. Instead of serving a static `.gmi` file, your server runs a script and pipes what it prints to stdout back to the client as the response. The response format is: a status code and MIME type on the first line, a blank line, then the body. Here's an example in Python that says hello: #!/usr/bin/env python3 print("20 text/gemini") print() print("# Hello!") print("Welcome to my little corner of Geminispace.") Save that as `hello.cgi`, make it executable with the command `chmod +x`, and put it in the directory that your server uses as its cgi-bin. Most Gemini servers that support CGI, including Jetforce (the same server behind Astrobotany, mentioned earlier) pass along request details through environment variables like QUERY_STRING and PATH_INFO, so you can build search boxes, guestbooks, or anything else interactive. There are plenty of CGI scripting tutorials out there if you're curious to learn more. ## A Revivalist's Revival Gemini isn't old technology being dusted off, it was created in 2019. But it borrows heavily from Gopher's spirit, BBSes, and the decades-old phlogosphere. And yet, sadly, during my research and browsing of Geminispace, I came across nearly as many dead/abandoned links as I did active and alive ones. I get it. There's a lot of friction when it comes to using an entirely different protocol. I confess that it took me months until I finally got serious with it. I don't think Gemini will ever "take off" and I'm glad for that, really. It's a wonderfully peaceful and calm alternative to the Internet without having to unplug. I'm planning to use it a lot more, and I think I'm going to start adding some of my writing on the protocol exclusively. But I do hope you consider trying it out, it may be the only place online where there aren't hordes of genAI bots pissing everyone off, who knows. * * * ## Links Here are all the links I've collected in my journey across the smallnet so far. None of these use the `https://` protocol, so you'll have to use a Gemini protocol browser to visit any of them. I tried to make sure each one is still active and operating, but please let me know if any aren't. ### The Gemini Project => gemini://geminiprotocol.net/ Gemini Protocol, official project site => gemini://geminiquickst.art/ Gemini Quickstart guide => gemini://mozz.us/files/rfc_gemini_favicon.gmi Emoji favicons in Gemini, a spec proposal => gemini://gemi.dev/gemlog/2022-02-08-favicons.gmi On favicons and how to add one to your capsule ### Search & Discovery => gemini://kennedy.gemi.dev Kennedy, Geminispace search engine: discovery, historical snapshots, backlinks, and capsule health => gemini://kennedy.gemi.dev/archive/ Delorean, the Geminispace time machine => gemini://gemini.thegonz.net/cdg/ Collaborative Directory of Geminispace => gemini://fediring.net/ Fediring, a Gemini webring => gemini://geminispace.info/ geminispace.info, public Gemini search provider => gemini://tlgs.one/ TLGS, another public Gemini search provider => gemini://gemplex.space/ Gemplex, experimental search engine => gemini://aurasearch.ddns.net/ Aura Search, covering Gemini, Nex, Spartan, and Scroll => gemini://medusae.space/ Medusae, hand-maintained capsule directory => gemini://geddit.glv.one Geddit, interactive link service with comments => gemini://fumble-around.mediocregopher.com Fumble-around, explore gemspace by hopping between random interesting pages => gopher://gopher.floodgap.com:70/1/v2 Veronica, Gopherspace search => gopher://gopher.icu:70/1/quarry Quarry, Gopherspace search #### Aggregators => gemini://warmedal.se/~antenna/ Antenna => gemini://antenna.ucant.org/ Antenna, ucant.org instance => gemini://gemini.circumlunar.space/capcom/ CAPCOM => gemini://gemini.circumlunar.space/users/gemlog/ CircumLunar gemlog feed => gemini://skyjake.fi/~Cosmos/ Cosmos #### Geminispace Statistics => gemini://gemini.bortzmeyer.org/software/lupa/stats.gmi Lupa's Geminispace Statistics => gemini://tlgs.one/statistics TGLS' Geminispace Statistics => gemini://botond.online/en/stats/ Botond's Geminispace Stats Visualized ### Communities => gemini://bbs.geminispace.org/ Gemini BBS: discussion, microblogging, and issue tracking => gemini://station.martinrue.com/ Station: status updates, capsuleers can hang out and socialise => gemini://midnight.pub/ Midnight Pub: small-scale personal publishing with a human-scale social feel => gemini://flounder.online Flounder => gemini://gemlog.blue Gemlog Blue => gemini://smol.pub Smol Pub => gemini://gemcities.com GemCities, capsule publisher => gemini://gemini.smallweb.space/ SmallWeb.Space, smol web host => gemini://gemini.circumlunar.space CircumLunar.Space, community capsule host => gemini://software-freedom.org Software Freedom => gemini://cities.yesterweb.org Yestercities (defunct) => gopher://gopher.club:70/ Internet Gopher Club Underground Syndicate => gopher://magical.fish:70/1/ magical.fish #### Pubnixes & Tildes => gemini://gem.sdf.org SDF Public Access UNIX System => gemini://gemini.ctrl-c.club/ Ctrl-C Club => gemini://envs.net Envs => gemini://breadpunk.club/ Breadpunk Club => gemini://heathens.club/ heathens.club => gemini://tanelorn.city/ tanelorn city => gemini://tilde.cafe/ Tilde Cafe => gemini://tilde.club/ Tilde Club => gemini://tilde.pink/ tilde.pink => gemini://tilde.team/ Tilde Team => gemini://tilde.town/ tilde.town => gemini://rawtext.club/ Raw Text Club (RTC) (defunct) ### Capsules of Interest => gemini://zaibatsu.circumlunar.space/~solderpunk/ solderpunk, creator of Gemini => gopher://zaibatsu.circumlunar.space/1/~solderpunk/ solderpunk's Gopherhole => gemini://athanasia.gemcities.com/ Athanasia => gemini://balloon.fusen.nya.je/ Balloon/Fusen => gemini://elektito.com/gemlog/ Elektito => gemini://nytpu.com Nytpu => gemini://sava.rocks sava.rocks => gemini://mozz.us mozz.us => gemini://cyberdreams.info CyberDreams => gemini://gem.acdw.net ACDW's Gemini Cottage => gemini://drewdevault.com/ Drew DeVault => gemini://hexdsl.co.uk HexDSL => gemini://gemini.lottalinuxlinks.com Lotta Linux Links => gemini://pennywhether.xyz PennyWhether's Place => gemini://gemini.circumlunar.space/users/hundredrabbits/ Hundred Rabbits => gemini://gemini.circumlunar.space/users/laur%C3%AB/ Laurë's capsule => gemini://skyjake.fi/ Skyjake, developer of Lagrange => gemini://alexschroeder.ch/ Alex Schroeder => gemini://freeshell.de/ JBanana => gemini://gmi.bacardi55.io/ bacardi55 => gemini://warmedal.se/~bjorn/ ew0k => gemini://taoetc.org Tao Etc => gemini://caolan.uk/ Caolan => gemini://adele.work Adele's capsule => gemini://going-flying.com/~mernisse/ Mernisse => gemini://tobykurien.com/ Toby Kurien's capsule => gemini://friendo.monster/ Drew's capsule => gemini://rawtext.club/~ecliptik ecliptik => gemini://rawtext.club/~sloum/ sloum => gopher://zaibatsu.circumlunar.space/1/~sloum/ sloum's Gopherhole => gopher://gopher.black/ Tomasino's gopherhole => gopher://box.matto.nl:70/1/ Matto's gopherhole => gopher://tilde.pink/1/~bencollver/ bencollver's gopherhole => gemini://tilde.cafe/~spellbinding/ ~spellbinding's word games => gemini://corstar.flounder.online corstar => gemini://subphase.xyz/index.gmi subphase => gemini://pixeldreams.tokyo/ kyo => gemini://tilde.pink/~kaction kaction => gemini://sdf.org/clinquant/index.gmi clinquant => gemini://tilde.pink/~ali ali => gemini://devinprater.flounder.online devin => gemini://vignette.kalasarn.se/ mmww => gemini://republic.circumlunar.space/users/joneworlds/ joneworlds => gemini://tanelorn.city/~vidak/ vidak => gemini://tilde.town/~hush/ ~hush #### Link curators These capsules maintain the collections many of the links here were found through. Thank you!! => gemini://tilde.pink/~emily ~emily => gemini://gemini.ctrl-c.club/~aesophod/ ~aesophod => gemini://gemini.ctrl-c.club/~de_alchmst/ ~de_alchmst => gemini://gemini.ctrl-c.club/~edisondotme/ ~edisondotme => gemini://gemini.ctrl-c.club/~gzj/ ~gzj => gemini://gemini.ctrl-c.club/~w3bk3rn3l/ ~w3bk3rn3l => gemini://gemini.ctrl-c.club/~zenspace/ ~zenspace => gemini://eluum.net/ eluum => gemini://gmi.hedy.dev/ hedy #### Active ~pink capsules => gemini://tilde.pink/~johl ~johl => gemini://tilde.pink/~kirch ~kirch => gemini://tilde.pink/~lacour ~lacour => gemini://tilde.pink/~m040601 ~m040601 => gemini://tilde.pink/~para ~para => gemini://tilde.pink/~rebel1725 ~rebel1725 => gemini://tilde.pink/~ssb22 ~ssb22 ### Good Gemlogs => gemini://degrowther.smol.pub/ Degrowther => gemini://idiomdrottning.org/sub Idiomdrottning => gemini://rawtext.club/~left_adjoint/ Left adjoint's free monoid microblog => gemini://gemini.ctrl-c.club/~lettuce/ Lettuce Gemlog => gemini://njms.ca/gemlog/ njms' gemlog => gemini://officialdonut.smol.pub/ Official Donut of the Small Web => gemini://ploum.net/index_en.gmi Ploum's English gemlog => gemini://rawtext.club/~ploum/ Ploum's Offline Typewriter => gemini://gemini.circumlunar.space/users/shufei/phlog/index.gmi Shufei's Gmiphlog => gemini://gemini.circumlunar.space/users/shufei/phlog/Shufei-ThisAndThat-Weiphlog.gmi Shufei's Weiphlog => gemini://arcanesciences.com/gemlog/ Sunset's gemlog => gemini://rawtext.club/~winter/gemlog/ Winter's gemlog => gemini://samsai.eu/gemlog.gemini Samsai's gemlog => gemini://perso.pw/blog/ Solene's gemlog => gemini://gemini.cyberbot.space/gemlog/ kelbot's gemlog => gemini://carcosa.net/journal prothetic conscience, a comrade's gemlog => gemini://zach.e-worm.club/ zach's frequently updated log => gemini://gmi.noulin.net/feed.gmi Remy Noulin's tech articles ### Documents & Libraries => gemini://library.inu.red Gemini mirror of the Anarchist Library => gemini://gemini.bortzmeyer.org/rfc-mirror/rfc-index.gmi Gemini mirror of all IETF RFCs => gemini://park-city.club/library/ Park City Library: collecting, categorizing, and preserving the works of internet communities => gemini://vault.transjovian.org TransJovian, a Gemini encyclopedia => gemini://gemini.cyberbot.space/smolzine/ smolzine => gopher://rawtext.club:70/1~cmccabe/pubnixhist/ A history of public unix systems => gopher://tilde.pink:70/1/~bencollver/dict/ Dictionary look-ups => gopher://tilde.pink:70/9/~bencollver/books/FederalPLGuidelines.pdf Federal Plain Language Guidelines (PDF) => gopher://tilde.pink:70/9/~bencollver/books/how-to-write-clearly.pdf How to Write Clearly (PDF) => gopher://tilde.pink:70/0/~bencollver/text/nato-alphabet.txt NATO phonetic alphabet => gopher://tilde.pink:70/1/~bencollver/effman/ Writing effective man pages => gopher://tilde.pink:70/1/~bencollver/dos/ DOS nostalgia => gopher://tilde.pink:70/1/~bencollver/ftp/ FTP sites => gopher://tilde.pink:70/1/~bencollver/gamefaqs/ GameFAQs archive => gopher://tilde.pink:70/1/~bencollver/books/basic-asanas/ Basic asanas => gopher://tilde.pink:70/1/~bencollver/books/surya-namaskar/ Surya namaskar => gopher://sdf.org:70/1/users/agk/1st First aid ### Arts & Fun => gemini://cyberdreams.info/videos/index.gmi CyberDreams Video Archive => gemini://tilde.pink/~doriancodes/asciimoji.gmi ~doriancodes' ASCIImoji / Kaomoji Collection => gemini://mozz.us/cgi-bin/cowsay Mozz's Cowsay Generator => gemini://astrobotany.mozz.us/ Astrobotany => gemini://zaibatsu.circumlunar.space/~shufei/pnp/PikiAndPoko.gmi Shufei's Smolnet Piki and Poko Fancapsule => gemini://gemini.nasman.us/dad_tips.py Dad tips generator => gopher://workingpayphones.com:70/1/ Working phone booths #### Games => gemini://spell.mywire.org:1966/ Spellbinding, an addictive word game => gemini://tilde.cafe/~spellbinding/wordo/cgi? Wordo, a wordle-like game => gemini://tilde.cafe/~spellbinding/wall/cgi A public wall to leave messages on => gemini://tictactoe.lanterne.chilliet.eu Tic-tac-toe => gemini://rawtext.club/~sloum/cgi/othello/ Othello/Reversi against the computer ### Music => gemini://gemini.circumlunar.space:1965/~sloum/ Drift Theory, a small collection of music released on Gemini => gemini://tilde.team/~jonathan/music/ Jonathan's noughties music reviews => gemini://konpeito.media The legendary Konpeito quarterly mixtapes => gemini://kovok.band/ Kovok, possibly the first band on Gemini => gemini://republicofsound.flounder.online/ Republic of Sound, free album downloads => gemini://rawtext.club/~sloum/musicmachine/ Music Machine, short album reviews => gemini://oberdada.pollux.casa/metal_intro.gmi Oberdada's Guide to Obscure Metal ### Photography => gemini://158.nu 158.nu's film photography hobby projects => gemini://kota.nz/pics/ Kota's pics ### Recipes => gemini://rawtext.club/~sloum/cgi/recipes/ A searchable index of 1,000 recipes => gemini://breadpunk.club/~rye/ Rye, a collection of vegan, mostly soy-free recipes => gemini://gemini.circumlunar.space/users/hundredrabbits/recipes.gmi Vegan recipes from Hundred Rabbits ### Indigenous Language => gemini://taisui.space/tatis/index.gmi Siɂisim Tatis, a smol newsletter in Chinuk Wawa ### Permacomputing & Essays => gemini://perma.computer/letter Technological Futures: A Letter to the Smolnet => gemini://smol.earth/manifesto.gmi Personal computing in the Anthropocene with eyes, minds and hearts wide open => gemini://idiomdrottning.org/texts.gmi Idiomdrottning's collected texts => gemini://midnight.pub/posts/163 Nick Cave on finding good ideas ### Software & How-tos => gemini://skyjake.fi/lagrange/ Lagrange, a Gemini browser => gemini://makeworld.space/amfora-wiki Amfora Wiki => gemini://rawtext.club/~sloum/spacewalk.gmi Spacewalk => gemini://qwertqwefsday.eu/agate.gmi Agate, a Gemini server => gemini://gemini.smallweb.space/HOWTO/managing-your-own-capsule.gmi How to self-host a capsule => gemini://aelspire.info/posts/2022-07-28-dotfiles/post.gmi Managing dot files => gemini://srht.site/ SourceHut Gemini hosting => gemini://srht.site/quickstart.gmi SourceHut's quick start guide => gemini://glv.one glv.one, PaaS that runs any Gemini server in the cloud => gemini://gemini.omarpolo.com/cgi/gempkg/ gempkg, an interface to the OpenBSD ports collection ### Tools & Services => gemini://gemi.dev/cgi-bin/waffle.cgi NewsWaffle, read any news website via Gemini => gemini://gemi.dev/cgi-bin/wp.cgi Gemipedia, Gemini frontend to Wikipedia => gemini://gemi.dev/stargate.gmi Stargate, public Gemini-to-HTTP gateway => gemini://rawtext.club/~sloum/geminews/ Geminews, an NPR, CSM, and CNN mirror => gopher://nihirash.net:7000/1/ Gopher web proxy => gemini://ur.gs/ ur.gs, English-Spanish translator => gemini://rawtext.club/~sloum/cgi/weather US weather reports by zip code => gemini://tilde.cafe/~stack/weather Weather forecast powered by wttr.in => gopher://gopher.floodgap.com:70/1/groundhog/us/zipcode%3F97526 Takelma weather => gopher://tilde.pink:70/1/~bencollver/dir/ Gopher Google directions => gemini://houston.gmi.bacardi55.io Houston, check whether a capsule is up => gemini://hashnix.club:1958/ hashnix.club email service => gemini://kevachat.duckdns.org KevaChat clearnet node => gemini://kvazar.duckdns.org Observe the Kevacoin Universe => gemini://betahowto.duckdns.org Yggdrasil DokuWiki satellite ### Other Link Collections => gemini://rawtext.club/~winter/links/ Winter's link garden => gemini://hnr.fyi/research.gmi Honor Ash's collected resources on degrowth, communities & scale, and more => gopher://tilde.pink/1/~bencollver/links/ bencollver's links list => gemini://gemini.ctrl-c.club/~aesophod/bookmarks/bookmarks.gmi ~aesophod's bookmarks => gemini://gemini.ctrl-c.club/~zenspace/bookmarks.gmi ~zenspace's bookmarks => gemini://gmi.hedy.dev/blogroll.gmi hedy's blogroll => gemini://eluum.net/link-garden.gmi eluum's link garden => gemini://gemini.cyberbot.space/links.gmi kelbot's links => gemini://nytpu.com/feed.gmi nytpu's list of capsules and gopherholes => gopher://box.matto.nl:70/1/phlogroll phlogroll => gopher://box.matto.nl:70/1/burrows-of-interest Burrows of Interest => gemini://station.martinrue.com/softwarepagan/4f077db00e7541b082403650735d954d Station thread: everyone's coolest Gemini links
brennan.day
September 19, 2026 at 3:29 AM
The main hVmark reference has seen a light overhaul, and now shows the source code of the script that generates the page, just to prove that it was actually written in hVmark.

hisvirusness.com/hvmark

#hVmark #markup #markdown #php #webdev #indieweb #smallweb
hVmark :: HisVirusness
hVmark is a tiny, opinionated markup language created by HisVirusness, and for HisVirusness.com. It favors strict, minimal syntax to produce clean HTML quickly. It's not a general-purpose Markdown rep...
hisvirusness.com
September 17, 2026 at 9:01 PM
I've always liked the part of the web where people build things for themselves. A blog about a very specific hobby, a small site someone just wanted to exist.

They're everywhere. They've just become surprisingly hard to stumble across. That's why I made this field.

#indieweb #smallweb
Pixel Area – a map of the independent web
One pixel – one personal blog. Explore the field with your lantern: no metrics, no algorithms, everyone equal.
pxlarea.com
September 16, 2026 at 5:51 PM