Open-source project
insidegui/WWDC avatar
insidegui/WWDC

insidegui/WWDC: the unofficial WWDC app for macOS, and what it costs to build it yourself

Project brief: The unofficial WWDC app for macOS. Watch the Keynote and Platforms State of the Union live, as well as the videos for all sessions released during WWDC week and other video content you can find on Apple's website or Developer app.

8,745 stars768 forksSwiftBSD-2-Clause

At a glance

What is it?
The unofficial WWDC app for macOS plays Apple's conference sessions, live streams and transcripts on your own Mac, with bookmarks and iCloud sync. It is a Swift project you can download as a release or compile with Xcode 16, and its last push was on 2024-06-07.
Who is it for?
Adopt it if you watch WWDC sessions on a Mac and want transcripts, bookmarks and progress in one place, or if you want to read a real Swift app split into ConfCore, ConfUIFoundation and PlayerUI. Do not adopt it if you need a maintained release train: the last push was on 2024-06-07 and version 7.5 is the newest release.
Can I use it commercially?
Yes. BSD-2-Clause 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 104 days ago.
What is it written in?
Mainly Swift, according to GitHub's language statistics.

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

DEEP OPEN-SOURCE ANALYSIS

What the unofficial WWDC app actually replaces

Apple publishes WWDC session videos on its developer website and in the Apple Developer app. This project puts the same content in a native macOS window, which matters if you watch sessions at a desk and want to keep notes next to the video. The README frames the goal as watching "the Keynote and Platforms State of the Union live, as well as the videos for all sessions released during WWDC week and other video content you can find on Apple's website or Developer app".

The audience is narrow but real. You need a Mac, you need to care about WWDC sessions, and you need to prefer a local app over a browser tab. The app tracks what you have watched, what you favorited and what you bookmarked, and iCloud sync moves that state between Macs when you enable it in preferences. None of this is conference infrastructure. It is a viewing client with a memory.

How ConfCore, PlayerUI and the WWDC API fit together

The repository splits into three internal libraries plus the main app target. ConfCore is described as the part that "deals with Apple's WWDC API, data storage, caching, syncing and transcripts (everything that has to do with data, basically)". ConfUIFoundation holds shared colors, fonts and extensions used by the app target and PlayerUI. PlayerUI contains the video player UI and general-purpose components.

That separation is the most interesting engineering decision in the project. Network calls, caching and transcript indexing sit behind ConfCore, so the player does not talk to Apple's API directly. Data is stored and cached with Realm, and the README notes a fork of realm-swift that swaps a `target` for a `binaryTarget`, with a pointer to PR 732 if that causes trouble. Sync uses CloudKitCodable, networking uses Siesta, and Sparkle handles automatic updates. There is also a top-level TranscriptIndexingService directory, which is consistent with the README's claim that transcripts are searchable.

The README does not describe the shape of Apple's WWDC API, the caching policy, or how transcript indexing is scheduled. If you want to understand the data flow in detail, you read ConfCore.

Installing the app and building the WWDC scheme

If you only want to watch sessions, the README points at the releases page: "If you just want to download the latest release, go to the releases page". The newest release listed is 7.5 from 2024-06-07, preceded by 7.4.2 and 7.4.1 in June 2023.

Building from source is a different job. The README states that building requires Xcode 16 or later, and that you should clone the branch and run the bootstrap script before opening the project. The script asks for your Apple Developer team ID so it can configure the project, and it installs swiftlint with brew if it is missing.

bash
./bootstrap.sh

After that, open the project and build the `WWDC` scheme, not the one with iCloud in its name. The README is explicit: "Always use the `WWDC` scheme when building (the one that doesn't mention iCloud in its name)." Because the app uses CloudKit, a self-built copy has all CloudKit-related functionality disabled, so iCloud sync will not work in your build.

During development you can wipe preferences and stored data with a script, which the README warns deletes favorites, bookmarks and video progress.

bash
./cleardata.sh

There is also `./cleardebugdata.sh` for use with `-WWDCUseDebugStorage YES`. Both are destructive, and the README says so plainly.

What the last push on 2024-06-07 means for a 2026 conference

The repository is not archived, but the last push was on 2024-06-07, which is the same day as the 7.5 release. That is more than six months before today, so this is not an actively developed project in any meaningful sense. The release history supports the same reading: 7.5 in June 2024, and before that 7.4.2 and 7.4.1 in June 2023. The pattern looks like a burst of work around WWDC week, then quiet.

