Files
FTStore/README.md
T
Felitendo 84ecb7f9fd style: drop em-dashes from everything a user reads
They read as machine-written, and they were everywhere: catalogue keys and
their translations, alert and error text in all three apps, dashboard copy,
toasts, API messages and the log lines the dashboard renders.

Each one is rewritten rather than swapped for a different dash, because a
sentence that reached for an em-dash almost always wanted a full stop, a
comma or a colon.

Two things stay, and the rule in AGENTS.md says so: a bare dash standing in
for an empty value, which is a glyph rather than prose, and source comments,
which nobody reads in the product.
2026-08-05 14:11:03 +02:00

7.4 KiB

FTStore icon

FTStore

GitHub Release GitHub Downloads (all assets, all releases) GitHub License

FTStore is Feather, made for everyone. It lets you install and manage iOS/iPadOS applications contained in a single app, using certificate pairs and various installation techniques, wrapped in a friendlier experience aimed at normal users, with more features on the way. This is an entirely stock application and uses built-in features to be able to do this!

Note

FTStore is an open-source hard fork of Feather by Samara / claration, licensed under GPL-3.0. All credit for the original application goes to its authors. FTStore rebrands it as app.ftstore / ftstore.app and has since developed independently, syncing from upstream only occasionally.

FTStore

Repository layout

FTStore is a monorepo holding every half of the product:

Path What it is
ios/ The iOS/iPadOS app: the Swift fork of Feather. Xcode project, submodules and local Swift packages. Requires macOS + Xcode.
web/ FTStore Admin server: the Next.js server behind ftstore.app. Serves the admin dashboard at /admin, the ftstore.json feed, and IPA downloads. See web/README.md.
manager/ FTStore Manager: a small companion app that installs and updates FTStore on-device, pulling through the web/ proxy so no GitHub token ever reaches the phone.
admin/ FTStore Admin: the web/ dashboard as its own iOS app, for whoever runs the server. Behind the same login as the web UI; not something a normal user installs. See admin/README.md.
scripts/ Fork tooling: the scripted rebrand and the upstream sync. Both act on ios/ only.
app-repo.json The published AltStore source manifest, kept up to date by the release workflow.

Releases are tagged per product: v* for the app, web-v* for the server, manager-v* for the Manager, admin-v* for the console app. Every push to main publishes to the rolling dev prereleases; a stable build of the app or the Manager is cut on demand from Actions → Stable Release, which takes a product and a version and handles the tag, the release and the version bump.

Features

  • User friendly, and clean UI, built for "normies".
  • Sign and install applications.
  • Supports AltStore repositories.
  • View detailed information about apps and your certificates.
  • Configurable signing options mainly for modifying the app, such as appearance and allowing support for the files app.
    • This includes patching apps for compatibility and Liquid Glass.
  • Tweak support for advanced users, using Ellekit for injection.
    • Supports injecting .deb and .dylib files.
  • No tracking or analytics, ensuring user privacy.
  • Of course, open source and free.

Planned

  • App update notifications for installed apps.
  • More approachable onboarding and UX, plus additional features over time.

Download

Visit releases and get the latest FTStore.ipa.

Add AltSource Download .ipa

How does it work?

Visit the HOW IT WORKS page.

Building

The app (ios/)

An Xcode/Swift project, so it requires macOS + Xcode. Clone with submodules:

git clone --recurse-submodules https://github.com/FTStuff/FTStore.git
cd FTStore/ios
make            # builds FTStore.ipa into ./packages

Open ios/FTStore.xcworkspace in Xcode to develop.

The Manager (manager/)

Same toolchain as the app:

cd FTStore/manager
make iphoneos   # builds FTStore-Manager.ipa into ./packages

The console app (admin/)

No submodules and no Swift packages, just Xcode:

cd FTStore/admin
make            # builds FTStore-Admin.ipa into ./packages

The server (web/)

Docker, no Xcode needed:

cd FTStore/web
docker compose up -d

The dashboard is then at http://localhost:3000/admin. Full setup, storage and backup docs live in web/README.md.

Upstream tracking

FTStore is a hard fork of claration/Feather. ios/ is our codebase, not a tracking branch: there is no routine merge and no expectation that the trees stay aligned. Upstream is still pinned in .upstream-sync.json so it can be diffed against when we choose to, via scripts/sync-upstream.sh; the rebrand stays reproducible through scripts/apply-rebrand.sh.

web/, manager/ and admin/ never came from upstream at all. See AGENTS.md for the full workflow.

Forking hard does not loosen GPL-3.0: every attribution to Feather stays in place, and the source stays public.

Acknowledgements

  • Samara - The maker of Feather, which FTStore is based on.
  • idevice - Backend for builds with this included, used for communication with installd.
  • *.backloop.dev - localhost with public CA signed SSL certificate
  • Vapor - A server-side Swift HTTP web framework.
  • Zsign - Allowing to sign on-device, reimplimented to work on other platforms such as iOS.
  • LiveContainer - Fixes/some help
  • Nuke - Image caching.
  • Asspp - Some code for setting up the http server.
  • plistserver - Hosted on https://api.palera.in.

License

This project is licensed under the GPL-3.0 license, inherited from Feather. You can see the full details of the license here. FTStore preserves the original Feather copyright notices.

By contributing to this project, you agree to license your code under the GPL-3.0 license as well (including agreeing to license exceptions), ensuring that your work, like all other contributions, remains freely accessible and open.