So mum wouldn't abandon her needlework: a tracker with gentle gamification
Pet projects

So mum wouldn't abandon her needlework: a tracker with gentle gamification

A big piece of needlework looks motionless for a long time

Mum does cross-stitch. A large pattern is tens of thousands of stitches and months of work. In a single evening you can do quite a lot, yet the picture barely changes. When progress hides inside a huge canvas, it is easy to set the work aside and one day never come back to it.

She wanted to stitch a little every day and see how separate evenings add up into a finished piece. That is how the app was born. At first it answered only one question - "how much did I do today" - and then a monthly plan, statistics and game mechanics grew up around that single entry, mechanics that support the habit without pressure.

The evening ends with one honest entry

Each piece of needlework is set up as its own project with a total number of stitches. At the end of the evening mum records how much she did that day. The full picture builds from a sequence of such marks: how much is already behind, how much is left, and how fast the work is moving.

The "Today" screen
You open the app and immediately see the daily target and how much is already done.
Needlework as a project
For every piece you can see the total number of stitches, how many are done and how many remain until the end.
A calendar with no backdating
Entries are made on the same day, and past days are closed.
Statistics
From the evenings you have banked, the pace becomes clear: how the month is going, where she sped up, where there was a dip.
The day before yesterday's entry can no longer be rewritten

A closed day is counted in full: it has already earned the streak, a plant, a medal and achievements. Allowing backdating would mean unwinding that whole chain in reverse. It is simpler and more honest to leave it as it is, and then the calendar shows the real rhythm rather than a touched-up picture.

The monthly plan shows the pace, it does not set a deadline

For each piece a manageable monthly plan is set. The app shows the current pace: whether the work is on plan, ahead of it or behind. It is a reference point that shows where you stand inside a long project, not a date by which a hobby is obliged to turn into a completed task.

Projects have clear states: active work, finished and archive. So current patterns do not get mixed up with completed or set-aside ones, and the list does not turn into a dumping ground of half-started ideas.

The game should support you, not catch you in compulsion

The game layer was the most unfamiliar part for me: I mostly build websites, and here I was designing habit mechanics for the first time. From the very start there was a single constraint - the app had to stay a warm tracker. There are no points in it, no in-app currency, no leaderboards and no competing with others. Nothing that would make you open it just for another "spin of the wheel". A reward should bring joy, and a missed day should not turn into punishment.

The streak of days and freezing it. The app counts how many days in a row she has managed to stitch - the habit draws you in gently, on its own. But life happens, and a missed evening should not reset weeks of work to zero. That is why there is a "freeze": it forgives one missed day and kicks in automatically, and to keep it from becoming a loophole, it is available no more than once every thirty days. The streak continues, but honesty is preserved.

Monthly medals with a clear bar. At the end of the month the result for each piece is marked with a medal, and the bar is transparent - it is the share of the plan completed:

🌱 Sprout
Any progress at all - even if less than half the plan is done. She started - already well done.
🥉 Bronze
Half of the plan is done or more.
🥇 Gold
The month's plan is fully closed.
💎 Diamond
The plan is exceeded by half again.

The lowest medal is a "sprout", not an empty space: even a small contribution is acknowledged, and the situation of "you failed" simply does not exist.

The garden collects streaks, and the achievements are just for fun

A growing garden. Consistency turns into a living garden: the longer the streak, the higher the plant's level - twelve steps from a sprout and a blade of grass to a rose, a sunflower and a pine, and a full thirty days in a row give the biggest plant. When a streak breaks, the plant goes into the collection, and the garden banks them as a memory of the path travelled. Every plant has its own "log": when that streak happened, what the best day was, and which piece mum was working on at the time.

