Lifestyle-driven development and course correcting
Some thoughts on something that that happened over the weekend
Last week I got into working on a project I've had in the back of my mind for a while, a little tool to make a website from Notion.
Notion is part of my writing workflow on my main blog flaviocopes.com. I write posts in Notion and when I have a few ready, I run a script to import them into my website. Works great. I also use it to build my course content.
Recently, I've done some experimenting to make Notion something I could use to build websites and I was thinking that other people would love such a tool. I'm a full-time tech educator now and work on tons of projects and prototypes and demos and internal tools, but I haven't worked on a software project publicly available, and I thought it would be fun.
So I started putting in some hours. I shared an early demo on Twitter and someone replied to me with the question "what's the difference with <a similar tool>"? That tool was basically what I was working on, but I had no idea it existed before that person replied. It was a free tool, open source, well-made, and already complete and battle-tested by lots of users.
That killed momentum for me, because I was thinking what I was working on, didn't exist yet, but it did. I thought I could make a package and sell this as a website builder tool. But having an almost exact feature parity-free option already there made it quite hard to think of a reason people would pay for this. So I killed the project. Right there.
But that’s not the only reason. There’s something more.
I think it's important to follow your heart and listen to your gut. When I have that spark of creativity or "I see the light" and I get “in the zone”, I can work 10-hour days with no problem, and get an immense amount of effort done in a very short amount of time. That initial drive can be the only time something like that happens in the lifespan of that project.
But it's also important to stop and think and see the bigger picture.
Sharing the initial demo or idea was very important because I could have poured many more weeks of work into it without realizing I was wasting time. The time I invested in it was not wasted because I learned a lot of stuff about the underlying technology, and the project will most probably become a project tutorial on prototyped.dev in the future.
It will just not be something I sell as a "working application" that’s, you know, guaranteed to work, and I’d have to support it over a long period of time.
I already had some trouble thinking about that, if I have to be 100% transparent, and I want to be transparent with you because here there’s no space for bullshit.
That reply was a good excuse. In the back of my mind, I was already looking at how to avoid getting into something that could negatively affect my lifestyle.
I call it lifestyle-driven development.
Building applications is fun. Is like playing lego as a kid. Building the lego kit is fun, exciting, and satisfying. But when you've built the lego thing, you have a different set of problems. Where do you put it? There's no space to put all your "creations" on display. So it ends up in the ceiling or in a box somewhere. Or you just disassemble it and reuse pieces for something else.
Another example is working on a puzzle. It's fun to build it, but then do you really put them in a frame in your house? Maybe it's just me but I disassemble them.
Let's get to the point. Creating the app was fun, but the thought of shipping this to real people that would then use it to create their websites with it was scary.
Note that this is not my first rodeo and I've worked on a lot of CMS plugins back in the day and was also part of the core team of a quite popular CMS. So building things to make sites is a thing I know something about. And I know what problems you can get into.
Probably right for this reason I had a lingering fear that I would be starting a flood of support requests and feature requests and pull requests and whatnot.
And I would now base something I built on top of a platform I didn't control (Notion) and they could change how things worked from one day to another, or do a tiny change or a terms of service change or API rate limit change and that would not only make my project break, it would make other people's websites break.
And this responsibility is not something I'm willing to go into. I didn't think of this before too much as the tool was born as a toy for personal use. The tool is a toy when it's in my hands, but it's something serious in case it's used by other people.
Imagine I'm enjoying a blissful sunset when a support request comes in, ruining my evening. It's work. And it’s responsibility.
And it would be something to enjoy when I was making, I don't know, $100 per month on my indie apps. Having something people use and pay for, it’s awesome! The priority back then was having something working.
But now I have become accustomed to a specific kind of lifestyle where I don't trade time for money. It's the particular kind of business I built that's very seasonal, with big spurs of effort balanced with months of less intensive activity.
I built this on purpose.
That’s one of my principles: design your business around your desired lifestyle. Because we can. And I was not respecting that.
And I don't want to be subject to critical software issues in the middle of the day, let alone the night. It's fun to hack away some evenings to solve a problem you care about, but it sucks to have to solve some weird edge-case issue you don't care about at all, and you need to solve them.
It's also half-projecting things in the future, out of anxiety about things that might never happen. But still. They say "You don't know what you don't know" but when you know you know.
My ideal thing is, I ship something, people buy it, and it cannot break because there's nothing to break.
This project didn't meet those requirements, those expectations.
Loss aversion kicked in, I was going towards losing some of the freedom that my current lifestyle provides me, in exchange for, I don't know, having a cool project to show.
That's ok.
Sometimes we need to look more into ourselves, and perhaps get near to getting into trouble or going further into losing something we deeply care about, to understand what we're actually doing.
It’s fine to course correct and get back on the right track.
Not like something's existence and running from it means you haven’t made effort to make systems of responding to that stimuli
that is kind of my thought on things I do even if I am in a similar thinking like you