OSS Tanbou

Phanpy — organize Mastodon reading without chasing engagement

Discovery score 186.9OSS health 83Discovery
About these scores

Discovery score is an unbounded weighted, log-compressed index of stars, watchers, forks, and contributors. Growth momentum is its change over the observed period; OSS health is a 0–100 score from available repository recency, Community Health, and release data.

Stars
1,490
Primary language
JavaScript
License
MIT
Repository last updated
Sep 13, 2026

Overview

Phanpy is a minimal, opinionated Mastodon web client shaped around its author's taste and UI experiments. It supports multiple accounts, grouped notifications, nested threads, and draft recovery while avoiding persistent action buttons and timeline autoplay, prioritizing calmer reading over engagement. It is a static web app that offers a different way to read Mastodon rather than a full replacement for the official interface.

Based on official documentation; not hands-on tested · Content checked:

Reduce timeline density by restructuring boosts and threads

When a fetched page contains enough boosts, Boosts Carousel groups them so original posts occupy more of the main flow. For threads, Phanpy follows inReplyToId toward the root with up to three extra API requests and shows a Thread 1/X-style badge when it can determine the index. Hashtag-heavy paragraphs collapse, while filtered posts use warnings, hover previews, and long-press peeking for graduated disclosure.

Sources: [1]

Use multiple accounts and view modes in one static app

Features include multiple accounts, a detachable compose window, light, dark, and automatic themes, grouped notifications, nested replies, and recovery of unsent drafts. Shortcuts provide views such as multi-column and tab bar, alongside multi-hashtag timelines. Translation uses gettext .po catalogs and Crowdin, with internationalization details including right-to-left layout support.

Sources: [1]

For people who choose reading flow and a clear UI point of view over metrics

Reply, boost, favourite, and similar actions stay hidden until an individual post is opened, and timeline video or GIF content does not autoplay. It fits people who want to try a client that intentionally removes common engagement prompts. Because it is a pure static app, communities can also build it with their own default instance, language, and privacy-policy settings.

Sources: [1]

Account for accessibility, external services, and maintainer capacity

The README says accessibility is not complete and the app is not intended as a comprehensive replacement for Mastodon's existing front end. The official deployment is a static site on Cloudflare Pages, but each connected Mastodon server has its own privacy policy and translations use the external TransLang API by default. Anonymous usage statistics use Cloudflare Web Analytics, and only the development site sends error logs to Rollbar.

Self-hosting recommends a custom build from the production branch with Node.js 22 or newer; prebuilt release archives are explicitly not recommended. Only the latest production release receives security updates, and OAuth tokens must be treated like passwords. The policy also warns that this free-time solo maintainer may need weeks or longer to respond, so operators should plan timely upgrades and a fallback for urgent issues.

Sources: [1][2][3]

Official sources

  1. [1]cheeaun/phanpy — README(2026-09-13)
  2. [2]cheeaun/phanpy — Privacy policy(2026-09-13)
  3. [3]cheeaun/phanpy — Security policy(2026-09-13)

Why we discovered this

Supplemental curator note

Its design explicitly refuses to chase engagement numbers, turning the authors taste into concrete UI decisions such as hidden actions and Boosts Carousel. Years of mostly solo iteration make the project especially distinctive.

Growth trends

Last 30 days

1,490 Stars

Trend data is still being collected.

Built with

  • JavaScript

Categories and tags

Categories

GitHub Topics

  • mastodon
  • web
  • mastodon-client
  • pwa
GitHub dataView detailed GitHub data
Stars
1,490
Forks
186
Watchers
8
Open issues
447
Contributors
41
Primary language
JavaScript
License
MIT
Repository last updated
Sep 13, 2026
Report incorrect information

Tell us if any listing information is incorrect or outdated.