Skip to content
founder storyClaude CodeAI developmentindie app

I Built an App That Asks You to Close It. Here’s Why.

A marketer with zero Swift experience, two months of building with Claude Code, and one stubborn idea about what your phone owes you.

By Supratim DamFebruary 202626 min read
ShareXLinkedIn

The Morning That Started It

I was sitting in my apartment in Madrid, scrolling through nothing.

Not looking for anything. Not reading anything. Just moving my thumb in that practiced little upward flick. A headline about a war. A meme about a dog. An ad for protein powder. A friend’s vacation. Another war. Another dog. Another ad.

Twenty-three minutes disappeared. I know because I checked Screen Time afterward, its own special kind of irony: using a screen to measure how much screen you wasted.

I put my phone down and stared at the ceiling. Not in some dramatic existential-crisis way. Just in the ordinary, slightly defeated way that most of us stare at ceilings in 2026. And a thought arrived, uninvited, the way good thoughts tend to.

What if an app only wanted two minutes of your day?

Not two minutes as a starting point. Not two minutes as a gateway to twenty. Two minutes as the whole thing. The entire product. The complete experience.

What if you opened an app, read one single thought, decided whether it meant something to you, and then the app essentially told you: that’s it, go live your life.

That thought refused to leave. So I spent the next two months building it, with Claude Code, Anthropic’s AI coding agent, as my engineering partner.

The app is called One Good Thing. And if you’re reading this, there’s a reasonable chance it’s already on your phone by the time you finish.


The Problem Nobody Talks About at Dinner

Here’s a number that should bother you more than it does: the average person spends six hours and forty minutes per day looking at a screen. That’s from Exploding Topics, pulling from global tracking data, and it hasn’t gone down in three years. It’s gone up.

But the number isn’t the interesting part. The interesting part is what fills those six hours and forty minutes. Because most of it isn’t productive. Most of it isn’t entertaining. Most of it is what I’ve started calling dead scrolling: the hand moves, the eyes scan, and the brain registers almost nothing. You’re not consuming. You’re not creating. You’re not even relaxing. You’re just present, in the worst possible sense.

The digital detox market has noticed. It’s now a billion-dollar industry, projected to grow at over 24% annually through 2035. People are buying apps to help them stop using apps. They’re paying for retreats that confiscate their phones. A survey by ExpressVPN found that 46% of Gen Z respondents are actively taking steps to limit their time online.

There’s clearly a hunger here. But I noticed something odd about most of the solutions. They’re built on restriction. Lock your phone. Block your apps. Set timers. Punish yourself with guilt notifications when you go over.

It’s the digital equivalent of putting a padlock on the refrigerator. It might work for a week. It doesn’t change what you’re hungry for.

I wanted to try something different. Instead of building a wall between you and your phone, what if I built something genuinely worth the two minutes it took, and then got out of the way?

Not restriction. Replacement. Give people something actually good, and they won’t need to be told to stop scrolling. They’ll stop because they already got what they came for. (There’s a famous jam study that proved this twenty-six years ago. I think about it more than is probably reasonable.)


What One Good Thing Actually Is

The concept is almost offensively simple.

Every day, you open the app. There’s one card waiting for you. A headline of no more than ten words. A body of no more than 120 words. Sometimes a conversation starter at the bottom: “Who came to mind?” or “Worth sharing?”

You read it. You decide: Carry or Let Go. Carry means you save it to your collection. Let Go means you release it. Both are valid. Both are respected. Neither is right or wrong. (If you are curious what carrying an idea for a day actually does, we wrote about the science behind it.)

Then you close the app.

That’s it. That’s the whole thing. There is no feed. No archive of yesterday’s cards you can browse when you’re bored. No “more like this” button. No social graph.

One card. One thought. One moment of genuine attention. Under two minutes. Every day.

The product is not the content. The product is the pause.

I need to say that again because it’s the most important sentence in this entire essay. The card is just the mechanism. What you’re really getting is two minutes where your phone asks nothing of you except to think. No likes to give. No comments to write. No profiles to check. Just a thought, hanging in white space, waiting for you to do something with it.

