Meanwhile, on Mars...

Written July 28, 2021

Hello, everyone! I hope you’ve all been doing well the past few months. I wanted to provide an update as to what’s been happening here at Hyperspace Project HQ.

A commitment to ethical source

You may recall that we began a discussion on GitHub in late Janurary regarding our licensing for all of our projects, excluding Hyperspace Classic, after rising concerns with the limitations the Non-Violent Public License imposes, notably the violation of the zeroth freedom in the definition of open-source as defined by the Free Software Foundation and the Open Source Initiative.

I’d like to reiterate a point that I addressed on the initial post to this discussion:

It is without a doubt that the people that use Hyperspace Desktop as well as the team care very deeply about open source and the world of free software. Providing open source software and investing in that community provides great benefits in technology overall. It is also apparent that we as a whole are concerned about the fediverse’s health and issues surrounding free speech and ethics, especially given the events that occurred on January 6, 2021. While we did not foresee those events, we wanted to pick a license that allowed the permissibility of open-source while also ensuring that the people who use, modify, and redistribute it do so in a manner that doesn’t harm others or cause violence. Hence, we went with a license that is considered as ethical-source or ethical open-source.

After months of discussion and careful consideration, we have decided that we will continue licensing our projects, present and future, under the Non-violent Public License. We highly value the safety of our users and will take steps necessary to ensure that we keep everyone safe, despite the often-seemingly “hands off” approach that FOSS licenses usually take.

What does this mean?

We understand that some users do not agree with our license of choice, especially due to concerns with breaking the definition of open-source as stated by the Open Source Initiative and the Free Software Foundation. You are free to not use our software if you do not agree to the license. Additionally, you are more than welcome to create a fork of Hyperspace Desktop v1.0.0-beta6 (the last beta before the license change) or the classic Desktop client, which is currently under the LGPL-3.0 license.

  • v1.0.0-beta6: https://github.com/hyperspacedev/hyperspace/tree/1.0.0beta6
  • Classic Desktop: https://github.com/hyperspacedev/hyperspace-classic

Starlight, rebooted

Codename Starlight is our native fediverse client for macOS, iOS, and iPadOS. We outlined some of the work we have done in our last post back in September, which included threads, the Explore page, and the profile page. A lot has changed since then thanks to what was revealed at this year’s WWDC (2021).

A cleaner, concurrent backend library that rocks 🐤 🎸

Swift 5.5 brings better concurrency to the table thanks to support for the async and await keywords, as well as new actors and support for running code asynchronously, saving us the trouble from “callback hell” or the “pyramid of doom”. We were excited when the news came out and knew we had to update our own networking code to fully embrace the best of concurrency.

Enter Chica, our new Swift package for making requests to Mastodon (and eventually, Twitter) with concurrency in mind. Chica handles app creation and authentication via OAuth in a secure manner, designed in a way that developers needn’t worry about token management.

Requests are also just as easy to execute. Say, for instance, fetching the custom emojis from the current user’s Mastodon instance:

import Chica
let emojis: [Emoji]? = try await Chica.shared.request(.get, for: .customEmojis)

We also are including documentation build with DocC and plan to make a release of Chica when it’s in a suitable state.

Starting from scratch

With Chica now taking place in Codename Starlight, we knew it was time to focus on redesigning the Starlight project as a whole. We decided on the following tenets for designing Starlight:

  • Creating an experience for new and upcoming users wanting to try Mastodon for any reason, whether it be privacy or technology related or experiential;
  • Providing flexibility with accounts by integrating with Twitter to ease onboarding and migration;
  • Designing a great native app that scales across iOS, iPadOS, and macOS and shows what is capable with SwiftUI and Swift 5.5.

These tenets, which we lovingly call the “Starlight manifesto”, allows us to explore designs that will make it easier for a new person to join in on the conversation. Because it’s easier than ever to develop with SwiftUI 3 and Chica, we’ve been working on the macOS and iOS/iPadOS clients side by side.

You can take a look at some of the screenshots of our work here. Please note that these designs are not final and may be updated in future iterations.

The homepage for Starlight on iOS/iPadOS

The Explore page with pull-to-search

Login prompt on macOS

Updated navigation on macOS

We can’t wait to share with you what will happen with Starlight in the future!