FreshBit Join the test

Case study/Product and UX/UI design

Designing a news app that checks first.

FreshBit went from a written plan to an app on an iPhone in about two days. This is how the problem, the research, the structure, the design system and the motion came together, and what changed after testing on a real phone.

Design and build
Nagules Gobi, with AI-assisted development
Platform
iPhone, iPad, Mac
Timeline
About two days
Status
TestFlight build 11
Running cost
$0 a month

01/Problem

Too much news, too little certainty.

Design and dev news is spread across dozens of company blogs, changelogs, press sites and community feeds. Most aggregators show everything at once: rumours next to official announcements, the same story five times, and gossip mixed in with real product news. It’s hard to tell what actually happened.

The goal: one calm feed, refreshed through the day, where every story carries a label that says how sure it is.

Constraints set on day one

Free to run

No paid AI, no paid servers. It runs for $0 a month.

No sign-in needed

Sign in with Apple came later, and only as an option.

Several updates a day

Checks every 30 minutes, publishes only when something new passes.

Easy to spell

A coined name of 8 letters or fewer, with a free domain.

02/Research

What can a phone honestly promise?

The first question wasn’t visual. A news app can’t promise that something is true. It can say who published it and how many independent sources agree. That set the vocabulary for the whole product.

A source audit, tier by tier

Every feed was checked by hand before it was added, and each one got a trust tier. Official sources count as confirmation on their own. Press needs company. Community sites only add weight.

TierWhat it isCountExamples
1 · OfficialCompany blogs, changelogs, release notes30OpenAI, Google DeepMind, Figma, Apple Developer, GitHub Changelog, Material Design, WebKit
2 · EstablishedPress and expert publications18NN/g, Smashing Magazine, UX Collective, A List Apart, The Verge, InfoQ
3 · CommunitySignals only, never published alone3Hacker News, Lobsters, Product Hunt

Words matter: “Verified” became “Confirmed”

The first build labelled stories Verified. That promised more than any app can check. It was renamed Confirmed by trusted sources, which says exactly what happened: trusted sources published it.

Naming, checked live

The brief: a coined word, at most 8 letters, English, feeling “fresh, fast, curious”, with a free .app or .com domain. Two rounds explored compound names and invented words, and every domain was checked live.

DaybitNewsbitFreshBitDayzipDevpulseDaydropBriefdayScoopySpryoZinoraGlimloKurioLumioNuvraZesti

FreshBit won: fresh news in small bits, with a nod to code. It’s easy to say and spell.

03/Structure

Four tabs, every screen one tap from a story.

The tab bar holds the four places people return to. Everything else is pushed on top and comes back with the back gesture. Alerts and the widget open straight into a story or the brief.

04/Design system

Swiss minimal, with one loud colour.

Content first: system type, a quiet green-grey palette, and lime saved for “fresh” moments like the Confirmed badge, the active filter and the brand mark. Every text pair passes WCAG AA in light and dark.

Brand lime#C8F550
Fills only
Ink#0E1A12
Text 16.7:1
Background#F6F8F3 / #0B120D
Text 27.3:1 / 7.8:1
Link#3D6600 · 6.8:1
Reported7.1:1 / 9.4:1
CategoriesDesign · UX/UI · AI · Dev

Type

Screen title
Montserrat 34/700
Today
Hero headline
title2 22/700
Introducing Gemini 4 Hydrogen
Card headline
headline 17/600
Why are we cloning Photoshop?
Summary
body 17/400
Swipe a story left to hide it.
Meta
footnote 13/500
Google DeepMind · 19h ago · 3 sources

Reading text uses SF Pro with Dynamic Type, so it follows the size each person sets on their iPhone. Montserrat appears only in the brand title and the large “Today”.

Spacing, radius, elevation

  • Spacing scale 4, 8, 12, 16, 20, 24, 32 pt. A 16 pt screen gutter and 12 pt between cards.
  • Corner radius: card 20, image 14, chips and badges fully rounded.
  • No shadows in dark mode. In light mode, a 0.5 pt hairline and the softest shadow.
  • Touch targets at least 44 × 44 pt.

