Previous years:
2023 |
2022 |
2021 |
2020 |
2019 |
2018 |
2017
This is an informal and pretty raw dump of my professional and personal milestones in 2024.
If you’re interested in the nitty gritty of life as a solopreneur running 4 businesses, raising 2 children,
building products online, growing an audience, writing, speaking, and trying to figure out businesses and life, read on.
The year in work
In my 2024 planning post I emphasized that the focus of the year would be on
my Python/Django starter project, SaaS Pegasus, and that was definitely the case!
Here’s my time report for the year:
How I spent my work time in 2024.
You can see Peagsus dominated my time by a large margin.
It also dominated my income.
I know I was just complaining about it, but Pegasus will earn about 25% more than it did last year,
which was in turn already a great year. Here’s a graph of Pegasus’s revenue for the six years it’s been around:
2023 was an absolute monster year for growth, but 2024 was still good!
And overall this line looks like a business that—at a minimum—has a solid future ahead of it.
Pegasus product improvements
Every year when I review the roadmap of what got done in Pegasus I’m floored by just how far it’s come (and how relatively bad it feels like it was the year before). This year was no exception. Here are the highlights from the past year:
In February, I launched a new Github integration.
This is a feature that automatically creates a Github repository for new projects, and lets you do Pegasus upgrades via pull requests.
It has quickly become my favorite feature in Pegasus, and I can’t believe that it didn’t exist a year ago.
In March, I launched a standalone React demo.
This provided a reference implementation for using Pegasus as an API backend to a decoupled React project.
This was a useful exercise, and I learned a lot in the process, but it still feels unfinished.
Making this model more of a first-class citizen in the Pegasus ecosystem is still a goal, and might end up being a priority in 2025.
In June I launched the SaaS Pegasus marketplace.
The marketplace has real-world applications built on Pegasus, by me, to help people with specific use-cases and serve
as reference examples for how to build on Pegasus. They also provided me/Pegasus with a new revenue stream.
The SaaS Pegasus Marketplace—where I sell pre-build codebases built on Pegasus.
Overall, I’d say the marketplace has been a modest business success, contributing a significant add-on income and having a relatively small additional support burden. Like the React demo, the marketplace launched with only about 20% of what I envisioned for the project, and I haven’t invested much in it since then. Expanding and improving it might also be a major focus of next year.
In September I launched the SaaS Pegasus CLI.
This is an open-source command line app aimed at making the initial experience of customizing Pegasus faster and more fun.
And just like the last two, it only does a fraction of what I want it to do eventually.
It’s interesting to me that three of my four biggest projects feel wildly incomplete.
This could be viewed in a number of different lights—am I just ambitious,
or do I have too much shiny object syndrome?
I’m not sure. The way I like to think about it is that a lot of the things I work on are building blocks towards a larger, strategic vision.
And these things will slowly build off each other and make that vision more and more of a reality over the course of years.
But this is a pretty generous take!
The rest of my efforts on Pegasus primarily went into improving and modernizing tools, libraries, and so on. The work that has to get done even if it’s not the sexiest.
Pegasus marketing efforts
Though I love product work, I try to force myself to spend half my time on marketing (or marketing-adjacent) projects.
Marketing is the “eating your vegetables” of building products online—not fun, but necessary for proper growth.
I managed to pull off that split this year, though I didn’t have a particularly cohesive strategy around it.
My marketing time went into the following high-level areas:
YouTube
Youtube was a relatively big investment for me this year—especially in the first half when
I recorded a series of videos building Translation Creator.
You can see the numbers below, but I added 20 videos and got ~1,000 subscribers.
I managed to grow my channel enough this year to get monetized! But not quite enough to acutally get paid yet.
Is this good? I don’t really know, but 3800 hours of watch time is like 158 days that people spent watching me code.
That seems like a lot when framed like that.
One thing that immediately comes to mind is that I should really do a better job understanding where my traffic and sales come
from—perhaps another project for 2025.
YouTube—like this blog and even Pegasus itself—is mostly just another channel that I can grind and grow slowly and steadily.
It’s also an asset (both the skill of making videos and the audience itself) in my portfolio that will hopefully only help me in the future.
So I’ll call it a win even if the ROI to date may be questionable.
Articles
I published two Django guides this year.
One in April on Django and websockets
and one in December on Python’s uv.
The former is now the top non-forum search result for “Django websockets”, and the latter is already(!) the
top non-official result for “python uv”.
Each of these guides took me around 20 hours to produce, but that still feels like a pretty solid return on investment!
This makes me wonder if I should double-down on the strategy of “make the best guide on the Internet about things related to Django”.
Again—I suck at attribution so I can’t say this for sure—but I suspect these guides have a higher ROI than anything else I’m doing.
In-person events
My relationship with conference talks hasn’t really changed at all since I posted this a few years back.
My feelings about conference talks (and children!). On Twitter/X.
In July, I gave a talk about solopreneurship at a Django Boston meetup.
This was fun, and I got to see some old friends and colleagues and make some new friends and colleagues. It was also a lot of work!
And of course, being the idiot I am, I figured that since I’d already made this talk I should repurpose it.
Which is how I found myself giving the keynote at PyCon South Africa in front of hundreds of people.
It was the biggest audience I’ve ever addressed and it was scary, though not quite as scary I expected.
I’m still waiting for the video to come out to see how good or bad it was. But it was fun and I met some more cool people.
And, oh yeah, it was also a ton of work.
My last event of the year (and the only one I have any decent pictures of) was a fireside chat I did at the Indie Hackers Cape Town meetup.
Unlike the others, this required no prep. Also, the audience was more aligned with my “solopreneurship” angle than the PyCon/Django crew,
so it felt a little more comfortable.
Getting interviewed on a fancy stage at Indie Hackers Cape Town. October, 2024.
I don’t think these events are particularly good marketing channels for Pegasus,
though I do appreciate the opportunity to connect with fun, interesting, like-minded people.
Also, I’m still holding out hope that the video recording from PyCon might be good enough to get some attention when it finally drops.
Giving back
I’m not sure where to file this exactly, but one thing I’ve been trying to do more of this year is give back to the Django community.
I joined Django’s social media team and have been creating many of the “Feature Friday” posts for them.
I also ran for the Board of the Django Software Foundation, though I wasn’t elected.
My desire to give back to Django is partially altruistic and partially self-interested.
The success of Pegasus depends on the success of Django, so I want to ensure the framework’s longevity,
and I think I can make contributions towards that.
That said, for now I’ve decided to pursue these goals from outside the system instead of within it,
which fits better with my preferred style of working (more shipping and less consensus-building).
Recently, I’ve also been thinking a lot more about open source, and how I can do more for open source without
cannibalizing Pegasus’s entire business model (which relies on selling a proprietary codebase).
I’ve deferred a lot of this line of thinking until next year, but in the meantime, I’ve adopted the Open Source Pledge,
which means that I—well, Pegasus—will give $2k per-person, per-year to open source projects.
You can read the details of the libraries I chose to fund this year in Pegasus’s open-source writeup.
It’s not really reflective of the value I’ve gotten from open source, but it’s also more than most companies do, and it’s a start.
Other projects
Pegasus got the overwhelming share of my attention this year, so I’ll just briefly mention a few other projects.
Place Card Me is tanking. Remember that zoomed out chart showing how Pegasus has a bright future?
Here’s the same one for Place Card Me—my place card template app:
That’s a small down year on the back of a larger down year.
2024 is going to end up worse than the pandemic-laden 2020 and will be the worst year for the site since it made $900 the year it launched
(way back in 2017).
Part of this is neglect and a rise of competitors, and part of it is my own damn fault.
I decided to change the domain from placecard.me to placecardme.com during a site migration and the SEO hasn’t recovered since.
This makes me sad.
But also, I can make up the revenue difference by making two or three additional Pegasus sales in a year,
so it’s still not a priority to address… I think.
Scriv pivoted. I had planned to keep Scriv—my private chatbot with built-in Slack integration—in
maintenance mode for the year.
But the Pegasus marketplace provided an opportunity to recoup some of the effort that went into it,
by selling the codebase as a standalone product.
This has helped people spin up LLM and RAG apps on Pegasus which (surprise!) is something that a good number of people want to do these days.
So, while Scriv-the-product barely makes enough to cover the hosting and OpenAI costs, Scriv-the-codebase has turned into a nice, profitable app.
A few other quick notes on projects I have going on:
Writing
I feel like I’ve had a bit of a renaissance with my writing this year. Not necessarily that my writing has been good or even gotten better so much as that I’m finally at peace with it. My new writing philosophy is basically “write and publish what I want when I feel like it”. And it’s working out pretty well!
I published two posts with more effort behind them: one on why I think people undervalue time, and one on five years of parenting. Neither of these were popular, but I’m proud of both of them and feel like, most importantly, I said something I wanted to say.
The other freeing thing was adopting a new mindset of writing and publishing low-effort posts in a single session. This has led to a bunch of shorter posts on random, mostly-technical topics, that aren’t rocketing to the top of Hacker News but are getting read (and helping!) some people. Two of these posts are now the most visited pages on my site, which is wild.
Anyway, we’ll see if it sticks, but right now my relationship with writing is feeling more positive than I can remember for quite some time!
Personal Highlights
Onto the personal stuff.
We bought a house!
The major highlight of the year was buying a house. After renting the same furnished, two-bedroom flat we’d been in for almost ten years,
we finally expanded to meet the needs of our growing family.
Our first dinner in our new place. September, 2024.
Moving to a new place was one of those things that felt impossibly daunting, so we ended up putting it off two or three years longer than we should have.
But it ended up being relatively easy. Some admin, a lot of furniture shopping, a few days of intense packing and moving and unpacking,
and then a long tail of getting settled.
But what had felt impossibly hard was… I don’t know, maybe 60 hours of work? Which, while not nothing, is like, a busy week?
Certainly not so hard that we should have put it off for as long as we did.
Turns out that our entire life fits in a mid-size truck.
Overall, being a homeowner feels good!
I undervalued how much more freeing it would feel not living in someone else’s space.
Also, I feel like an entire new world has opened up to me.
I’ve started to become a (very) amateur plumber / electrician / gardener, to the point where I idly wonder if any
of these could be viable career paths after AI fully takes over coding and all my current skills become useless.
Also, having a physical space where we cook, eat, and hang out in ~the same room is a massive lifestyle upgrade,
and gives us a lot more family time together.
We took a big trip
In July we did our annual big trip to the US and Canada.
We had a family reunion in Marblehead, another one with my wife’s family in Toronto, and a friends’ weekend in Vermont.
It felt a little bit rushed (it always does), but overall great to spend quality time with old friends and family.
Reunion with my family in Marblehead, MA. July, 2024.
Parenting is getting easy
With the kids now 4 and 6 it feels like we are entering the golden era of parenting. Our kids are reasonably independent,
capable of doing more interesting things, and often a lot of fun. I wrote about this in May,
and it’s only gotten better since then.
Biggest lifestyle upgrade: Our six-year-old can now get breakfast for himself and our four-year-old and now they (sometimes) let us sleep in.
Our friend situation is improving
When we first moved to South Africa, we befriended a bunch of expats and most of them left the country within a few years.
Shortly after, we had small kids, Covid, and other obstacles making it hard to make friends.
But, in the last couple years, through a combination of work, schools, and miscellaneous networking, it feels like we are making more quality friends.
The lack of a good friend network remains probably the biggest downside of living in Cape Town, but it’s getting better!
We’ve also had more visitors from overseas coming through Cape Town, which is always great.
That’s a wrap
And…I guess that was the year.
Looking back, I think it was a pretty good one.
I still harbor a fair amount of latent anxiety about the future of Pegasus, the future of coding,
and generally what I’ll do for the next 1, 3, 5, 10, and 20 years of my life.
But for now I’m going to take some time off and try not to stress too much about the future.
That can come in January when I try to figure out what the hell I’m gonna do in 2025.
I’ve come to realize that the best part of writing an annual review is
to provide future-me with a window into what this point of my life was like.
Progress and change are funny because they’re nearly impossible to see in the moment,
but very obvious when you look back on where you were in the past.
If you’re still reading this, I hope you have a great end of year. I’ll see you in 2025!
Struisbaai Harbor, September 2024.