Nobody Told Me Building Software Would Feel Like This
There is a version of the "I built a startup" story that gets told a lot.
It has hard work in it. Pivots. Late nights. Lessons learned. It usually ends with some version of resilience — the founder who got knocked down, got back up, and kept going. It's a good story. But it’s missing the part that actually breaks you.
I want to write the part I don’t see anyone talking about in public.
AI lowered the bar to build software. It didn't lower the bar to survive
Right now, more people than ever are building software. AI and vibe coding have made it genuinely possible to bring an idea to life without a traditional engineering background or the insane amount of money it would take to hire this out. That's remarkable and I'm not here to discourage anyone from trying (or say that’s not a good way to go about it).
But there's something I want to be honest about for anyone who is in the early stages of building a SaaS product or thinking about it.
Building the thing is one challenge. Getting people to use it, keep using it, and pay for it month after month is a completely different one. And the emotional weight of that second challenge is something I don't think anything could have fully prepared me for.
Not the business books. Not the podcasts (trust me, I’ve listened to approximate 104 episodes of How I Built This). Not the "it's going to be hard" warnings from people who mean well.
Nothing.
Be ready for rejection at a level you have never experienced before
If you have run a small business, you know rejection. A potential client who goes with someone else. A proposal that doesn't land. A launch that gets quieter than you hoped.
That kind of rejection stings. You learn to carry it.
This is different.
When you build software, rejection is a daily thing. Sometimes hourly. And it does not care what kind of day you are having. It does not wait for a good moment. It just arrives (in your inbox, in your Stripe dashboard, as you jump in to reply to a customer service ticket) and it lands pretty much the same way every single time.
I’m talking about cancellation here.
Because even when things are going well, people still cancel. That is the part that took me a long while to truly accept. You can be building something people genuinely love. You can have real traction. And someone will still cancel today. Tomorrow too, probably.
The rejections come in waves for reasons you often cannot fully control or really understand—you don't have a feature someone needed, or you built something in a way that doesn't match how their brain works, and they leave. Sometimes a handful of people leave in the same week for what feels like the same reason and it has this particular quality of pain that I have started thinking of as death by a thousand cuts. Each one is survivable. The accumulation is something else entirely.
The hardest kind of rejection is the one paired with praise
I want to tell you about something that happened in Enji's first year, because I think it is the most honest illustration of what I mean.
I had a user I had poured into. Multiple one-on-one calls. She had written content about how much she loved Enji. She sent me voice messages thanking me and Brett for what we had built. Genuine, warm, specific gratitude that I held onto as we were just getting Enji off the ground.
Then she cancelled. And when I reached out for feedback, I got no reply.
I cried that day. I am not embarrassed to say that. I cried because I had genuinely connected with this person. I had shown up for her the way I try to show up for every user—really available, really invested, really caring about whether Enji was working for her life and her business. And the silence after everything felt like something I did not have a category for.
That is the thing about the rejection that comes wrapped in praise. It does not hurt less because someone complimented what you built. It hurts more, because even people really loving what you’re doing isn’t enough to keep them from leaving. Logically, I understand this. People's circumstances change. Their needs evolve. A cancellation is not always a verdict on your product.
But as a human being, on the day it happens, it ruins my day. It makes my head feel strange and disconnected. It sits with me in a way that is hard to explain to anyone who has not been inside it.
Anyone can be the one who rejects you
Here is something I was not prepared for either: the rejection does not just come from strangers.
Friends who genuinely want to support you will sign up, never really use it, or quietly cancel. People you went to school with, people you have known for years, people who cheered you on when you announced you were building something, people who worked with you closely when your software was a nights and weekends side hustle—they will try it and it will not stick and they will hardly tell you why.
Former colleagues and successful friends you reach out to about investing ( people who know your work ethic, who have seen you show up, who have every reason to believe in you) will pass. Sometimes politely. Sometimes with a "let's stay in touch" that means nothing. Sometimes with no response at all.
And then there are the people you have never met. Who know nothing about you, nothing about how much of yourself you have poured into this thing. Who will cancel after three days or send cold emails or simply disappear without a word, and to them it is just an app they tried and moved on from.
The proximity to you does not soften it. If anything, the closer the person, the stronger the sting. Because you thought that relationship meant something. And maybe it does. But it does not mean they will stay.
Grit is not what I want to talk about
We have a vocabulary for this in the startup world. Grit. Resilience. Tough skin. Keep going.
I have said all of these things. I believe in all of these things. Right now I literally have a motivational deck of cards on my desk and the one I have it flipped to says, “There is always a way.” But I want to say something that sits underneath these traits, because I think it is more honest and more useful for anyone who is in this or about to be in this.
What you actually need is a level of blind faith in yourself that you cannot manufacture in advance. You can only develop it by being in the situation—by getting rejected today, and showing up tomorrow anyway, and getting rejected again, and showing up the day after that. Not because you have figured out how to not feel it. Not because you have built some protective layer around yourself that makes it bounce off. But because at some point you decide that what you are building matters enough to keep going even when the evidence on any given day suggests otherwise.
Some days I carry that well. I can hold a cancellation and a new subscriber in the same hand and stay steady.
Today is not one of those days. I am writing this on a day when I am not carrying it well. When the accumulation of it feels heavy and close and the faith feels harder to access than it usually does.
I am writing this because I know there are people who know this, feel this, and need to hear it. Not the version where I have arrived somewhere tidy. The one where I am still in it, still figuring out how to carry something that does not get easier so much as it becomes more familiar.
What I want you to know if you are building an app, SaaS, or startup
The bar to build has never been lower. That is true and exciting and I genuinely mean it when I say go try. But the bar to survive the emotional reality of early-stage software has not changed at all.
You will be rejected every single day. By people who love what you built. By people who never gave it a real chance. By people who would have been your best customers if you had just built one more feature or explained one thing differently. You will not always know which is which.
What nobody told me (what I want to tell you) is that the resilience you need for this is not the kind you arrive with. It is the kind you build in real time, in the middle of the thing, on the days when it is genuinely hard and the faith feels thin and you send the next email anyway.
That is what building software actually is.
And somehow, in a way I can’t explain, it is also worth it. Because this is simultaneously the best and worst thing you can do.