Three rules

  • Never use lime for text on a light background, or for large areas.
  • Never show a credibility state with colour alone: always an icon and a label.
  • No emoji as icons. SF Symbols only.
FreshBit design system sheet: colour tokens, badges, category chips and four early screens.
The first design system sheet, made before the app. Later builds kept the tokens and moved to Apple’s native tab bar and forms.

05/Components

Small parts that carry trust.

These are working copies of the app’s components, in the page’s current theme.

Credibility badges

Pill, 12 pt semibold, symbol plus label. Tapping a badge in the app opens the reasons for its score.

Category chips

The dot is never alone: it always sits next to the topic name. The selected chip turns lime.

Story cards and states

Compact card, the same card after it’s been read (dimmed), and the credibility meter from the story screen. Stories without an image get a calm tile in their topic colour with the leaf, never a broken box.

Feed markers

06/Logo

A leaf that is also a slash.

Four icon concepts, each a different construction, all tested at 16 px, in one colour and with no hidden background shape.

Leaf Bit · chosenA pixel square shaped like a leaf. The cut is the leaf’s vein and the / from code.
New BitA small square popping out of a big one, like a new story arriving.
The fA lowercase f whose crossbar ends in a separate square.
Rising DotsThree dots growing toward the newest story.

Leaf Bit looked most like an app icon and stayed clear at the smallest sizes. It was rebuilt as a layered icon in Apple’s Icon Composer, a leaf layer plus a bit layer, so iOS 26 renders it with Liquid Glass in the default, dark, clear and tinted styles.

The FreshBit app icon in four iOS appearances: default lime, dark, clear and tinted purple.
One layered icon, four iOS appearances.

07/Motion

Movement that explains, then gets out of the way.

Each motion answers a question: did my tap land, where did the header go, what just arrived. With Reduce Motion on, all three turn into short fades.

Expo Simulators

Expo Blog · 2h ago

Press feedback

Cards scale to 0.98 over 120 ms with an ease-out, plus a light haptic on save. No layout change.

TodayThu 12 Nov · 48 confirmed

The folding header

The title folds into a Liquid Glass leaf. Tap it and it morphs into a compact bar. In the app, SwiftUI draws the morph, so it follows Apple’s own springs.

New stories arrive

A pill slides down from the top. Tapping it scrolls up and shows them. The feed never jumps on its own.

08/Iteration

Tested on a real iPhone, fixed from screen recordings.

The app was installed through TestFlight and reviewed from screen recordings of real use. FreshBit went through 11 TestFlight builds during the project. The biggest changes:

  1. The folding header went native.It started as a bouncing custom animation. It now uses Apple’s Liquid Glass morph, so it feels like the system.
  2. The tab bar shrinks to the corner.The feed was rebuilt so iOS can follow its scrolling and minimise the tab bar like Apple’s own apps.
  3. Settings rows line up like iOS Settings.Pickers were moved to SwiftUI’s own labelled rows: label on the left, choice on the right.
  4. “Verified” became “Confirmed by trusted sources”.To be precise about what the app can and can’t promise.
  5. Lime stopped being text on glass.Lime on the light tab bar measured about 1.2:1. Light mode now tints the selected tab in the dark brand green (6.8:1).

09/Build

Designed and built end to end.

FreshBit was built with AI-assisted development, starting from a written plan with a zero-cost version, then in phases: brand, logo, design system, backend, app, then feedback rounds.

App

Expo SDK 58, React Native, Expo Router with native tabs, and native SwiftUI components through @expo/ui.

Backend

Supabase on the free plan: Postgres with row-level security, Edge Functions and scheduled jobs.

Matching

Rare-word matching plus free meaning search with vector embeddings. No paid AI anywhere.

Also built: a branded share card, haptics throughout, offline saved stories, iPad and Mac layouts with a comfortable reading width, and a Home Screen and Lock Screen widget that arrives in the next build.