Achievements, many of them with humour. Besides the serious milestones - stitches, series, plans - there is a large collection of optional achievements, some of them hidden in the secret categories "Magic Numbers", "Dates and Times" and "Patterns and Rhythms". Some are about numerical coincidences: hitting exactly 777 in a day ("Jackpot"), 666 ("The Devil"), 314 ("The Number Pi"), making a palindrome or exactly 12,345 stitches in total. Some are tied to the calendar: checking in on Vyshyvanka Day, stitching on New Year's Eve, catching a Friday the 13th or the 29th of February. It does not affect the result - you stitch for yourself, and the achievements are just an excuse to smile and collect one more.

A linen canvas instead of a dashboard

I put the interface together not as a dashboard, but as a cosy thing to match the craft theme. The background is styled like linen canvas, the rewards sit on a "medal shelf", and the garden is not a list but living plants you can touch with your eyes.

A warm "Today" screen
A greeting by time of day and the task of the day - from "stitch 50 crosses in your most neglected project" to "pet the cat, and if there is no cat, pat yourself on the head". Opening the app is pleasant in itself.
Warm content with humour
Every day is met by different columns: the stitcher's horoscope ("Aries will start a new project today. No, not by finishing the old one"), a prophecy, a bad piece of advice ("Sleep is overrated. Cross-stitch is not"), an excuse, a diagnosis, a fact of the day and a fake quote from the greats ("One small cross for a person - a giant leap for cross-stitch" - Neil Armstrong). Cosiness instead of a dry tracker.
Your own profile and theme
An avatar with an uploaded photo and nine bottom-bar palettes with poetic names - "Linen Shirt", "Peony Petals", "Sage in Tea", "A Glass of Cabernet", "Midnight in Venice", light and dark. The app feels homely rather than official.

For all the mechanics, the daily action stays a single one: open the app from the icon on your phone, mark the stitches and immediately see the progress, the streak and the reward. An evening reminder gently points out that the streak is at risk, but does not turn into a stream of notifications.

The app has no separate "big" mobile program, and it does not need one: it lives right in the phone's browser, yet it installs as an icon and behaves like a real one. There is nothing to hunt for in an app store, and for me it saved a whole round of development for mobile platforms. I deliberately did not make a desktop version: nobody records their needlework at a computer, the whole point is for it to be at hand on the phone.

The most temperamental logic fires at the boundary of the day

Technically the app is small, but the game mechanics live in time and are constantly recalculated. The streak breaks and is restored at the boundary of the day, the freeze counts down its window, the medal sums up the result at the end of the month, and an achievement catches that in a single evening exactly a certain number was reached.

Logic like this is not enough to write once. There are many states that need to be counted correctly, correctly rolled back when conditions change, and checked separately. An ordinary form saves the value you entered; here one number reached or a new date can change the streak, the plant, the medal and several achievements all at once.

But the hardest part for me was not this, it was keeping the balance: the system has to show the result honestly and yet never once sound like a warden or a casino. I tested every mechanic against this question, from the freeze to the lowest medal. More than once I caught myself thinking it would be easier to make a strict tracker that pressures you with numbers - but that was exactly what I did not want. It seems that the whole project rests on this line between honesty and kindness.

A small project with well-familiar engineering tasks

The workshop has many large systems - portals, automation, computer vision. This project is far smaller, but underneath it are familiar engineering tasks: careful data collection, reliable storage, scheduled automation, notifications and an interface built for a real daily scenario. Here all of that works for the hobby of someone close to me.

That is exactly why I love this small project in a special way: it sells nothing and scales nobody. It takes a beloved pastime and carefully turns it into a process that is a pleasure to do every day. Registration in the app is open, and other stitchers are gradually using it - but its true measure of success is only one: does mum open it every evening?

This is not about productivity. It is about every evening at the hoop leaving a visible mark - and about wanting to sit down again tomorrow.

Oleksandr

Oleksandr

Fullstack developer with 8+ years of experience - from industrial automation and hands-on hardware integration to document workflows and chatbots. Currently focused on applied AI, from RAG-based conversational platforms to computer vision.

Our own project

This is our own project, so we show how it's built with nothing held back - down to the architecture and the code.