Devlog 05: Cumulative update

Published on: 2021-07-28

It's been a while since I published one of these devlog updates for my work on Starfish. Progress recently was slow but steady. I've implemented a couple of features that I considered to be required for the initial beta release. Meanwhile, elementary team published a stable version of their Flatpak SDK, so I'll likely submit Starfish for review soon!

In the meantime, here are features I've added recently:

File downloads

Since Starfish itself cannot render anything but text and images I needed an option for handling other file types. I opted for a simple download page that lets user just save a file. It doesn't support download in the background or in parallel. So there's definitely room or improvement, but it works. Consequently, since I use Starfish as my daily browser this feature opened up the world of gemcasts (Gemini podcasts) to me. I'm listening to Trendy Talk at this very moment!

Trendy Talk (now downloadable over Starfish)!

Support for file:// URI scheme

This was easy to implement, since all I needed to do is get an input stream from a file instead of a network socket, and the rest of the app just continued to function like before. By itself this feature allowed me to preview gemfiles while I was working on them and before I actually published them. More importantly, it gave me an idea on how to implement one additional feature:

Intro documentation

From the start I wanted Starfish to be friendly towards new users. I'd like people to stumble upon this app on the elementary AppCenter and discover Gemini from it. In order for this to work I need some sort of introduction to Gemini inside my app. After adding support for the file:// scheme it occurred to me that I could ship a couple of .gmi files explaining how Gemini works alongside my app and just open them on first app load.

Of course I could have always hosted those intro pages on this (or some other) capsule. However, I want Starfish to be more "stable" than this pod. I'm running this thing from a Raspberry Pi 2, sitting in a cardboard box, somewhere between my router and a potted plant. I'd prefer Starfish to be self contained and to continue working when my personal pod is off-line. So I bundled docs with app itself and set them as a default homepage, thus opening them on first load.

However, I don't see why not share those intro pages here (in addition to shipping them with the app itself). So, here it goes:

Introduction to Gemini

Feel free to check it out, and please do send me feedback in case you find some incorrect or incomplete information, or just have some ideas on what additional info would be useful to new geminauts. You can reach me over email or on Mastodon, my contact's on this pod's index page.

Pod index

Gemlog index

Previous devlog

Starfish project page