Open-source project
jonjomckay/fritter avatar
jonjomckay/fritter

Fritter: a mobile Twitter frontend with local data

A privacy-friendly Twitter frontend for mobile devices

1,449 stars96 forksDartMIT

At a glance

What is it?
Fritter is an MIT-licensed Dart application for reading Twitter on mobile devices with local bookmarks, subscriptions, search, trends, and themes. Its privacy claims are appealing, but its current distribution and release history require careful review before adoption.
Who is it for?
Fritter fits mobile users who prioritize local bookmarks, a no-tracking claim, and a dedicated Twitter interface. It is a weaker choice for anyone who needs a documented server deployment, current stable releases, or a fully explained account and API configuration path.
Can I use it commercially?
Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository last received commits 59 days ago.
What is it written in?
Mainly Dart, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on October 23, 2026, and from our analysis. They are not legal advice.

Editorial analysis

Fritter's mobile privacy and local bookmark model

Fritter addresses a narrow but recognizable problem: reading Twitter on a phone without adopting a feature-heavy client that adds tracking. Its feature list makes two privacy-related promises: no tracking and local storage of all data. The second promise has a concrete product consequence. Bookmarked tweets are saved for offline reading, so the app is not limited to requiring a live network connection every time a user revisits saved content.

That local-first approach is more useful than a general claim of privacy. The README specifically identifies bookmarks, subscriptions, groups, search results, and themes as parts of the mobile experience. Users can organize followed accounts, inspect trends, search for users and tweets, view poll results without voting, and switch between light and dark themes. The project targets people who want a focused Twitter reader and control over locally saved posts, rather than a general social media publishing suite.

The wording still needs care. The README does not explain how Fritter authenticates, whether it uses Twitter's official API, which requests are sent to Twitter, or how local data is protected on a compromised device. It also does not claim that no data ever leaves the device, because a Twitter frontend must communicate with Twitter or an API service to retrieve online content. The defensible interpretation is narrower: Fritter states that it performs no tracking and keeps its data local. The scope of that statement is not further defined.

What the Dart repository reveals about Fritter

The repository is primarily written in Dart and contains separate `android/`, `ios/`, `lib/`, `fritter/`, and `test/` directories. That layout confirms that Fritter is delivered as a mobile application codebase rather than as a command-line program or a browser-only service. The project homepage is `https://fritter.cc`, while the application identifier shown by the distribution links is `com.jonjomckay.fritter`.

The available repository description does not expose a complete data-flow diagram, API client specification, database schema, or account setup procedure. It therefore supports a narrower architectural account: the application contains shared Dart code plus native platform directories for Android and iOS, while the README describes a client that reads Twitter content and retains selected data locally. The `test/` directory indicates that tests exist, but the README does not explain their scope or coverage.

This thin documentation is an important engineering signal. Local storage is straightforward to advertise and difficult to assess from a feature list alone. A reviewer would need to inspect the cache and database code, identify encryption and retention behavior, trace session credentials, and determine whether background requests occur before treating the privacy statement as a complete threat model. None of those implementation details can be confirmed from the README alone.

Installing Fritter and completing a first mobile session

The README directs users to Google Play and F-Droid. It does not provide a source-build tutorial, Flutter command, prerequisites, configuration file, or command-line installation procedure, so no installation code can be reproduced from the available project documentation. Although the repository includes an `ios/` directory, the README does not document an App Store release or a supported manual iOS installation path.

For an Android user, the documented first step is to obtain `com.jonjomckay.fritter` through one of the two linked app stores. After opening the installed application, the project does not document the exact login fields or the sequence of screens used to connect an account. This prevents a faithful tutorial for authentication. It also means that account setup must be verified directly in the distributable build rather than inferred from the feature list.

Once connected, the first verifiable use should be a small, reversible workflow: find one account through the documented search feature, follow it as a subscription, and confirm that its content appears in the subscription view. The README also shows subscriptions and groups as distinct concepts, but it does not state whether groups are local organization, feed filters, or remote Twitter lists. Bookmarking one tweet would provide a second check because the README explicitly says saved tweets are available locally and offline. If those actions fail, the documentation offers no configuration or recovery procedure.

Fritter's useful scope and its product boundaries