And then the app tells you to leave.

The product is not the content. The product is the pause.


The Research That Took Longer Than the Code

Here’s what most people don’t realize about One Good Thing: the content took more time than the engineering. Significantly more.

The easy version of this app would have been to scrape the first page of Google for “inspirational quotes” and “daily affirmations” and call it a day. There are tens of thousands of those. They fill Instagram captions and motivational posters and the kind of wellness apps that make you feel vaguely better for three seconds before the feeling dissolves.

I didn’t want that. I wanted cards that would actually change how someone sees their Tuesday.

So I went down rabbit holes. Deep ones. I read about evolutionary biology and why humans are wired to remember bad news more than good. I worked through mathematical paradoxes, the ones that feel like they shouldn’t be true but are, because they reveal something about how our brains construct certainty. I spent days in philosophy and psychology, not the pop-psychology kind but the original sources. Kahneman’s actual papers. Stoic letters. Buddhist concepts that have no direct English translation. I looked up historical anecdotes, not the famous ones, but the strange, overlooked ones that make you say “wait, really?”

I read about mental models that change how you make decisions. About cultural lenses, the ways different societies answer the same fundamental questions about identity, obligation, and meaning. About the science of being: what neuroscience says actually happens in your body when you forgive someone, or sit with genuine uncertainty, as opposed to just saying you’re fine with it.

The content spans twelve categories. Reframes. Quiet Truths. Honest Contradictions. Philosophy and Psychology. Science of Being. Cultural Lenses. Language Moments. Mental Models. Historical Anecdotes. Questions to Sit With. Evolutionary Biology. Mathematical Paradoxes.

Each one needed its own research approach. Its own sources. Its own answer to: what would make a person stop and think, “I’ve never considered that before?”

The writing was a collaboration between me and Claude Code, but a specific kind. I did the heavy lifting: the research, the sourcing, the conceptual framing, the editorial judgment about what’s worth someone’s two minutes. It helped me polish the body copy, tighten the language, keep the tone consistent across a library that spans evolutionary biology and mathematical paradoxes in the same breath. The ideas were mine. The taste was mine. The “this isn’t good enough, try again” was mine. Claude was the editor. I was the writer.

It took months. It was the most intellectually demanding work I’ve ever done. And the library keeps growing, because the research never stops and the rabbit holes only get deeper.


The Thread (Or: How I Fixed the Worst Idea in App Design)

I need to talk about streaks, because they’re everywhere and I think they’re quietly making people miserable.

Every app that wants daily engagement uses them. Open the app 47 days in a row and you get a badge. Miss a day and the counter resets to zero. Duolingo does it. Snapchat does it. Meditation apps do it. It works because loss aversion is the most powerful motivator in behavioral psychology.

But nobody in product design seems to want to say this out loud: streaks are anti-motivation.

They start as encouragement. Then they become obligation. Then they become anxiety. You’re not opening the app because you want to learn Spanish or meditate, you’re opening it because the number would disappear if you didn’t. And when the streak breaks, because you were sick, or traveling, or just living a life that doesn’t revolve around an app, the guilt lands immediately. The most common response? People stop entirely. The streak was the only thing keeping them there, and once it broke, so did the relationship.

I replaced streaks with something called the Thread.

When you open One Good Thing on consecutive days and read the card, a Thread begins. It’s a subtle visual element, like a continuous pen stroke drawn in real time, that gets longer and more detailed the longer you keep showing up.

Miss a day and the Thread doesn’t break. It ends. Gracefully. No reset counter. No guilt notification. No red anywhere on the screen.

And then the next time you return, a new Thread begins.

This is the part I want you to sit with: new Threads being created is not a failure state. It’s a feature.

Open the Threads tab and here’s what you see: a visual timeline of your engagement over weeks and months. Some Threads are long, stretching across two or three weeks. Some are short, just two or three days, from that week when life got complicated. What you’re looking at isn’t a scorecard. It’s a portrait of your curiosity over time. And every person’s portrait looks different, because every person’s life looks different.

