Shakiba

Shakiba

Year

Year

2025 to 2026

2025 to 2026

Shakiba Today screen with every routine done and the day at 100%
Shakiba History: each day coloured by how much was done
Shakiba Today screen part way through the day
Shakiba Stats with a 16-day streak

The project itself:

Project Overview

Shakiba is a habit tracker for iPhone that I researched, designed and built myself. It’s live on the App Store. Most habit apps are built around streaks. When a streak breaks, people feel they failed and stop opening the app. Shakiba is designed to bring them back: rest days don’t break your streak, you choose how much of your day counts, and there’s no account or signup.

Problem:

Most habit trackers are built around streaks. Miss one day and you’re back to zero, and many people stop opening the app. Of the apps I reviewed (Streaks, Habitica, Done and Finch), none combined a calm, native-feeling design with flexible routines.

Goal:

Design a habit tracker that feels at home on an iPhone: calm, quick to start and forgiving. Get people to their first routine in under 30 seconds, show progress without punishing a missed day, and work with no account or subscription.

My role:

Everything, end to end: research, information architecture, UI, the design system, and building and shipping the app with Claude Code. Self-initiated, with no brief.

Key decisions:
  • Dark is the main look, with light mode for anyone who wants it. Data stays on the phone, which means no sync between devices but also no signup. Today is the home screen, because the job is finishing today’s routines.

All about the user:

User Research

I reviewed Streaks, Habitica, Done and Finch, then interviewed people who had tried and dropped at least two habit apps. None of them quit for lack of willpower. They quit because the app made them feel they had failed. That set the design goal: work on your best day, and still welcome you back after your worst.

Pain Points

Streak anxiety:

Missing one day felt like losing everything. Several people stopped opening their app after a broken streak, even though they still wanted the habit.

Setup friction:

Most apps asked for an account, a survey or categories before showing anything useful.

Visual mismatch:

People with Notion, Spotify or Fantastical on their home screen said habit trackers looked out of place next to them. They felt like work software.

User Journey Map

From first launch to a full week of routines, built from the interviews and test sessions.

I mapped where people got stuck (an empty screen on first launch), where they gained confidence (ticking off the first task) and where they dropped off (no way back after a missed day). Those three moments shaped onboarding and the streak rules.

Goal

Build a daily routine that fits real life, with no account and no starting from zero after one missed day.

Shakiba user flow: first launch goes through picking routines and setting times to day one. Every day: Today, ticking tasks to 100%, then History, Stats and You

The project schematically:

Starting the Design

I started with one rule: a new user should finish something within 30 seconds of opening the app, with no account and no survey. That one constraint removed most standard onboarding. I explored several ideas in low fidelity, picked one and tested the core loop before choosing colours or type.

Sitemap

Four tabs: Today, History, Stats and You. Every daily action starts from Today.

Onboarding → Today → History → Stats → You. Adding, editing and archiving routines all happen in sheets on top of Today, so you never lose your place.

Shakiba sitemap: onboarding on first launch, then four tabs. Today has sheets for adding a routine, routine options and the calendar. History, Stats and You

Low-Fidelity

Early wireframes for Today, adding a routine, History and Stats.

I sketched several directions in low fidelity and tested two layouts for Today: a plain list, like Reminders, and cards grouped by routine. People preferred the cards. They felt like their own routine, and less like a to-do list. I took that direction forward.

Low-fidelity wireframe of the Today screen with Morning Workout and Deep Work sections
Low-fidelity wireframe of the Today screen with Morning Workout and Deep Work sections
Low-fidelity wireframe of the Add Section sheet with templates such as Workout, Deep Work, Reading and Mindfulness
Low-fidelity wireframe of the Add Section sheet with templates such as Workout, Deep Work, Reading and Mindfulness
Low-fidelity wireframe of the History screen: a month grid showing how complete each day was
Low-fidelity wireframe of the History screen: a month grid showing how complete each day was
Low-fidelity wireframe of the Stats screen with the current streak and a daily completion chart
Low-fidelity wireframe of the Stats screen with the current streak and a daily completion chart

Usability Studies

Unmoderated sessions on the low-fidelity prototype, focused on getting started, reading Today and adding a routine.

I ran unmoderated sessions with students, professionals and freelancers. Three findings changed the final design.

Empty state:

Several people didn’t know what to do on a blank Today screen. So onboarding now starts with picking routines from templates, and Today is never empty.

Adding a habit:

It took four steps, and some people gave up halfway. I cut it to the essentials: a name, a time and days, with tasks optional.

Progress at a glance:

People couldn’t tell how much of the day was done. Today now shows a percentage at the top and a line like “6 more tasks to hit your 80% goal”.

The clear version:

Refining Design

I designed dark first. Dark screens have a hierarchy problem: borders look harsh and shadows barely show. I used layered surfaces instead, each a little lighter than the one behind it, and kept green for one job: showing progress. The more of your day you finish, the brighter it glows.

Mockups

Onboarding, the daily loop and progress, in the order people meet them.

Row one is onboarding: pick routines, set times, and land on day one with a short tip. Row two is the daily loop: tick tasks, edit one day or every week, finish the day. Row three is progress: History, Stats, your profile and milestones.

Shakiba welcome screen: pick your routines
Shakiba welcome screen: pick your routines
Onboarding with three routines picked
Onboarding with three routines picked
Set Your Schedule: a time and days for each routine
Set Your Schedule: a time and days for each routine
First day, with a short tip on how streaks work
First day, with a short tip on how streaks work
Today screen part way through the day, 44% done
Routine options: edit this date only, edit all Thursdays, or the default schedule
Today screen with every routine done and the day at 100%
Today screen with every routine done and the day at 100%
History: each day coloured by how much was done
Stats: a 16-day streak with the best streak and the goal
Stats: the 30-day chart, the 7-day trend and each routine
You: profile with streak and totals
You: profile with streak and totals
Milestones and the daily goal setting
Milestones and the daily goal setting

Light and dark

One set of colour tokens, two themes.

Both themes come from one set of colour tokens. In dark mode the green brightens as you finish more of your day. In light mode it deepens. Text colours are checked for contrast on their own, so labels stay readable on every shade.

Shakiba Today screen in dark mode
The same Today screen in light mode

The real app

A 40-second walkthrough of the live app.

I built it myself with Claude Code, connected to Google’s open-source Material Design system, so the app used real components from day one. Building it myself meant I could try an idea on my phone, keep what worked and drop what didn’t.

  1. Opening the app, onboarding, finishing a day, then History, Stats and milestones.

The project schematically:

Outcome

Shakiba is live on the App Store for iPhone. It takes a new user from first launch to a first ticked routine with no account and no survey.

Takeaways

What designing a 0→1 consumer mobile app taught me.

The 30-second rule:

Setting a 30-second limit for onboarding made many decisions for me. Accounts, surveys and category pickers didn’t fit, so they went. Dark-first was a positioning choice: the people I interviewed kept Spotify and Fantastical on their home screens, and Shakiba had to sit well next to them.

What I learned:

Building it myself changed how I design. Edge cases I once would have left to engineers, like rest days, a missed day or a damaged backup file, became design work. And keeping everything on the phone kept the product simple.

Next Steps

What I’d build next.

Cloud sync:

Optional sync across devices, keeping no-account as the default.

Safer edits:

Today, changing a routine’s days also changes how past days are scored. I’d save each schedule with its dates, so your history stays as it was.