[](https://github.com/FTStuff/FTStore/releases)
[](https://github.com/FTStuff/FTStore/releases)
[](https://github.com/FTStuff/FTStore/blob/main/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**](https://github.com/claration/Feather)
> by Samara / [claration](https://github.com/claration), licensed under **GPL-3.0**.
> All credit for the original application goes to its authors. FTStore rebrands it as
> `app.ftstore` / [ftstore.app](https://ftstore.app) and has since developed
> independently, syncing from upstream only occasionally.
## Repository layout
FTStore is a monorepo holding every half of the product:
| Path | What it is |
|------|------------|
| [`ios/`](./ios) | The iOS/iPadOS app — the Swift fork of Feather. Xcode project, submodules and local Swift packages. Requires macOS + Xcode. |
| [`web/`](./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](./web/README.md). |
| [`manager/`](./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/`](./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](./admin/README.md). |
| [`scripts/`](./scripts) | Fork tooling: the scripted rebrand and the upstream sync. Both act on `ios/` only. |
| `app-repo.json` | The app's 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.
### Features
- User friendly, and clean UI — built for "normies".
- Sign and install applications.
- Supports [AltStore](https://faq.altstore.io/distribute-your-apps/make-a-source#apps) 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](https://github.com/tealbathingsuit/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](https://github.com/FTStuff/FTStore/releases) and get the latest `FTStore.ipa`.
## How does it work?
Visit the [HOW IT WORKS](./ios/HOW_IT_WORKS.md) page.
## Building
### The app (`ios/`)
An Xcode/Swift project — requires macOS + Xcode. Clone with submodules:
```sh
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:
```sh
cd FTStore/manager
make iphoneos # builds FTStore-Manager.ipa into ./packages
```
### The console app (`admin/`)
No submodules and no Swift packages — just Xcode:
```sh
cd FTStore/admin
make # builds FTStore-Admin.ipa into ./packages
```
### The server (`web/`)
Docker, no Xcode needed:
```sh
cd FTStore/web
docker compose up -d
```
The dashboard is then at . Full setup, storage and
backup docs live in [web/README.md](./web/README.md).
## Upstream tracking
FTStore is a **hard fork** of [claration/Feather](https://github.com/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`](./.upstream-sync.json) so it can be diffed against when
we choose to, via [`scripts/sync-upstream.sh`](./scripts/sync-upstream.sh); the
rebrand stays reproducible through
[`scripts/apply-rebrand.sh`](./scripts/apply-rebrand.sh).
`web/`, `manager/` and `admin/` never came from upstream at all. See
[AGENTS.md](./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](https://github.com/claration) - The maker of Feather, which FTStore is based on.
- [idevice](https://github.com/jkcoxson/idevice) - Backend for builds with this included, used for communication with `installd`.
- [*.backloop.dev](https://backloop.dev/) - localhost with public CA signed SSL certificate
- [Vapor](https://github.com/vapor/vapor) - A server-side Swift HTTP web framework.
- [Zsign](https://github.com/zhlynn/zsign) - Allowing to sign on-device, reimplimented to work on other platforms such as iOS.
- [LiveContainer](https://github.com/LiveContainer/LiveContainer) - Fixes/some help
- [Nuke](https://github.com/kean/Nuke) - Image caching.
- [Asspp](https://github.com/Lakr233/Asspp) - Some code for setting up the http server.
- [plistserver](https://github.com/nekohaxx/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](https://github.com/FTStuff/FTStore/blob/main/LICENSE).
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.