Inspiration

I kept finding games the same way everyone does now: a trailer on YouTube, a clip on TikTok, a friend's Instagram story. Then I'd forget the name, miss the release date, and never actually play it. Food apps solved this years ago (share a recipe link, get a structured card) and Beli solved rating fatigue with head-to-head comparisons instead of star pickers. Nobody had done either for video games. Glogger is Beli meets a recipe-saver, for your game library.

What it does

  • Share-to-save. Share a YouTube, TikTok, or Instagram link straight into Glogger from the iOS share sheet. The extension resolves the clip, matches it to the right game, shows cover art and release date, and files it as Want to Play with one tap. The source clip stays attached to the game.
  • Beli-style ranking. No stars. After you finish a game you answer a gut reaction (Liked / Fine / Not for me), then a handful of head-to-head matchups against games you've already rated. Binary insertion means 4 to 6 taps even with a huge library, and every game lands on a 0 to 10 score that shifts naturally as your list grows.
  • A shelf, not a database. Your library renders as 3D game cases, platform-accurate (PS5, Switch, Xbox, PC big box), on real shelves. Flip a case to see a generated back cover. Sort by score, console, release date, or hype. Collections let you build your own shelves.
  • Never miss a release. A calendar with My Games and All Releases layers, countdown chips, a Next Drop hero on Home, and release dates that refresh automatically when they slip.
  • Steam import. Link your Steam account and pull in played games with hours, achievements, and completion percentage.
  • Home digest. This Week, Backlog Nudge, On This Day, Hype Check, Recently Added, and Player Stats, each hidden when it has nothing to say.
  • Onboarding that ends with a ranked list. New players connect Steam, add three games, and rank five before they ever see the tabs.

How I built it

  • iOS: native Swift 6 / SwiftUI on iOS 26, @Observable state, modern concurrency, a share-extension target, and an 8-bit Pac-Man arcade design system (Press Start 2P, maze-wall borders, pure black).
  • Backend: Supabase (Postgres, Auth with Sign in with Apple and Google, row-level security on every table, Edge Functions, cron). Edge Functions handle link resolution (oEmbed / OpenGraph to IGDB match), the IGDB proxy and cache, Steam OpenID linking and imports, and release-date refresh.
  • Game data: IGDB via the Twitch API, cached in Postgres with a curated featured shelf.
  • Ranking engine: a pure Swift rating engine with binary-search insertion and bucket-based score interpolation, covered by unit tests and run in GitHub Actions CI.

Challenges I ran into

  • Turning a messy clip title like "Grand Theft Auto VI Trailer 2" into the right IGDB record meant stripping noise words, generating candidate queries, and falling back gracefully when confidence is low.
  • Authenticating a share extension that has no user session, without exposing anything: the extension uses an app token matched server-side, with rate limiting per user or IP.
  • Making a whole bucket's ranking atomic. A single Postgres function applies the entire ordering in one round trip so a dropped connection can't leave a half-ranked list.
  • Steam's OpenID redirect has to reach an unauthenticated endpoint, so that one function verifies every other call's JWT itself.
  • Projecting six-sided 3D cases in SwiftUI with back-face culling and lighting, while keeping a shelf of dozens of them smooth.

Accomplishments that I'm proud of

  • The share sheet does the whole job in place: resolve, preview, save, done, without opening the app.
  • A rating flow that feels like a game and produces a list people actually agree with.
  • The shelf. It makes a library feel like something you own.
  • Shipped to the App Store.

What I learned

  • Pairwise comparison is a better interface than any numeric picker, but the math underneath (bucket ranges, mid-range scoring for lonely games, rescoring on insert) is where the product lives or dies.
  • Share extensions are a product surface, not a plumbing detail.
  • Release dates in games slip constantly. Refreshing them is a feature nobody advertises and everybody needs.

What's next for Glogger

  • Push notifications: release day, release week, date changed, and "you said you'd come back to this" reminders.
  • The social layer: follows, a feed of friends' rankings and reviews, played-with tagging, and taste match.
  • Xbox and PlayStation linking alongside Steam.
  • Android, sharing the same Supabase backend.

Built With

Share this project:

Updates

Submission history