The underlying psychology is identical to streaks, loss aversion still operates, daily habit reinforcement still works. But the emotional experience is entirely different. A streak asks: “How long can you go without failing?” A Thread asks: “What does your curiosity look like over time?”

Same lever. Different outcome. That’s what ethical design looks like when you actually care about the person holding the phone.


How Claude Code Turned a Marketer Into an iOS Developer

Let me tell you about my professional background, because it’s relevant for what comes next.

I’m a marketer. I’ve been one for more than nine years. I’ve founded and sold a creative media agency, worked in product marketing for SaaS companies, managed millions in paid media budgets, run SEO operations across a dozen markets, and led growth for startups to scaleups.

What I have never done, not once, is write a line of Swift. No computer science degree. No bootcamp. What I had was Claude Code and a very clear picture of what I wanted to build.

And yet, One Good Thing is a native iOS app. Written in Swift. Built with SwiftUI. Firebase for authentication and cloud data. SwiftData for local persistence. StoreKit 2 for subscriptions. WidgetKit for home screen widgets. ActivityKit for Live Activities on the Lock Screen and Dynamic Island. WatchConnectivity for syncing with Apple Watch. PostHog for analytics. Custom Canvas-drawn illustrations. A server-side personalization algorithm running on Cloud Functions. A full landing page with scroll-triggered animations. An email system with lifecycle emails. Built for accessibility from day one.

Over 34,000 lines of code across 209 files in five languages. Nine development batches, then a tenth for features I thought were post-launch. Seven builds before App Store submission.

I built all of it in two months, not counting the research. Then kept going because the features I’d planned for “someday” turned out to be buildable now. Claude Code wrote the Swift, the TypeScript, the CSS. I made every design and product decision. And I could not have built any of it two years ago.


The Great Leveler (And Why the Moat Has Moved)

Here’s what changed: tools like Claude Code stopped being a curiosity and became a collaborator.

The numbers are well-documented. In 2025, 84% of developers were using or planning to use AI tools. By 2026, that number has pushed past 92%. Collins Dictionary named “vibe coding” its Word of the Year for 2026. A fifth of Y Combinator’s Winter 2025 batch had codebases that were over 90% AI-generated.

But the breathless headlines about AI coding miss what actually matters: the code is no longer the moat.

Anyone can ship now. A CMO who’s never touched Swift can put apps on the App Store. A college student can build a SaaS over a weekend. The barrier to entry for software has dropped so fast the ground is still shaking.

I’m proof of that. I described features to Claude Code in plain English. “I want a floating card with a heart icon for Carry and a water-drop for Let Go.” It wrote production-grade SwiftUI. Not prototypes. Not demos. Code that passed App Store review.

So the question has changed. It used to be: “Can you build it?” Now it’s: “Is it worth using?”

And that question has nothing to do with code. It has everything to do with design.

Design is the new moat.

When everyone can build, the differentiator is how it feels. How it moves. How much space it gives you to breathe. Whether the typography was chosen with intention or pasted from a template. Whether the interaction design respects your time or quietly manipulates it.


The Design Decisions That Define Everything

I kept coming back to one idea while building this app: what you leave out defines you more than what you put in.

So I’ll walk you through the decisions that actually mattered.

The color palette is called Sage and Stone. Parchment, Linen, Sage Wash, Deep Sage, Forest Night. No pure white anywhere in the app. No pure black. Everything lives in this warm, organic space between, inspired by old paper, dried herbs, and the particular light you get in a room with linen curtains.

The typography is deliberate. EB Garamond for headlines and editorial content, because serif fonts carry the weight of ideas in a way sans-serif can’t. DM Sans for interface elements, because when something needs to be functional, it should look functional. Cormorant Garamond Light for the wordmark, because the name should feel like it was written by hand, not stamped by a machine.

The illustrations are drawn in code. Not imported images. Canvas-drawn SwiftUI shapes, rendered at 12% opacity behind the card content. A person sitting cross-legged. A door slightly ajar. Two faces in conversation. They’re deliberately imperfect, deliberately incomplete.

