As we enter 2023, I wanted to reflect on Teaminal’s first year of business - what happened, what I learned from it, and what the numbers looked like. This helps force me to plan, keeps me honest about how things worked out, and maybe helps some readers improve their own businesses.
I don’t want to rehash my monthly updates too much, but I started work on Teaminal last December, originally as a way to experiment with Rails, but it quickly transitioned into a real product that I wanted to make into a business.
I did my first customer discovery calls and demoed an early prototype in January, and the core of the app was mostly there - that first version had statuses, pokers, and retros, you could comment on them, and I had very basic Slack and Jira integrations.
So what have I been doing since January? Lots and lots of small improvements that turn a prototype into something you’d actually want to use.
For example, the first version I demoed had a Slack integration, but all it did was echo out posts from Teaminal into a Slack channel. Over the course of the year I added interactions so now you can submit status updates directly from Slack, or do entire planning poker sessions where you vote and then update the Jira issue.
There’s a similar story for basically every feature - I started with a basic version, and then iterated on it over and over again until it was something I was proud of.
What I learned
Talk to users
Despite having been steeped in Lean Startup, The Mom Test, Paul Graham essays, etc., and knowing that I needed to ship fast and iterate, I still didn’t talk to users enough or iterate quickly enough.
After a strong start, getting feedback from potential users just weeks after building my first prototype, I went heads down for months to churn out features, telling myself that because I’m in a mature market, a lot of functionality is table stakes.
And to be honest, I still think that may be true, that I really did need to ship a lot of features to make the app sticky enough to keep users around. The problem is that I wasn’t talking to anyone to find out which features I should be shipping, I was just working off my own instincts.
Sales and marketing matter
In a similar vein, I barely did any sales or marketing.
When I reflect on why I’ve been so averse to talking to people about Teaminal, it’s because I didn’t think the product was good enough yet, and I didn’t feel good asking people to use something that I wasn’t proud of. I know Reid Hoffman’s famous quote about how you should be embarrassed by the first version of your product, but how can you genuinely ask someone to use something you’re embarrassed of?
On the flip side, if I’d been talking to lots of people, getting feedback, and building a mailing list, when I got to the point where I’m at now where I think the product is in a good spot and I want to start onboarding people, I’d have folks lined up to try the app, versus my reality of starting from scratch.
You can accomplish a lot in a year
Even on months where I didn’t feel great about the progress that I was making, I was still moving the ball forward, and now, looking back, it’s wild to see how far I’ve come.
Reading through all the monthly updates, the product has gotten so much better. It’s finally something that I am proud of, and can genuinely recommend over my competitors, which wasn’t true even a few months ago. It’s just incremental improvement, but it compounds.
Not going to lie, I was super tempted to keep these numbers private since they’re embarrassing at this point, a year in. They definitely reflect the reality that I didn’t do enough sales or marketing, though:
- 626 visitors to the marketing site
- 18 registered users across 13 accounts
- 0 active users
- $0 in MRR
To make up for my lackluster growth numbers, I also pulled some engineering metrics to make myself feel better:
- 1,079 git commits (an average of 2.96 commits per day)
- 100% uptime
Given my revenue numbers I’ve had to keep costs low, and I’m currently spending $135 per month to run Teaminal:
- $93/month for Render (hosting)
- $19/month for AppSignal (monitoring)
- $12/month for Google Workspace (email and productivity)
- $10/month for Postmark (transactional emails)
- $1/month for Cloudflare (domain registration, object storage, and CDN)
Last year’s goals
It wouldn’t be an end of year post without reviewing my goals, so here they are:
- Stop being afraid to share what I’m working on, even if it’s not perfect.
- Don’t build new features until someone asks for them.
- Get to $10k MRR by the end of the year.
I failed at all of them. I was way too quiet about what I was doing all year - I think I posted on LinkedIn about Teaminal once, and I’ve commented in a few Twitter threads, but that’s about it.
For feedback, I started off strong, talking to a handful of folks early on and using their feedback to inform a lot of the features I built, but then I went heads down for months, building whatever I thought was important without validating my assumptions.
And of course, with no customers I ended the year quite a ways off from my $10k MRR goal. I knew it was far-fetched when I set it, but I wanted to have at least one quantifiable goal.
Goals for 2023
After a total whiff on my 2022 goals I’m tempted to just copy and paste them again for this year, but I do have some tweaks:
- Alternate marketing weeks and coding weeks to force myself to actually do marketing work.
- Focus on SEO and get to 5,000 monthly visitors.
- Get to $5k MRR (which I think is a bit more realistic than my $10k goal last year).
The focus this year is on growth, and I’m going to try to be more disciplined about doing marketing work.
For marketing weeks, I’m going to focus on SEO - mostly content and link building. I’m also planning to do some experiments with outbound sales, but “sales and marketing week” isn’t as catchy as “marketing week”.
For coding weeks, I’m only going to let myself build if people ask for a feature or there’s a known bug. All the more reason to talk to people during marketing week, so I can get a list of things to build during coding week.
Most of all, this is the year where I have to go from zero to one.