Fritter concentrates on reading and organization rather than broad social media management. Poll viewing without a vote is a specific feature, not a generic Twitter client capability, and it may appeal to users who want to inspect results without changing their voting state. Trends are available globally, while subscriptions and groups provide ways to narrow attention to selected accounts. Search supports both users and tweets. Light and dark themes address a basic mobile usability requirement without requiring users to modify system settings.

The strongest concrete use case is therefore a personal, mobile reading setup with saved content and account subscriptions. The weaker case is a user who needs documented publishing workflows, team administration, scheduled posts, analytics, or enterprise controls. The README does not list those features, so their absence cannot be treated as a definitive product roadmap, but they are not part of the advertised scope.

Offline bookmarks also need interpretation. The README says tweets can be saved locally and offline, but it does not say whether attachments, media previews, poll details, or linked account metadata are available offline. It also does not document local-data deletion, backup, export, or synchronization across devices. Users who treat local storage as their only archive should verify these points in the app before relying on it.

How Fritter differs from Nitter and the official Twitter clients

Nitter is the most relevant alternative named by the project. Fritter's donation section discusses adding Nitter support back in and helping develop a stable API for Nitter. The distribution model identifies Fritter as a mobile application distributed as `com.jonjomckay.fritter`. The README discusses adding Nitter support back in and developing a stable API for Nitter itself. The README does not provide a current Nitter installation guide, so this comparison does not imply that either approach is operationally available without separate verification.

Compared with an official mobile Twitter client, Fritter's documented distinction is its local-data and no-tracking position, plus features such as local offline bookmarks and poll viewing without voting. The README does not compare posting, media upload, account switching, notification behavior, or security controls against the official clients. Those differences cannot be used as adoption evidence.

Nitter support is also not listed as a completed feature. The README discusses adding Nitter support back in, which makes it a project goal rather than a current capability. Similarly, Mastodon support, desktop support, notifications, and persistent timeline positions appear in a list of work that donations could accelerate. They should not be presented as shipping features.

Fritter maintenance, releases, and upgrade considerations

The repository is not archived, and its last push was on 2026-08-25. That is recent enough to avoid describing the project as abandoned, but recent commits alone do not establish that mobile releases are current. The listed releases are `v3.0.0-beta9` from 2023-05-08, `v3.0.0-beta8` from 2023-04-29, and `v3.0.0-beta7` from 2023-04-23. All three are beta releases, and the README does not identify a current stable release or explain the channel used by the Google Play and F-Droid builds.

This creates a real upgrade question for an application tied to an external platform. The README states that Twitter API changes can break Fritter and that continued updates are needed. It does not document release cadence, migration behavior, database upgrades, minimum Android or iOS versions, or whether local bookmarks survive application updates. An adopter therefore has to check the version supplied by the chosen store and any release notes attached to that version.

The MIT license permits use, modification, distribution, and private derivative works under its conditions, including preservation of the copyright and license notice. That is favorable for code reuse, but it does not remove operational costs. Twitter compatibility work, mobile platform changes, translation maintenance, and possible local-data migration still require technical effort. The README says translations are managed through Weblate and that the project accepts code, translation, bug reports, and other contributions.

Editorial conclusion

Fritter fits mobile users who prioritize local bookmarks, a no-tracking claim, and a dedicated Twitter interface. It is a weaker choice for anyone who needs a documented server deployment, current stable releases, or a fully explained account and API configuration path. Before adoption, verify the build available from Google Play or F-Droid, confirm that its Twitter access method still works with your account, and check whether the features you need are present in that release rather than in the project roadmap.

Frequently asked questions

Does Fritter track users or store tweets locally?

The README states that Fritter performs no tracking and keeps all data local. It also says bookmarks remain available offline, but it does not define which app data are encrypted or retained.

How do I install Fritter on Android?

The README links to Google Play and F-Droid for the Android application `com.jonjomckay.fritter`. It does not document a command-line installation method or manual build procedure.

Can Fritter read saved tweets without an internet connection?

Yes. The README says bookmarks save tweets locally and offline. It does not state whether attachments and every part of a saved tweet remain available offline.

Does Fritter support Mastodon, Nitter, desktop use, or notifications?

The README lists Mastodon support, restored Nitter support, desktop support, and notifications as possible work funded through donations. They are not presented as completed features.

Official sources

  1. jonjomckay/fritter on GitHub
  2. License: MIT
  3. Project website
  4. README
  5. Releases
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/jonjomckay-fritter.svg)](https://hysenlabs.com/projects/jonjomckay-fritter)

Was this useful?