Forty percent of the Today’s Card screen is whitespace. Not a compromise. The most important design decision in the whole app. The card breathes. There’s room around the thought for your own thoughts to arrive.

There is no persistent tab bar. Most apps have that row of icons at the bottom, always visible, always pulling you somewhere else. One Good Thing doesn’t. Today’s Card is all there is. Your collection lives behind a swipe up. The architecture keeps you with the one thing that matters: today’s thought.

Every one of these was a small act of rebellion against how apps are supposed to work. Apps maximize engagement. I minimize it. Apps create habit loops. I create a single moment. Apps are supposed to be sticky. One Good Thing is Teflon. Read, decide, leave.

What you leave out defines you more than what you put in.


The App Learns You (Quietly)

One thing worth mentioning, without overstating it: the app pays attention.

Every time you Carry or Let Go, that signal quietly shapes what you’ll see in the weeks ahead. If you consistently carry cards about evolutionary biology and let go of historical anecdotes, the app notices. Over time, more of what resonates finds its way to you, without a settings page or a preference survey.

It also makes sure you’re never stuck in a loop. Even as it learns what you love, it keeps introducing you to categories you haven’t explored yet. The point isn’t to feed you what you already agree with. The point is to balance the familiar with the unexpected.

You’ll never see this machinery. There’s no “personalization settings” screen. The app just quietly starts to feel like it knows you.


Your Collection Is a Mirror

When you Carry a card, it goes into your collection. After a month, you might have 10 to 15 saved thoughts. After six months, 80 or more.

Here’s what nobody expects: your collection tells you things about yourself.

The cards you carry in January are different from the ones you carry in June. The patterns reveal what you were worried about, what you were curious about, what was quietly shifting in how you see the world. It’s not a journal. You didn’t write anything. But it’s a portrait nonetheless, assembled one decision at a time.

This is the real switching cost. Not a subscription. Not data lock-in. Not a social graph you can’t recreate elsewhere. The switching cost is meaning. Your collection is personal in a way that would be genuinely hard to walk away from, not because I made it difficult to export, but because it means something.

That’s the only kind of retention I’m interested in building.


Lost Thoughts (And Why Scarcity Is a Gift)

Miss a day and you can’t go back to see what you missed.

This sounds punitive. It’s actually the opposite. It’s a relief. Because if you could always go back, you’d feel the pressure to go back. Every missed day becomes a debt. The app becomes another source of guilt, which is the last thing anyone needs.

Instead, I built Lost Thoughts. Once a week, one missed card is resurfaced at random. Just one. You can carry it or let it go, same as any other card.

The scarcity makes it feel like a gift. You didn’t earn it. You didn’t grind for it. It just returned, like a thought you’d forgotten, arriving at exactly the right moment.


The Conversation Starter (The Feature That Makes You More Interesting at Dinner)

Two or three times a week, a card includes a conversation starter at the bottom. If the headline is “Forgiveness is selfish,” the starter might be: “Do you think forgiving someone is more about them or about you?”

This is the feature that separates One Good Thing from every meditation app, every journaling app, every mindfulness tool on the market. Because those apps are solitary. You sit alone, breathe alone, journal alone. There’s nothing wrong with that.

But One Good Thing gives you something to bring to other people. A question for the dinner table. A text to send to a friend you haven’t talked to in a while. A small spark that turns a quiet evening into an actual conversation.

The app becomes a bridge, not a cocoon.

Forgiveness is selfish.

We frame it as grace. As moral strength. As the bigger-person move. But research in affective neuroscience suggests something more self-interested: holding a grudge activates your stress response on loop. Forgiveness doesn't release the other person. It releases you.

Carry · Let Go

Do you think forgiving someone is more about them or about you?


The True Collaboration (And the Loneliness Nobody Warns You About)

There’s something I should say here, because this essay would be incomplete without it.

Building One Good Thing was the best professional experience of my life. It was also, by a wide margin, the loneliest.

There’s a particular kind of isolation that comes with solo projects. You have no one to celebrate the small wins with. No one to commiserate when something breaks at midnight. No one to look at your work and say, “This is good, keep going.”

