WorkSidelyn

Personal · 2026 · Sports

Design and development

Sidelyn

An NFL confidence-pick app for friends, inspired by a game I heard on Jacksonville sports radio.

Sidelyn’s confidence-pick and live game screens, shown with sample league data.
My role
Product design, branding and development
Team
Me, working with Claude Code
When
2026 · October
Platforms
iOS, Android

Visit Sidelyn’s website, opens in a new tab

Live on Google Play
Android
Submitted for App Store review
iOS

The 30-second version

Problem
The hosts of Jaguars Today make confidence picks on air. It sounded like they were tracking the game manually, and I wanted to build a digital version.
What I did
I designed the product and brand and built native iOS and Android apps with Claude Code. Players join a private league, rank their picks and follow what live scores mean for their points.
Result
Android is live on Google Play. The iOS app is submitted and awaiting App Store review. I tested the app on an iPhone and a Google Pixel.

The game I wanted to digitize

I listen to Jaguars Today, a sports radio show in Jacksonville. The hosts make confidence picks on air. From listening, it seemed like they were doing the tracking manually. That was the starting point for Sidelyn.

In a confidence pool, you pick the winner of each game and give each pick a different point value. Your strongest pick gets the most points. A correct pick earns those points; a miss earns none. Sidelyn handles the picks, kickoff locks and scoring for a private league of up to 12 people. There is no money involved.

My role

I handled the product design, branding, iOS and Android apps, and backend in tandem with Claude Code.

The iOS app uses SwiftUI and the Android app uses Kotlin and Jetpack Compose. Both connect to the same Firebase backend.

Keep the invitation through sign-up

Someone arriving from a league invite already has a place to play. The app keeps that invite through authentication and profile setup, then joins the league without sending the person through the separate create-or-find-a-league step.

For someone without an invite, joining or creating a league remains part of onboarding. These are separate paths in the app’s onboarding logic.

Make a pick, then set its weight

Choosing a winner and assigning confidence are part of the same sheet. The available point values sit below the teams, and the next matchup is one tap away.

The weekly review shows the picks together so a player can compare their confidence before the games start. Each game locks at its own kickoff; the rest remain editable.

Key decisions

01 / 03

Team identity without team logos

The call
Use team colors across the cards, with names and abbreviation badges instead of logos.
Why
I did not have the rights to use team logos. Color let me give each matchup a recognizable identity within that constraint. A gold ring and checkmark identify the selected team, alongside its name.
Tradeoff
The colors also carry meaning elsewhere in the interface. The selection needs a visible shape and label so it remains clear on every team’s card.

02 / 03

Put the consequence beside the score

The call
Show the points tied to a pick and what the current result would mean for the player’s week.
Why
A score tells you who is winning the game. In a confidence pool, you also need to know how much that result matters to your position. The game sheet puts the projection directly below the score.
Tradeoff
The interface needs distinct states before kickoff, while games are live and after they finish. A projection cannot read like a final result.

03 / 03

Enforce the lock outside the phone

The call
Use the server’s clock for the kickoff cutoff and keep other players’ pick documents private. Reveal picks through the league’s week data after kickoff.
Why
A disabled control alone cannot enforce a fair game. The same cutoff and privacy rules need to apply to both apps.
Tradeoff
The backend has to handle the reveal and final results as well as the screens. I kept those rules in Firebase rather than relying only on the interface.

Follow what the score means

Game day changes the job of the main screen. It shows the league’s points and position alongside live games and any picks still open. Opening a matchup adds the projected points and how the league split its picks.

The screens below use sample league data from the existing design exports. Their scores and member counts demonstrate the interface, not app usage.

One set of game rules across both apps

The interface carries the same rules through iOS and Android: each pick has a confidence value, each game has a lock time, and opponents’ choices stay hidden until kickoff.

Firestore rules check the owner of a pick and the server’s time before allowing a write. Cloud Functions publish revealed picks and completed results. The native apps read that shared state.

Results

As of October 28, 2026, Sidelyn is live on Google Play. The iOS app has been submitted and is waiting for App Store review. I tested the app on an iPhone and a Google Pixel.

These are delivery milestones. Usage, retention and usability results are not included in this case study yet.

Live on Google Play
Android
Submitted for App Store review
iOS

Reflection

The next question is how this holds up for a group over a full week: joining, making every pick and following the games. That needs observation of people using it. The design reviews and my device testing do not answer it.