SMOLNET PORTAL

About

This website is a proxy service that exposes gemini:// servers (and related protocols) over the web so they can be accessed in a normal web browser.

This is a hobby project that I host on my personal server and maintain in my spare time.

History

This website was originally started in 2019 as a testbed for gemini:// client development, and was named Gemini Portal.

In 2023, there was a full rewrite and the source code was published online for the first time. Later that year, support for gopher:// was added and the site was renamed to Smolnet Portal to reflect the increasing scope of the project.

Design

This site is unapologetically brutalist by design.

(That link used to have good examples, but now it's full of weird artsy stuff.)

GopherVR

I started working on a modern port of GopherVR using javascript & WebVR.

Development has stalled, but you can play with the early version by adding ?vr=1 to the end of any gopher URL. E.g. /gopher/gopher.quux.org/?vr=1

TLS certificates

All gemini connections are made securely over TLS. This proxy does not attempt to validate the TLS certificates for gemini servers, nor will it compare them against any previously seen fingerprints (TOFU scheme). The proxied server's x509 certificate can be manually inspected by clicking the [view cert] link at the top of the page.

Favicons

This proxy provides experimental support for gemini emoji favicons, as outlined in this draft specification. If a valid favicon is found, it will be displayed on the left side of the URL bar. Favicons are cached per-domain for up to 4 hours.

Blocking Access

This proxy used to honor the gemini robots.txt specification as the webproxy user agent, but support for this was turned off because it posed some technical challenges and user adoption was inconsistent and confusing.

If you host content on gemini and you would prefer that it not to be accessible through this web proxy for whatever reason, please send me an email and I'll add you to the list of blocked hosts. The following error message will be displayed for these servers:

This host has kindly requested that their content not be accessed via web proxy.

RSS Feeds

You can use this site to convert RSS feeds that are hosted on alternate protocols. Add ?raw=1 to the end of a proxy URL in order to fetch the plain XML file.

Example: https://portal.mozz.us/gemini/geminiprotocol.net/news/atom.xml?raw=1

If you have an existing gemini/gopher URL, and you want to create a hyperlink to view it in the proxy, you can use the ?url=<url> query parameter. This will redirect to the canonical proxy URL for the resource.

Example: https://portal.mozz.us?url=gemini://geminiprotocol.net

Source Code

You can find the source for this server at https://github.com/michael-lazar/smolnet-portal.

Contact

Please email me at michael@mozz.us if you find any bugs or have any questions about how this proxy works.

My home on port 1965 is gemini://mozz.us.

© Michael Lazar 2026

Attention Bots: Click here to ban your IP address for 24 hours!