For a viewer app that talks to Apple's WWDC API, that cadence is a risk. Apple changes its developer site and video endpoints, and a client built against an older API surface can break in ways the project has no recent commits to fix. The README does not document what happens when the upstream API changes, and it does not describe a fallback data source. If you build it yourself, you are the maintainer of your copy.

The same applies to the toolchain. Xcode 16 or later is required per the README, and a project that has not been pushed since June 2024 may need work to build against newer Xcode releases. That is a guess about the future, but it follows from the dates.

Bookmarks, clip sharing and the limits of the feature set

Bookmarks are the feature that distinguishes this from a plain video player. You create a reference point inside a video, attach an annotation, and the README says annotations are considered during search, so you can find a moment you marked earlier. Clip Sharing exports a segment of up to 5 minutes, which is the practical way to send a snippet to someone who will not watch a full session.

Playback supports 0.5x, 1x, 1.25x, 1.5x, 1.75x, 2x and custom speeds, plus fullscreen and native picture-in-picture. Transcripts are searchable and available in multiple languages, and the README says you can jump to a specific point in the video from the transcript.

Shared links are universal links that redirect to Apple's developer website. If a Mac with the app installed opens one, it opens in the app; the README adds that the links are compatible with iOS devices using the Apple Developer app. The app is not a replacement for the Apple Developer app on iPhone or iPad, and the README does not claim otherwise.

The Apple Developer app as the alternative

The obvious alternative is the Apple Developer app, which the README itself names as a source of the same video content and as the destination for shared links on iOS. The difference is in approach rather than catalogue. Apple's app is first-party, ships on Apple's schedule, and is the thing the WWDC API is built for.

This project's value is the parts Apple's app does not offer on macOS in the same form: local bookmarks with annotations folded into search, a 5 minute clip export, custom playback speeds, and a codebase you can read and modify. It is also a Swift sample of a real app split into data, shared UI and player modules.

The cost is that you depend on a project whose last push was on 2024-06-07. If Apple's app covers your needs, it is the lower-risk choice for watching sessions. If you want bookmarks tied to search or you want to study the architecture, this is the one to build.

Licence, upgrade cost and the Realm fork

The project is BSD-2-Clause, a permissive licence that allows modification and redistribution with the copyright notice and disclaimer retained. That is a reasonable fit for a viewer app you might fork. It says nothing about the licences of the dependencies: Realm, Sparkle, CloudKitCodable and Siesta each carry their own terms, and the README does not list them. Check those separately before redistributing a build.

The upgrade cost is the part worth planning for. The README flags a fork of realm-swift that swaps a `target` for a `binaryTarget`, with a note to consider switching back to the normal realm-swift if it causes trouble, pointing at PR 732. That is a maintained divergence from upstream, and it is the kind of thing that gets harder to unwind over time.

Sparkle means the released app updates itself, but a self-built copy is your responsibility. There is a `resetSync.sh` script in the repository root, and the README does not document what it does or when to run it.

Editorial conclusion

Adopt it if you watch WWDC sessions on a Mac and want transcripts, bookmarks and progress in one place, or if you want to read a real Swift app split into ConfCore, ConfUIFoundation and PlayerUI. Do not adopt it if you need a maintained release train: the last push was on 2024-06-07 and version 7.5 is the newest release. Before building, check that ./bootstrap.sh accepts your Apple Developer team ID and that the WWDC scheme builds without CloudKit.

Frequently asked questions

What does insidegui/WWDC need to build?

The README states that building requires Xcode 16 or later, and that you should run ./bootstrap.sh before opening the project. The script asks for your Apple Developer team ID and installs swiftlint with brew if it is missing.

Does insidegui/WWDC sync favorites and bookmarks between Macs?

Yes, when you enable iCloud sync in preferences, favorites, bookmarks and session progress sync across your Macs. However, the README notes that a build you compile yourself has all CloudKit-related functionality disabled.

Which scheme should I use when building insidegui/WWDC?

The README says to always use the WWDC scheme, the one that does not mention iCloud in its name. Using the iCloud scheme is not what the build instructions call for.

Official sources

  1. Official documentation
  2. Official README
  3. Project repository
  4. Release notes
For maintainers

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/insidegui-wwdc.svg)](https://hysenlabs.com/projects/insidegui-wwdc)
Community notes

Community notes