For two months, my primary collaborator was Claude Code. And I mean that without any irony or self-deprecation. Working with it was genuinely the most productive I’ve ever been on a creative project. Not because it did the work for me. Because it did the work with me.

I’d describe a feature in plain English. Claude would write the Swift. I’d look at it, not understanding every line, but understanding the intent, the architecture, the flow. I’d test it. Something wouldn’t feel right. I’d describe the feeling, not the technical problem. And we’d iterate until it did.

Pair programming, in the truest sense. A human with vision and taste, working with patience and precision. I don’t know how I’d go back to working any other way.

But here’s the thing about that collaboration: at the end of every session, you close the laptop and the room is quiet. There’s no team Slack to post updates in. No standup tomorrow morning. No design review on Thursday. Just you, and the thing you’re building, and the hope that it’s good enough.

Two months of this. Some days exhilarating. Some days deeply quiet. All of them, in retrospect, necessary.


The Numbers Behind the Philosophy

One Good Thing costs free forever, with premium features from €1.99 per month. Or €39.99 once for lifetime access.

People have asked why so cheap. The app looks like it costs €10 a month. The design, the typography, the illustrations, the animations, the whitespace. It has the feel of something expensive.

I just didn’t see the point in charging more.

€1.99 is an impulse price. You don’t need to think about it. You don’t need to compare it to your other subscriptions. It’s less than a coffee in Madrid. And the lifetime option is there for the people who want to pay once and never think about it again. Given that the app is about reducing mental clutter, that seemed like the right thing to offer.

The business model is simple. No ads. No data selling. No sponsored cards. No premium tier that gates the good stuff behind a higher paywall. You get everything. One card per day. Your collection. Your threads. Your conversation starters. Your widget.

That’s it. €1.99. I won’t even send you a guilt trip if you cancel.

No ads. No data selling. No sponsored cards.


Why Solo Projects Matter Now

I built One Good Thing alone. No co-founder. No engineering team. No investors telling me to add a social feed because engagement metrics would look better.

And this isn’t just the indie developer story.

The things that make One Good Thing good, the restraint, the whitespace, the refusal to add features, those decisions are almost impossible to make in a team.

In a team, someone suggests push notifications for missed cards. Someone builds an explore tab. The whitespace gets filled with something “useful.” The conversation starter becomes a full chat feature.

Being solo meant I could protect the product from the instinct to add more. And protecting a product from more is the hardest design discipline there is.

The tools exist now for this kind of project. Claude Code for engineering, not just writing code, but understanding architecture, debugging at midnight, and iterating on design details until they felt right. Serverless backends. Cloud functions that handle email delivery and user authentication without a DevOps team. One person can genuinely build, ship, and operate something that competes with funded teams.

One person. A MacBook. A lot of coffee. Claude Code. And the stubbornness to keep building until it felt complete, not minimal, but genuinely complete.

But then again, nobody asks for the things that end up meaning the most. They just recognize them when they arrive.


The Words I Never Use

Every brand has a voice document. Most are about what to say. Mine is mostly about what not to say.

I never use the word “journey.” Never “hack,” “optimize,” “crush it,” “self-care,” “manifest,” “hustle,” “grind,” “unlock,” or “level up.” Never “content” or “consume.” Never “wellness” as a buzzword. Never “mindful” as an adjective that means nothing.

Instead: Carry. Thought. Sit with. Curious. Thread. Collection. Quiet. Notice. Pause.

The words you choose tell people who you are. I’m a person who built a quiet app that respects your time, your intelligence, and your ability to decide for yourself what’s worth holding onto. I don’t coach you. I don’t motivate you. I don’t track your progress toward some externally defined goal.

I hand you a thought. You decide what to do with it. That’s the whole relationship.

Even the error states are philosophical. Instead of “Error: no data available,” you’ll see: “Some days, the best thought is the one you’re already carrying.”

Because if you’re going to interrupt someone’s day with a message, it should be worth reading. Even the error messages.


Who This Is For

I’ll be specific.

