Skip to content
Alessandro Melandri edited this page Sep 2, 2026 · 3 revisions

Mastofoto turns a Mastodon list — or your Home timeline — into a clean, photo-only feed. This page walks through everything the app does, from logging in to the small details that make browsing photos more pleasant.

Features

Signing in

  • Log in with any Mastodon instance. Just type your instance's domain (e.g. mastodon.uno) — Mastofoto registers itself with that instance automatically the first time, then takes you through Mastodon's own standard login screen. There's nothing to configure on your end beforehand.
  • Only the permissions it needs. Mastofoto asks only for permission to read your timeline and to favourite/reblog posts. It can never post, delete, or follow on your behalf.
  • Your session is remembered. Once you're in, Mastofoto keeps you signed in (per instance) so you don't have to log in again every time you open the app.

Choosing what to follow

  • A Mastodon list, or your Home timeline. Pick one of your existing Mastodon lists to get a focused photo feed from a curated set of accounts, or choose your Home timeline to see photos from everyone you follow.
  • Preview a list before using it. When you select a list in Settings, Mastofoto shows you who's in it (avatar, name, handle) so you can double-check it's the right one.
  • Switch anytime. The Settings screen lets you change your timeline choice (or the theme) whenever you like — your choice is remembered for next time.
  • No list? No problem. If you don't have any Mastodon lists yet, you can still use your Home timeline — creating a list is entirely optional.

The photo feed

  • Only posts with photos. Every text-only post is filtered out automatically — you only see posts (and boosts) that actually contain a photo. No more scrolling past walls of text to find the pictures.
  • Full resolution images. Photos are shown at their original resolution, not a cropped-down thumbnail, so you see them the way the person who posted them intended.
  • Multi-photo posts, laid out cleanly. A post with more than one photo shows them in a tidy grid (2 or 3 columns depending on how many there are), each cropped to the same shape — instead of a messy stack of differently-sized images.
  • Smooth loading. While a full-resolution photo is downloading, a soft blurred preview (generated from the post's own data) fills its place, so the feed doesn't feel empty or janky while it loads.
  • Content warnings respected. Posts marked with a content warning stay collapsed behind a toggle, exactly as intended by whoever posted them — the photo isn't shown until you choose to reveal it.
  • Custom emoji. Any custom :emoji: shortcodes your instance supports render as actual little images in post text and author names, not literal :text:.
  • New posts, highlighted. Anything new since your last visit gets a small "New" badge, so you can tell at a glance what you haven't seen yet.
  • Keeps loading as you scroll. Older posts load automatically as you approach the bottom of the feed — no "Load more" button to click.
  • Pull to refresh. On your phone, pull down at the top of the feed to check for new posts — the same gesture you'd expect from any other mobile app.

Interacting with posts

  • Favourite and reblog, right from the feed. No need to jump over to Mastodon's own site or app — favourite (⭐) or reblog (🔁) a post directly, and jump to the original post on its home instance if you want to see the full conversation.
  • Click to enlarge. Click (or tap) any photo to view it full-size in a distraction-free lightbox.
  • Swipe through multi-photo posts. While viewing a photo from a post with more than one, swipe left/right (or use the arrow keys on a keyboard) to move to the next or previous photo in that same post, without closing the lightbox.
  • Fully keyboard-accessible. Every photo can be focused and opened with just the keyboard (Enter/Space), and closing the lightbox returns your focus to exactly where you were.

Look and feel

  • Light and dark theme. Switch anytime from Settings — Mastofoto defaults to matching your device's own light/dark setting until you pick one explicitly.
  • Installable on your phone. Add Mastofoto to your home screen like a native app. It'll open in its own window (no browser bar), and the app itself keeps working — including the interface, though not your Mastodon feed — even without a connection.

Accessibility

  • Screen reader friendly. Proper heading structure, labeled form controls, and live regions so errors and status messages are announced automatically instead of requiring you to go looking for them.
  • Fallback descriptions. Photos without an author-provided description get a sensible fallback alt text rather than being silently skipped by assistive technology.
  • Checked contrast. Every text/background/border color combination, in both themes, has been checked against WCAG AA contrast requirements by actually computing the ratios — not just eyeballed.

Privacy and security

  • No server, no middleman. Mastofoto is a static page — there's no backend of any kind. It talks directly to your Mastodon instance from your own browser, and nothing you do passes through (or is stored on) any server belonging to Mastofoto.
  • Everything stays on your device. Your login credentials, access token, and chosen timeline are stored only in your browser's local storage, kept separate per Mastodon instance. Logging out clears your credentials; your timeline choice is kept so it's ready again the next time you sign back in.
  • Secure login. Mastofoto uses Mastodon's standard OAuth login flow with a random, one-time security check, so a login attempt started in your browser can't be hijacked or completed by anyone else.
  • Sanitized content. Post content is filtered through an allowlist before being displayed, and only ordinary web links are ever made clickable — nothing else gets a free pass.
  • Open source. The entire codebase is public — anyone can read exactly what it does, self-host their own copy, or contribute.

Getting more out of it

  • Self-hostable. Don't want to depend on anyone else's deployment? Mastofoto has no backend and no build step — fork the repository and host it yourself, for free, on GitHub Pages, or on any static web server you already have.