i thought the hard part was the math - smack app

Self-initiated Solo

Live ↗

It started with a TikTok

I was scrolling one night when a video stopped me. A teacher stood at a whiteboard and asked a simple question. What is three minus seven? The student went quiet. They could not answer it.

I wish I could say it was a one-off. But I see it around me all the time. Friends, kids in my neighborhood, people who are smart and capable, freezing at arithmetic they should have learned years ago. The more I noticed it, the more it bothered me. This is not about intelligence. It is about practice, and somewhere along the way the practice stopped.

So I started asking a question that had nothing to do with code. Why do some people become fluent with numbers while others never do?

tiktok problem

What actually makes us learn

I went down a rabbit hole on the internet. I read about how memory works, how skills form, and why some things stick while others slip away. That is when I found neuroplasticity.

The idea is simple and a little beautiful. Your brain is not fixed. Every time you repeat something the right way, it builds and strengthens the connections behind it. Recall gets faster. Effort turns into instinct. Nobody is born knowing that seven times eight is fifty six. They just practiced it enough that it became automatic.

Repetition was the answer. But I knew from my own life that repetition alone is not enough. Throwing random hard problems at someone just makes them give up.

The Kumon idea

Then I remembered something from my own childhood. Kumon.

Kumon worksheets do not throw everything at you at once. They meet you exactly where you are, give you short focused drills, and only move you up when you are ready. The difficulty follows you. That was the missing piece. Repetition matters, but repetition at the right level is what builds real fluency without burning you out.

I decided that whatever I built had to work this way. Practice tuned to each person, getting a little harder only when they could handle it.

kumon stage level

Building Smack

That is how Smack was born.

Smack is a web app built around a simple loop. One hundred questions. A running clock. You go. Behind that loop sit sixteen levels that climb from basic addition all the way to division, each one a small step harder than the last. There are streaks and daily progress so practice feels less like homework and more like something you want to return to. And because not every kid has a reliable connection, I added backup that needs no account, something you can save and send over WhatsApp in seconds.

I built the whole thing myself. The design, the frontend, the backend, all of it. I used AI as a tool to move faster, but every architecture choice and every hard decision was mine. The frontend runs on SvelteKit with Svelte 5 and Tailwind. The questions come from a small Go function on Vercel. The hardest parts were the ones nobody sees. Every question has to be valid, so division stays whole, subtraction never drops below zero, and each level follows its own rules. I also wanted it to work with no database at all, so I built an offline first data layer that can back up, restore, and merge progress across devices. I was learning a brand new stack the entire time, which meant reading source code instead of tutorials.

The first test was at home

The real test was never a benchmark. It was my younger sibling.

I gave them Smack, and something happened that I did not expect. They kept opening it. Not because I asked, but because the streak pulled them back the next day, and the day after that. Watching that loop work on someone in my own home told me more than any number could. It also changed how I think about software. It is one thing to ship features. It is another to make someone want to come back.

But I also started seeing what was missing. The interface works, but it was not truly designed for a seven-year-old. And the streak and progress data that should feel like a reward, it does not persist the way it needs to yet. Those are not engineering problems. They are design problems, and I do not know enough about UI and UX to solve them well. That is the thing I most want to learn next, how to build something that a child can pick up without being shown, and how to make progress feel real and worth protecting.

smack overview

Software for one kid at a time

Today Smack is live, and it is built for any student who wants to gain back their basic math.

The biggest lesson surprised me. The hard part of a learning tool is not the math. It is the motivation. Getting someone to come back tomorrow is a design problem and a human problem far more than an engineering one. I started out trying to fix arithmetic. What I really built was a small piece of personal software, made for the people right around me, and that turned out to be the part that mattered most.