-- Leo's gemini proxy

-- Connecting to alexey.shpakovsky.ru:1965...

-- Connected

-- Sending request

-- Meta line: 20 text/gemini

GGST Proxy - one more Gemini client

2022-03-01


Like if there were not enough Gemini clients or web proxies around... So I created one more! Want to have a look?

read this post through the GGST proxy

Subtitle: I am bad at names...


Why?


I enjoyed using two graphical Gemini clients: Kristall and Lagrange. But none of them ticks all boxes of how I'd like _a perfect_ Gemini client to look:


cross-protocol (Gopher/Gemini/Spartan/Titan)

editing pages via Ctrl-E like in Lagrange

auto dark color theme generation like in Kristall (sorry @skyjake but I just don't agree that the yellow-ish theme Lagrange generated for my capsule is "beautiful". Kristall's blue-sh background is much nicer IMO!)

tabs, find-in-page, history like in a web browser

input prompt which doesn't block everything else

favicons in tabs

hyphenations in text

hackable (written in language I can easy understand and edit)


I spent some time investigating Tkinter package for Python and features of its TextWidget, but then realized that most of effort will go into recreating a "browser-like" behavior (tabs, find-in-page, cache, history search), and decided to implement it in Javascript/HTML instead, and use the actual browser for tabs, find-in-page, etc.

Hence, it's not an actual "client" binary application which you install on your Android/iPhone/Linux/Mac/Windows, but a gemini webproxy. Unlike other proxies, it relies more heavily on frontend Javascript side, where backend performs only basic translation of HTTP requests to gemini/gopher/spartan/titan ones. Saying that, it doesn't use any fancy Javascript libraries like React, Redux, Vue, jQuery, or what's the trendy one is today - primarily due to my lack of knowledge, secondary due to me being member of 512kb.club (the frontend is under 50Kb, but I'm not aware of such club).


Features

gopher, gemini, spartan, titan protocol support to varying degree

hyphenations!

favicons

"up" and "top" (root of the capsule) buttons

`----` horizontal line / "thematic separator" support (sorry @solderpunk, but I've seen it used "in the wild" too much already)

tabs, history, cache are provided by your browser

works as "proxy" for a single gemini capsule


Currently lacking features

only most common gopher selectors supported (0,1,7,I,h)

spartan input not supported

error messages not explained properly

finger protocol


Future plans

proper input for spartan

better handling of "fake address bar" input

force cache of favicons (so F5 wouldn't refetch them)

inline images


Security note

Note that currently certificates are not checked in any way, and client certificates are also not implemented.


Target browsers

At the moment, only latest Firefox and Chrome are tested. More browsers are possible to add if someone is going to use it.


Have a look

If you have a web browser, you can use it to browse my capsule from the web:

my capsule


Note that connection to other capsules are not enabled on that instance - it's a one-capsule proxy, much like flounder.online.


You can get the source code on github and try installing it yourself:

source code on github.


Poll


Did the world need another Gemini proxy/browser?


you're happy to have your browser and that's enough reason for its existence (8 votes)

I have my own browser and I'm happy for you, too (3 votes)

Lagrange is the most beautiful browser (1 vote)

Kristall is better (0 votes)

Did you know that there are more than two GUI Gemini browsers? (0 votes)

Text interface is the only proper way to read Gemini (3 votes)

Your proxy/browser looks good (3 votes)

Your proxy/browser looks bad (1 vote)

I tried to install it but didn't manage to (1 vote)

I installed and uninstalled it (0 votes)

I installed it and maybe will use it (2 votes)

It's my main Gemini browser now! (2 votes)

I am skyjake, creator of Lagrange, Cosmos, GmCapsule, and Doomsday Engine. (6 votes)


Privacy note: voting saves your IP address. Voting for the second time overwrites your previous vote. Voting through _other_ web proxies hides your IP address and counts against that proxy IP address (so there's approximately one vote shared among all users of that proxy). Voting through _my_ web proxy preserves your original IP address (the vote is only yours, your IP is saved with it).


----


Also I would like to thank @pr1ba for encouraging words in this difficult times (in Russian):

Спокойствие, только спокойствие

-- Response ended

-- Page fetched on Tue May 21 23:52:50 2024