# Awesome Testflight App List: how the Y, F, N and D statuses work

> A public list of TestFlight beta links kept as markdown tables per Apple platform, where a single status letter and a last updated date are the only freshness signals you get.

**pluwen/awesome-testflight-link** — Collection of TestFlight public app links (iOS/iPadOS/macOS/tvOS).

- Repository: https://github.com/pluwen/awesome-testflight-link
- Website: https://awesome-testflight-link.vercel.app/
- Stars: 5,608 · Forks: 287
- Language: Python
- License: MIT
- Published: 2026-08-24 · Updated: 2026-08-24 · Language: en
- Canonical page: https://hysenlabs.com/projects/pluwen-awesome-testflight-link

## A row is four fields, and the status letter is the one that matters

Every entry in this project is one markdown table row, and the row shape never changes: a name, a TestFlight join URL, a single status letter, and a date. The letter decides whether the link is worth clicking. Y means the app is currently accepting new testers, F means it has reached its tester limit, N means it is not currently accepting testers, and D means the app has been removed from TestFlight. Those four codes are the whole status vocabulary the project uses. There is no waitlist count, no build number, no region, and no minimum OS version anywhere in the row.

```text
Y: Yes
F: Full
N: No
D: Deleted
```

Read the BeReal row, marked Y with a Last Updated of 2025-12-22, as: open as of that date, and nothing newer. The status letter is a snapshot, not a live query.

## The 317 app block counts open iOS betas, not all tracked apps

The iOS section opens with a collapsible block whose summary line reads Available (317 apps), and the same 317 is repeated on the line just under it. That number counts rows carrying Y in the iOS table. It is not the total number of iOS apps the project tracks. Apps that are full, closed, or deleted do not appear in that first block at all, so a name missing from the 317 is not evidence the list dropped it.

```text
| Name | TestFlight Link | Status | Last Updated |
| BeReal | [https://testflight.apple.com/join/IM4jE5XY](https://testflight.apple.com/join/IM4jE5XY) | Y | 2025-12-22 |
```

The README as it is captured here is cut off inside this available table, at an entry named Desperse. Dates in the visible rows run from 2025-12-22 for a cluster of long standing apps up to 2026-10-03 for the AdGuard adblock and privacy beta.

## Last Updated arrives in batches, so a date marks a sweep

Nothing in this project publishes a feed, an API endpoint, or a machine readable mirror of the tables, so freshness is a number you read out of a cell. The Last Updated column is the only recency signal there is, and it moves in batches rather than continuously. A large share of the visible iOS rows carry 2026-08-24. Another cluster carries 2025-12-22. Between those sit singletons such as Cheatsheet on 2026-10-02, CROON on 2026-09-25, and Dark Noise on 2026-09-19. The clustering is the honest tell: a row sharing a date with thirty others came from one sweep, so that date tells you when the sweep ran, not when that developer last shipped a build. A row with a unique recent date is the stronger signal in the table. Rows in between show a project that sweeps in waves rather than nightly: Accretion: The Vein and Azalea Pets sit on 2026-08-25 and 2026-09-01, while Booklook sits on 2026-09-17, Bulletide on 2026-09-07, and CharMap further back on 2026-02-09.

## data/ and scripts/ sit behind the tables, with no manifest to install

Underneath the README this is a small data project rather than a program you install. The top level holds .gitattributes, .github/, .gitignore, LICENSE, README.md, data/, and scripts/, and Python is the primary language in the repository.

```text
data/
scripts/
README.md
```

The entry list carries no package manifest, no install command, and no version file, so there is nothing to install, nothing to pin, and no command to run before you can read the data. The published reading surface is the README itself, mirrored as a site at awesome-testflight-link.vercel.app. The license is MIT. How a status letter gets assigned, and what runs inside scripts/, is not documented, so a fork that wants to change the freshness rules is reading code rather than following a written procedure.

## Signup Required Apps is a bucket, not a seventh platform

The navigation block at the top of the README is the project's entire taxonomy: iOS Apps, iPadOS Apps, macOS Apps, tvOS Apps, visionOS Apps, and Signup Required Apps. Five of those six are platforms. The sixth is not, and that is the one structural difference in the whole layout. Signup Required Apps collects betas you cannot reach from a public join link alone, which is precisely the set that would be dead ends in the platform tables.

```text
iOS Apps
iPadOS Apps
macOS Apps
tvOS Apps
visionOS Apps
Signup Required Apps
```

The project's own instructions run to three steps: jump to a platform from that navigation, look for apps carrying Available status, and check back regularly because statuses change frequently. That last step is the honest summary of the project, and it is also its main weakness, since a Y you read this morning is not a Y you can rely on this evening.

## A row cannot tell you what the build does or how many testers it takes

The list stops at four fields per app, and the gap between that and a real answer is large. It cannot describe the beta. A name such as Bloomwash, Watercolor Studio, hints at a category and says nothing about stability or how far along the app is. It cannot report a tester cap either: F tells you the limit was reached, never what the limit was. It offers no search field, no filter, and no sort other than the order rows were added, so a reader hunting for one named app scrolls a table by hand. And the project publishes no releases, so there is no version of the dataset to diff against or roll back to. The last push on the repository was 2026-10-04, and that date is the only currency this has. Treat a Y row as a lead worth clicking, not as a fact about the app.

## Conclusion

Use this list when you want a fast answer to one question: is this named beta still open. It is a reference table, not a discovery tool, so it will not tell you what a build does, how stable it is, or what the tester cap was, and there is no search, no sort, and no release to roll back to. Click a Y row, then treat the Last Updated date as the real limit on that claim.

## FAQ

### What is TestFlight used for in this list?

It is the distribution channel behind every row. The project collects public TestFlight app links for iOS, iPad OS, macOS, tvOS and visionOS, and tracks whether each beta is still accepting new testers.

### How to get a TestFlight link from this project?

Pick your platform from the navigation, then open the join URL in the TestFlight Link column of a row whose Status is Y. Rows marked F, N or D will not get you a tester slot, and the Last Updated date tells you how fresh that Y is.

### Is TestFlight free or paid here?

The project is MIT licensed and every entry is a public TestFlight join link, so nothing in the list sits behind a purchase. Whether an individual developer charges for a beta is outside what the list records.

### What are some public TestFlight links in the collection?

The iOS Available block holds 317 apps, including BeReal, AnyList, AdGuard VPN, and Cell to Singularity, each with its own join link and a Y status. The same four column layout repeats for iPadOS, macOS, tvOS and visionOS.

## Sources

- [Official documentation](https://awesome-testflight-link.vercel.app/)
- [Official README](https://github.com/pluwen/awesome-testflight-link#readme)
- [Project repository](https://github.com/pluwen/awesome-testflight-link)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/pluwen-awesome-testflight-link
