Other projects sitting there, quietly existing, waiting for me to figure out what to do with them.
If I could go back and rebuild everything with what I know now, I’d change a lot, but probably not in the ways you’d expect.
I wouldn’t pick a different stack, launch faster or slower, or chase a different market. The technical decisions were mostly fine and the product decisions were mostly fine.
What I’d change is how I thought about what I was building and why.
These are recalibrations, not regrets. Small shifts in thinking that would’ve changed the trajectory of almost everything I’ve shipped. And the part I didn’t see until I laid them all out is that they all converge on the same handful of principles.
Relationships over transactions
Every time I optimized for the sale instead of the relationship, I left long-term value on the table.
This is obvious in hindsight but it’s not obvious when you’re in it. When someone wants to buy your thing, you sell them your thing. Transaction complete. Dopamine hit received. Move on to the next one.
There’s a well-documented asymmetry in how the brain processes these two modes of exchange. Transactional interactions activate a short-term reward loop: you get the sale, you feel the hit, and then you need another one tomorrow.
Relational exchanges work differently. Research on reciprocity, most famously by Robert Cialdini, shows that when people feel genuinely connected to a source of value, they don’t just buy once. They reciprocate over time, in ways that are wildly disproportionate to the original gesture.
A free tool, a helpful email, a sense of belonging, these small deposits of goodwill compound into loyalty that no ad campaign can replicate.
One-time sales are a sugar hit. Recurring relationships, communities, memberships, and subscriptions are the compounding engine. They grow while you sleep, they create trust that makes the next sale easier, and they turn customers into advocates who do your marketing for you.
I built Contrastly into a real photography brand. I sold preset packs, courses, and digital downloads to an audience I’d spent years growing. It got acquired, and I’m genuinely glad it did. That was a good outcome.
But there’s an alternate timeline where I built a paying community instead.
A membership. A recurring container for the audience I already had. The photographers who trusted me, who opened my emails, who bought everything we made. I could have given them a home instead of a storefront.
I had the audience and I had the trust, but I didn’t build the recurring layer on top of it. I optimized for transactions when the relationships were right there, waiting to be deepened.
I’m not beating myself up about it. The acquisition was the right outcome for where I was. But if I were starting something similar today, the community would come before the product catalog. Build the relationship first and the transactions follow.
Give away the tool, sell the outcome
Free tools aren’t charity. Far from it! If I'm honest, they’re distribution disguised as generosity. But the free thing needs a paid thing behind it, otherwise you’ve built a hobby.
This is Cialdini’s reciprocity principle in its purest commercial form.
You give something genuinely useful with no strings attached, and the psychological weight of that gift does work you never could have done with a sales pitch.
The person who uses your free calculator, your free checker, your free template, doesn’t owe you anything. But they feel something, and that feeling is worth more than a thousand cold emails.
I’d build way more free tools for DailyPhotoTips and TheDailyPreset. Calculators, generators, quick utilities, the kind of things photographers actually search for and bookmark.
Each one is a doorway into the newsletter. The free tool earns trust, the newsletter earns attention, and the paid product earns revenue. That’s the full loop, and I haven’t built enough of those doorways.
The flip side of this lesson is Preflight. I built a free open source CLI tool that scans your codebase and tells you if you’re ready to ship.
The tool is solid and people use it. But there’s no SaaS layer behind it. No paid product that the free tool feeds into. The distribution engine exists but it’s not attached to anything.
That’s the incomplete version of this principle. You need both sides.
The free thing without the paid thing is generous but unsustainable. The paid thing without the free thing is a product nobody discovers. I got one side right with Preflight and missed the other entirely.
For now at least.
Find the core before you build the castle
There’s a cognitive bias called the endowment effect where people overvalue things simply because they own them.
Kahneman, Knetsch, and Thaler demonstrated this in their famous 1990 study. Participants who were given coffee mugs demanded roughly twice as much to give them up as other participants were willing to pay to acquire the same mug.
The mug didn’t change. Ownership changed how people felt about it.
This bias hits builders particularly hard. Every feature you’ve built feels essential because you built it. You’ve invested time and thought and energy into it, so your brain inflates its value. Research on how the endowment effect interacts with the sunk cost fallacy shows that this isn’t just emotional stubbornness.
It’s a measurable cognitive distortion that makes people continue investing in things they already own, even when the evidence says they shouldn’t.
This is what makes simplification so hard. It’s not a lack of taste or discipline. It’s that your brain is literally working against you, telling you that the thing you built is more valuable than it actually is.
AutoChangelog is where this lesson lives for me.
The core value proposition is clear. It fires on deploy, checks your PRs, code diffs, and commits, and generates changelog entries automatically. That’s useful and that’s something people want. But I built outward from that core before the core was sharp enough, and the product got harder to explain as a result.
The recalibration here is to strip it back. Not because what I built is bad, but because the spine of the product got buried under scope. When you can’t explain what your thing does in one sentence without qualifications, you’ve probably built past the core.
This isn’t a universal rule though. Sometimes the opposite recalibration is true. Preflight needs more, not less. DistributionKit needed a more complete version than what I shipped.
The principle isn’t “always build less.” It’s to be honest about whether your product needs focus or expansion, and to stop pretending that adding features is the same as adding value.
The endowment effect makes that honesty almost impossible without deliberate effort, and understanding the bias is the first step toward counteracting it.
Don’t stop showing up
There’s a concept in behavioral psychology called the compound effect of habits.
The research is pretty intuitive too. Small, consistent actions accumulate into disproportionately large outcomes over time. But the inverse is equally true and far less discussed. When you break the chain of consistency, you don’t just pause the compounding. You reset it.
The accumulated momentum dissipates, and when you restart, you’re not picking up where you left off. You’re rebuilding from a lower baseline.
Dr. B.J. Fogg’s work at Stanford’s Behavior Design Lab has shown that the frequency of a behavior matters more than its intensity.
Doing something small every day builds neural pathways and habits that doing something intense once a month never will. This applies to exercise, learning, writing, and it applies to building an audience.
I know this. I wrote an entire article about it. I told people that distribution compounds over time, that the brutal early phase of silence is just the cost of admission, that the people who win are the ones who don’t quit.
But I went silent on my personal site for years. I was busy building Contrastly and growing DailyPhotoTips, so I wasn’t exactly sitting around. But the thing that was supposed to be mine, the writing and thinking that feeds everything else, went dormant because I let other things take priority.
The writing stopped, the audience on my personal site stopped growing, and the compounding stopped.
Nothing dramatic happened and there was no moment of failure. Things just didn’t accumulate because I wasn’t feeding the engine.
It’s the quietest way to lose ground, and that’s what makes it dangerous. You don’t notice the absence of compounding the way you notice a product failing or a launch flopping. It just silently doesn’t happen.
I’m back now and it’s working again. The articles are getting read, the newsletter is growing, and the momentum is rebuilding. But those years are gone, and the compound interest I missed on that time is invisible but real.
The one thing I wouldn’t change
Every recalibration above leads back to the same place.
Community needs a communication channel, free tools need a growth engine, consistency needs a format, and a SaaS needs distribution. The answer to all of these, the thing sitting quietly underneath every lesson I’ve learned, is newsletters.
Newsletters survive everything. Platform changes, algorithm shifts, AI disruption, trend cycles. The email list is the only distribution channel you fully own, and it’s the one constant across every project of mine that worked.
If I started over tomorrow with nothing, the first thing I’d build is an email list. Before the product, before the landing page, before writing a single line of code. I’d find an audience, start a newsletter, and figure out what to sell them later.
That’s not a new insight. I’ve believed this for years. The recalibration is that I should have applied it more aggressively to everything else. Every product I’ve built should have had a newsletter feeding it from day one, every free tool should have been a doorway to a list, and every piece of content should have been earning subscribers.
The newsletters were always the answer. I just didn’t put them under everything the way I should have.
Fixing what’s fixable
Most of these recalibrations are still actionable, and that’s the part that keeps me going. Preflight can get its SaaS layer, AutoChangelog can find its core, the personal site is publishing again, and the free tools can be built.
I guess this is a to-do list informed by two decades of expensive trial and error instead of guesswork.
Build relationships, give generously, simplify ruthlessly, show up consistently, and put a newsletter under everything. I wouldn’t go back and undo any of it. Every wrong turn taught me something that the right turn wouldn’t have. But if you’re earlier in the journey than I am, maybe you can skip a few of the detours.
The path forward looks a lot like the path I’ve already walked. Just with fewer stops along the way.