Back to journal

Designing for Stillness

It's easy to design an exciting app. It's much harder to design one that disappears. Notes on the small decisions that, together, make Drimin feel calm.

Most product design taxonomies still default to "engagement." How long was the session? How many screens did they hit? How many notifications did they open? The implicit assumption is that more of you, in the app, more of the time, is the goal.

Drimin's goal is the opposite. Each interaction should be measured in seconds. Each notification should be the last one we need to send. Each screen should feel less like a destination and more like a glance.

That ambition pushed back on a surprising number of "best practices."

The orb, not the ring

We started, of course, with a progress ring. Everyone starts with a progress ring. It's clean, instantly legible, and Material gives you one for free. The problem is that a ring is a statistic. It tells you a number. It doesn't reward you for crossing it.

We replaced it with a custom-painted orb: a circle filled with a soft cyan gradient, rising in a slow sine wave. When you log a sip, the waterline lifts by a believable amount and the wave's amplitude scales with how much room is left. At 100% the wave stills, which is a satisfying little metaphor we did not plan and now refuse to give up.

Implementation-wise it's a CustomPainter with one AnimationController looping every four seconds, hand-drawn in Dart's canvas API. No image assets. No Lottie. The whole thing weighs nothing and re-renders only when its three inputs actually change.

One floating button

The first version of the home screen had a "Quick add" section with a row of preset chips and a custom input. It worked, but it stole the show. The orb felt like a chart; the chips felt like a calculator. People scrolled past the orb to get to the buttons.

We pulled the chips out and put a single FAB in the bottom-right corner. Tap it and a bottom sheet slides up with the same presets (and an "Other…" for custom amounts). The orb gets to be the headline again, and the most common interaction — log a default cup — drops to a one-tap, half-second gesture from anywhere in the app.

The pause before the haptic

When the user logs a sip, three things happen: the database write, the orb refill, and a tiny haptic tick. We initially fired all three in parallel because, well, why wouldn't you? The result felt mechanical. Snap, snap, snap.

We added a 120 ms delay before the haptic. Just enough that your eye sees the wave start to rise before you feel the tick. The same animation, with a sliver of breathing room. People described the "after" as feeling "smoother" — even though, on a millisecond level, less was happening per unit time. Stillness has texture.

The bar chart that doesn't lie

Statistics screens are where well-meaning apps quietly start to deceive. Empty days get dropped from the chart. Daily averages are computed only over days with data. The success rate omits the days you didn't open the app.

Drimin's stats are built from a fixed grid: every day of the current calendar week or month, padded with zeros where there's no data. The average is total ÷ days, not total ÷ "days you logged." If you skipped Tuesday, Tuesday is a flat bar. It's a small choice, but it's a moral one. The app's job is to reflect your behaviour back to you, not to flatter it.

The breakdown rotates with you

Below the bar chart sits a "Breakdown" list — one row per day. We tried chronological order. We tried reverse chronological. Both felt off: when you open the app at 2 p.m., you don't care that the week starts on Monday; you care about today.

The list now rotates: today is always row one, then tomorrow, the day after, and so on, wrapping back through this week. On a Friday you see Fri → Sat → Sun → Mon → Tue → Wed → Thu. On the 17th of the month you see 17 → 18 → … → 30 → 1 → … → 16. The chart stays in its natural left-to-right time order so trends remain readable; the list adapts to where your attention actually is.

Dark navy, not pure black

AMOLED-black backgrounds are dramatic but they're also tiring. Every UI element has to fight for separation against an absolute void. We landed on a deep navy (#0B132B) as the base and use two slightly lighter shades for elevation steps. The eye reads it as "night" without feeling like a power-saving cave.

The accent colour rides on top of that. The default is a glacier aqua (#3DC2FF) chosen to look like water under a pier light. Drimin offers eight accent swatches and Material You — but the water gradient that fills the orb stays the same regardless. The orb is the brand; everything else can change.

Reminders that know when to leave

Most reminder apps treat the schedule like a contract: every two hours, every day, forever. The most useful behaviour change we made to Drimin was teaching reminders to stop. By default, the moment you hit your daily goal, the reminders for the rest of the day are cancelled. You don't need to be nudged about something you're already doing.

On top of that, a DND window — typically your sleep hours — silences reminders without you having to remember to flip a switch each evening. The combination is small, but it's the difference between an app that respects your day and one that intrudes on it.

Animations as punctuation

Every animation in Drimin is short and reversible. The orb wave breathes. The bottom sheet rises with a soft spring. The "0-day streak" pill scales in with a 240 ms cubic-out. Nothing spins for the sake of spinning. Nothing celebrates a milestone loudly enough to make you wince in a meeting.

Stillness, it turns out, isn't the absence of motion. It's motion that doesn't ask for anything back.


What we're still working on

Drimin isn't finished — software never is. The next few iterations focus on:

None of those features will require a network. All of them will start as a small, considered detail rather than a category-expanding pivot. That's the whole project, really: keep the orb still.

An app you'll feel, not notice.

Drimin is the boring upgrade your day was waiting for.

Our Network

Offline Finance
Trenziq
Premium Essentials
IBULUXE
Technology
VoBot Developers
Pharma
Plasma Biotech
NGO / CSR
Jigyasa Foundation
Travel & Hotels
PGH
Publications
Grasp