Title: Pinafore: a light Mastodon web client
Author: Solène
Date: 18 November 2022
Tags: mastodon selfhosting
Description: This articles presents the alternative mastodon front-end
Pinafore

# Intro

This blog post is for Mastodon users who may not like the official
Mastodon web interface.  It has a lot of features, but it's using a lot
of CPU and requires a large screen.

Fortunately, there are alternatives front-ends to Mastodon, this is
possible through calls between the front-end to then instance API.  I
would like to introduce you Pinafore.
Pinafore GitHub client
Pinafore.social website
# What's Pinafore?

Pinafore is a "web application" consisting of a static website, this
implies nothing is actually store on the server hosting Pinafore, think
about it like a page loaded in your browser that stores data in your
browser and make API calls from your browser.

This design is elegant because it delegates everything to the browser
and requires absolutely no processing on the Pinafore hosting server,
it's just a web server there serving static files once.

As I said previously, Pinafore is a Mastodon (but also extends to other
Fediverse instances whenever possible) front-end with a bunch of
features such as:

- accessibility (for content warning content, greyscale mode, contrast,
key bindings)
- only one column, it's really compact
- simple design, fast to load and doesn't eat much CPU (especially
compared to official Mastodon interface)
- read-only support if you visit your Pinafore host when not connected,
I find this very useful (remember that cache is stored in your browser)
- can handle multiple accounts at once

This being said, Pinafore doesn't target minimalism either, it needs
javascript and a modern web browser.

# How to use Pinafore?

There are two ways to use it, either by using the official hosted
service, or by hosting it yourself.

Whether you choose the official or self-hosted, the principle is the
following: you enter your account instance address in it the first
time, this will trigger an oauth authentication on your instance and
will ask if you want pinafore to use your account through the API (this
can be revoked later from your Mastodon account).  Accept, and that's
it!

## Pinafore.social

The official service is run by the developers and kept up to date.  You
can use it without installing anything, simply visit the address below
and go through the login process.
Pinafore.social website
This is a very convenient way to use pinafore, but it comes with a
tradeoff: it involves a third party between your social network account
and your client.  While pinafore.social is trustable, this doesn't mean
it can't be compromised and act as a "Man In The Middle".  As I
mentionned earlier, no data are stored by Pinafore because everything
is in your browser, but nothing prevent a malicious attacker to modify
the hosted Pinafore code to redirect data from your browser to a remote
server they control in order to steal information.

## Self Hosting

It's possible to create Pinafore static files from your system and host
it on any web server.  While it's more secure than pinafore.social (if
your host is secure), it still involves extra code that could
"potentially" be compromised through a rogue commit, but it's not
realistic to encounter this case when using Pinafore releases versions.

For this step, I'll link to the according documentation in the project:
Exporting Pinafore
# Trivia

Pinafore is the recommended web front-end for the Mastodon server
implementation GoToSocial which only provide a backend.
GoToSocial GitHub project page