One Good Thing is for people who are tired. Not tired in the “need more sleep” way. Tired in the “tired of every app wanting more of their attention” way.

It’s for adults between 25 and 45 who feel overstimulated by social media and news. People who appreciate good writing, good design, and moments of stillness. iPhone users who value premium experiences and are willing to pay for quality.

It’s for the person who reads more than they post. Who sends articles to friends with the note “this made me think of you.” Who has tried meditation apps and found them too demanding, and journaling apps and found them too empty, and just wants something small and beautiful and done in two minutes.

It’s for couples who want something to talk about at dinner that isn’t logistics. For friends who share meaningful things. For people exploring philosophy, psychology, and introspection casually, not as a practice, just as a part of being alive.

If any of that sounds like you, the app is at onegoodthing.space.


The Features That Built Themselves

I had a roadmap for what would come after launch. Journal prompts. Monthly reflections. Live Activities. Community signals. “Version 2” features. Things that would take months to build once the core was stable, once there were users.

Then Claude Code and I built all of them before submitting to the App Store.

Journal prompts. After carrying a thought, a quiet single-line text field appears: “What did this bring up?” No multi-line editor. No character count. Just a small space for a few words. Your entries appear below each carried card in your Collection, giving it a depth that surprised even me.

Monthly reflections. On the first open of each new month, a full-screen reflection appears. A heatmap of which days you showed up. A breakdown of which categories resonated most. Your longest Thread. “Here’s what you noticed this month.” Not a report card. A mirror.

Live Activities. When you open the app but haven’t acted on today’s thought yet, the headline appears on your Lock Screen and in the Dynamic Island. A gentle, persistent reminder. It disappears the moment you carry or let go.

Community signals. After you act on a card, a quiet line appears: “73% of readers carried this thought today.” Anonymous. No names, no profiles, no social features. Just a number that tells you other people are pausing too. You can turn it off in Settings.

Apple Watch sync. Today’s card data syncs to the Apple Watch companion, so the thought reaches you on the device you glance at most. Carry or let go from your wrist.

None of these features were planned for launch. They exist because the tools made it possible to keep building, and because each one felt like it belonged. When adding a feature takes hours instead of weeks, the line between “Version 1” and “Version 2” disappears.

When adding a feature takes hours instead of weeks, the line between Version 1 and Version 2 disappears.


What Happens Next

The content library keeps growing. New cards are researched and written on an ongoing basis, rooted in philosophy, psychology, neuroscience, and the kind of rabbit holes that make you late for dinner. The app knows how to introduce them at the right time.

The roadmap is quiet. No plans for a social feed. No plans for a premium tier. The app will get better in small, deliberate ways: an iPad version, an Android port, shared cards on the web. All of it built the same way, me and Claude Code, iterating until it feels right.

But the core will never change. One card. One thought. Under two minutes. Close the app.

I sometimes get asked what success looks like for One Good Thing. It’s not a download number. It’s not a revenue target.

It’s this: somewhere, someone opens the app in the morning, reads a card about evolutionary biology or a mathematical paradox or a quiet truth they’d never considered, sits with it for ninety seconds, decides to carry it, sends it to a friend they haven’t talked to in months, and closes the app.

Then they go live their day. And the thought stays with them. Not because the app reminded them. Not because a notification pulled them back. But because it was genuinely worth carrying.

That’s one good thing. That’s the whole point. One founder story, one tool called Claude Code, and one stubborn belief that your phone owes you something better.


One Good Thing is available for iPhone at onegoodthing.space.

Free forever. Premium from €1.99 a month, or €39.99 once.

Questions? Get in touch.

ShareXLinkedIn

THINKING STYLES

What kind of thinker are you?

12 questions. No right answers. One surprisingly accurate result. Find out whether you're a Lens Shifter, a Still Observer, a Paradox Mind, or one of nine other patterns.

Take the free quiz

Supratim Dam

Marketer turned iOS developer. Built One Good Thing alone in two months from Madrid, using Claude Code and an obsessive amount of research. Previously founded and sold a creative media agency.

← Back to all posts