{
  "version": "https://jsonfeed.org/version/1.1",
  "title": "Peter Suhm ~ Startups, travel, life",
  "language": "en",
  "home_page_url": "https://petersuhm.com/",
  "feed_url": "https://petersuhm.com/feed/feed.json",
  "description": "The personal website of Peter Suhm. Writing about startups (SaaS, indie hacking), travels, and life.",
  "author": {
    "name": "Peter Suhm",
    "url": "https://petersuhm.com/"
  },
  "items": [{
      "id": "https://petersuhm.com/posts/ogkit/",
      "url": "https://petersuhm.com/posts/ogkit/",
      "title": "I&#39;m pretty sure I&#39;ve built the perfect side project",
      "content_html": "<p>For a while, I've wanted to write down the story of how I came up with the idea for <a href=\"https://ogkit.dev/home\">OG Kit</a> (my SaaS for adding dynamic OG images to your website) and turned it into what I'm pretty sure is the perfect SaaS side project.</p>\n<p>OG Kit is roughly half a year old, and with its 40 paying customers, it's doing about $250 in monthly recurring revenue. And while that doesn't sound like much, I'm convinced I'm still onto something here. It's some of the most fun I've had building a product for as long as I can remember. Let's dive into it.</p>\n<h2 id=\"og-kit-the-product\" tabindex=\"-1\">OG Kit the product <a class=\"direct-link\" href=\"https://petersuhm.com/posts/ogkit/#og-kit-the-product\" aria-hidden=\"true\">#</a></h2>\n<p>OG Kit the product is pretty clever (enough that people have already <a href=\"https://x.com/freekmurze/status/2026991195927536126\">taken inspiration</a> from it <a href=\"https://mattrothenberg.com/notes/edge-og-images/\">several times</a>). In short, I came up with an idea for how to keep the designs for your Open Graph images in an HTML template next to the rest of the page content and let OG Kit capture it as an image.</p>\n<p>Here's the launch video I put out last fall:</p>\n<div style=\"position: relative; width: 100%; padding-top: 56.25%;\">\n  <iframe style=\"position: absolute; inset: 0; width: 100%; height: 100%;\" src=\"https://www.youtube.com/embed/UoVrfHD79W4?si=bJrOFjHNbgz_jSoW\" title=\"YouTube video player\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen=\"\"></iframe>\n</div>\n<p>(Yeah, I know, pretty clever.)</p>\n<p>I clearly remember having the idea while being on a road trip with my family (as the driver) and I just couldn't stop thinking about it. When everyone was asleep in the cabin at night, I pulled out my laptop and started tinkering. It was the kind of idea where I really didn't know if it was going to work, like if I had missed something obvious, but it totally worked.</p>\n<p>My last side project before OG Kit started as a VC-backed startup that didn't end up working out as a venture-backed business (<a href=\"https://www.reform.app/\">Reform</a>), and for a while after realizing that, I turned it into a side project while working for Tailwind Labs on the side. But I quickly realized that a form builder was the worst kind of business to run as a side project. It requires 100% uptime, has lots of spikes, and it's just a complex product with tons of features, integrations, etc. But the spikes were the worst part. Like, people will sign up and send out some crazy long, complicated form to tens of thousands of people RIGHT as you sit down to have dinner with your family.</p>\n<p>So in the back of my mind I knew I wasn't going to do that again.</p>\n<p>Which leads me to OG Kit:</p>\n<ul>\n<li>The entire product is a single API endpoint</li>\n<li>It's hosting, but it's not critical (like, it sucks if your OG images don't work, but it's not the end of the world most likely + if they've already been generated, they'll be cached forever)</li>\n<li>Spikes don't matter, images are generated once and cached forever</li>\n</ul>\n<p>And then there's one more thing that I've realized recently that's more specific to me: I love developer tools and almost everything I've ever worked on (except Reform which was actually pretty popular with developers, I wonder why) is in the developer tool space.</p>\n<p>But Claude could just build this for me! Yes. But there's some annoying hosting and orchestration related things when it comes to stuff like Puppeteer, rendering HTML, fonts, etc. So absolutely you could, but I think most people would rather use a cheap service like OG Kit to do it for them (there's even a free plan). At least enough will.</p>\n<p>One question I asked myself early on when I had the idea for OG Kit was: If I go to bed and OG Kit goes down right after I put away my phone, am I OK with not knowing until the next morning? And the answer was yes (fair warning if you plan on using OG Kit). So in theory, OG Kit could have some downtime. But in reality, existing images would still work because they are heavily cached with Cloudflare, so it would really only apply to new images.</p>\n<h2 id=\"og-kit-the-business\" tabindex=\"-1\">OG Kit the business <a class=\"direct-link\" href=\"https://petersuhm.com/posts/ogkit/#og-kit-the-business\" aria-hidden=\"true\">#</a></h2>\n<p>I gave it away at the beginning: OG Kit is &quot;only&quot; doing $250 in MRR and has about 40 paying customers. While that's not a ton, OG Kit doesn't cause me any stress or anxiety. It doesn't stress me out to go to a family thing for the day without my laptop and there are weeks and months where I don't touch it... and it's fine! Actually it's awesome.</p>\n<p>Let's dive into some of the business stuff.</p>\n<p>So far, the most difficult challenge has been to figure out how the pricing should work. I don't think I've fully nailed it yet, but I'm pretty happy with the model overall. This is what the pricing looks like currently:</p>\n<p><img src=\"https://petersuhm.com/img/ogkit-pricing.png\" alt=\"\" /></p>\n<p>It's hard to explain, but OG Kit is really difficult to price. The expensive thing is image generations. Once the image is generated, it's cached using Cloudflare (love Cloudflare!), so it's pretty easy to offer unlimited traffic. But the challenge is that image generations happen on the fly by default. So if an OG image is never requested, we never generate it. So even though you might have 10,000 pages, you might only ever generate 87 OG images. So should I charge based on the 10,000 or the 87? It's tricky, because even though I'm technically only hosting 87 images, you still want me to be ready to serve one of the 9913 other images at any moment in time.</p>\n<p>The unlock here was to realize OG Kit is not an OG image generation service. It's an OG image hosting service. The generation is an implementation detail, the hosting is the real service. You set up OG Kit on your site and no longer need to think about how your OG images get served. With this realization in mind, I ended up pricing based on how many pages you use OG Kit on. Now, I don't actually know until an image is generated, so currently I look at how many unique pages I've served an image for within the past year and that's how many pages someone is using OG Kit on... I expect that to evolve over time, but it's good enough for now.</p>\n<p>And being a hosting business is really awesome! Hosting has low churn and generally feels more AI proof than a lot of SaaS. We'll see about that, but for now it feels like a good mindset.</p>\n<p>Related to this, I'm only offering an annual plan. For side projects, I'm a big fan of just charging annually. You pull forward a bunch of revenue and it's just simpler. It also forces a bit more commitment from early customers.</p>\n<p>Now, will OG Kit work out as a business? I don't know, but even as just a side project, I wouldn't be surprised if it paid for my mortgage in a year or two. Frankly it's not been hard to get the first 40 customers, and I think if I pushed harder, OG Kit could actually be a nice little one-person business. I already have a lot of other things going on, so I'm very happy with it just being a side project that grows slowly, but if I had to and went all in, I think I could make it grow much faster. Put differently, if all my other sources of income went away, I'd try going all in on OG Kit for a while and see how far I could push it. This is what they call &quot;side project insurance&quot; my friends! (I think Aaron Francis calls it that at least?)</p>\n<p>Finally, the thing that I've most gotten right about OG Kit is to accept it's a side project. When I launched the redesigned OG Kit website in December, I said that I wanted OG Kit to feel more like an open source project where I am the maintainer rather than a full-blown SaaS where I'm the founder. SaaS is heavy, projects are lightweight. This mindset is helping me a lot when I try to fit OG Kit into my life. Sometimes I fall into the trap and start to set up processes and shit for how I should do this and that with OG Kit, but then I try to get back into this mindset of me as the OG Kit maintainer, not a startup founder hustling to make it.</p>\n<p>OG Kit is the perfect playground for me. It's a fun technical product to build. It lets me test out all the new cool AI tools, and it even makes a bit of money too. Hopefully more over time. Making money is part of the fun too, don't get me wrong. We love MRR. But OG Kit is lightweight, and I love it. It's something I can do for a long time, it's not burning me out. In fact, it's the opposite! It's something fun and challenging to work on when I have some extra time.</p>\n<p>Congratulations to me lol! 🥳</p>\n<p>Thanks for reading this far. Now tell a friend about <a href=\"https://ogkit.dev/home\">OG Kit</a>.</p>\n<p>— Peter</p>\n",
      "date_published": "2026-03-20T00:00:00Z"
    },{
      "id": "https://petersuhm.com/posts/2025/",
      "url": "https://petersuhm.com/posts/2025/",
      "title": "2025 — My year in review",
      "content_html": "<p>I'm writing this year's review post from sunny Spain. It's Christmas Eve, and I'm happy. Compared to 2024, 2025 has felt like a very eventful year. When I look back at the year, I can mostly think of good things.</p>\n<h2 id=\"tailwind\" tabindex=\"-1\">Tailwind <a class=\"direct-link\" href=\"https://petersuhm.com/posts/2025/#tailwind\" aria-hidden=\"true\">#</a></h2>\n<p>This year was my fourth year working for Adam and Tailwind. Tailwind has never been a full time gig for me, but it's definitely felt like it a few times this year. The headline for me this year has been the <a href=\"https://tailwindcss.com/sponsor#partners\">sponsorship program</a> that have ended up consuming a lot of my time. We started the program in late July and it's now doing more than $800k in ARR. Most of the revenue is coming from companies sponsoring at the Partner level.</p>\n<p>Whenever I'm talking to people about the sponsorship program, they assume companies are lining up outside our door to buy a Tailwind CSS sponsorship. But that's not really how it works. Most of the companies sponsoring us are doing so because I've been doing outreach and spent a lot of time getting to know them. A lot of cold to lukewarm emails and DMs were sent this year! It's been a really interesting challenge to figure out how to structure the program and how to get &quot;sales&quot; to work. It's been really awesome to build relationships with all these different companies and the program has become a meaningful part of the revenue at Tailwind Labs. The companies sponsoring us are some of the most interesting companies in tech, such as Cursor, Shopify, and CodeRabbit.</p>\n<p>I'm super bullish on working with larger companies in 2026, and I have a lot of ideas for ways to partner with companies beyond what we offer in the sponsorship program. Figuring out the enterprise and partnership side of the business is going to be my main priority in 2026 at Tailwind.</p>\n<p>In general, it's been a turbulent year at Tailwind with AI and fierce competition. Adam has documented a lot of that on <a href=\"https://adams-morning-walk.transistor.fm/\">his new podcast</a>, so I won't spend time on it here. I'm bullish on what we are planning for 2026!</p>\n<h2 id=\"laravel\" tabindex=\"-1\">Laravel <a class=\"direct-link\" href=\"https://petersuhm.com/posts/2025/#laravel\" aria-hidden=\"true\">#</a></h2>\n<p>I worked for a new client this year: Laravel. Getting to work for Taylor and Laravel felt surreal and I joked that I had been called to serve! I am pretty sure it mostly came about because of this tweet:</p>\n<p><img src=\"https://petersuhm.com/img/taylor-tweet.png\" alt=\"\" /></p>\n<p>Early this year, I was doing a lot of experiments publicy around AI and MCP. It caught Taylor's attention and Laravel asked if I was open to come in and experiment with AI stuff at Laravel.</p>\n<p>We quickly decided that the most obvious thing to work on was an MCP SDK for Laravel, and for the next two months I worked like a madman to try to compensate for the fact that I have never really built a Laravel package before. I learned everything about MCP, and read through the spec over and over and over. What came out of it was the <a href=\"https://github.com/laravel/mcp\">laravel/mcp</a> package, that the Laravel team took over, polished, and released in the fall. I'm super proud to have kickstarted this project, even though I am no longer involved, and it's been awesome to see how it's been received by the Laravel community.</p>\n<p>The most important thing I took away from the Laravel gig was how much I love working on dev tools. I've never really seen it that way until one of my friends pointed it out, but I've almost always worked on tools for developers, and it's truly my happy place. Building an open source package was really fun, and it ended up giving me a lot of inspiration for OG Kit, which we'll get to in a second.</p>\n<p>2025 has also been a year of conference speaking. I've spoken at Laravel Live in London, Laravel Live in Copenhagen, and at the Laravel meetups in Copenhagen, Odense, and Aalborg. I love the Laravel community, and I love speaking!</p>\n<p><img src=\"https://petersuhm.com/img/laravel-live-london.jpeg\" alt=\"\" /></p>\n<p><em>Photo by Maurizio Bonani <a href=\"https://x.com/MaurizioBonani/status/1932386367109026020\">on X</a>. I've lost about ten kilos since this photo was taken.</em></p>\n<h2 id=\"og-kit\" tabindex=\"-1\">OG Kit <a class=\"direct-link\" href=\"https://petersuhm.com/posts/2025/#og-kit\" aria-hidden=\"true\">#</a></h2>\n<p>I built a new product this year and I think it's the most excited I've ever been about a product. When I had the idea for <a href=\"https://ogkit.dev/\">OG Kit (dynamic Open Graph images with just HTML and CSS)</a>, I almost couldn't believe it didn't already exist. The reception has been incredible. Still to be determined whether there's a good business here, but even though the numbers are really small still, I'm seeing some really good sign.</p>\n<p>Going into OG Kit, I wasn't really sure if this was even something people were willing to pay for, so I honestly mostly built it because I thought the idea was so cool. OG Kit currently has 36 paying customers and the feedback from these early customers has been really good, so maybe this could actually work?</p>\n<p>I've been really intentional with how I'm building this business. Both in terms of the product and all the other things around it. It's a simple product — I mean, it's an API with one single endpoint. I want it to be a simple business, too, and not a Reform 2.0. But most of that stuff is probably for a different blog post!</p>\n<h2 id=\"personal-stuff\" tabindex=\"-1\">Personal stuff <a class=\"direct-link\" href=\"https://petersuhm.com/posts/2025/#personal-stuff\" aria-hidden=\"true\">#</a></h2>\n<p>Last year I talked about our new house. This feels a little taboo to say, but we don't really love the house. We're too far away from town and we kind of regret that... It's a great house and a great place to live with kids, but I wouldn't be too surprised if we revert that decision in the next few years and move back into the town centre where we used to live.</p>\n<p>This year we made a lot of new friends in town (my wife gets most of the credit here). It's been really awesome and have made us even happier that we made the move to this small town where we didn't know a single person a few years ago. Having a lot of friends in town really makes it feel like home.</p>\n<p>As I mentioned in the begining, I'm writing this post from Spain where we are spending a month over Christmas and New Year's. Travel is something that used to be a big part of my identity. Most of my twenties were spent traveling the world, but after having kids it's slowed down a lot. Both our kids struggled with a lot of sickness when they were little, and we've gotten to know the hospital a little too well (even though everyone there is really nice, ha). Even though everything is fine now, it's still caused me a lot of anxiety that's made it hard for me to plan a big trip with the kids. Because of that, this trip to Spain is a really big deal for me personally. It's a place I know really well, but it's still been something I've had to overcome! Now that we're here, I'm so glad we pulled the trigger.</p>\n<p>Finally, in September this year I decided I needed to take my health more seriously. It's suffered a lot over the past five years with kids and startups. Over the following months, I lost ten kilos in a way that actually feels pretty sustainable and got a lot more serious about my sleep. I've been wearing a Whoop wrist band for the past six months and it's made me really aware about how different kinds of foods and eating habits affect my well-being. Losing weight was a combination of a LCHF diet, intermittent fasting, and tracking my weight religiously every single day with my Withings scale. I'm happy to talk about this more if you are curious. Mental health has also been a big topic for me this year. I've spent the past few years dealing with some hard personal things, where therapy has really helped. Last year I told my therapist that one of my new year resolutions for 2025 was to continue regular therapy (every 6-8 weeks) whether I felt like I needed it or not. This has worked really great for me — there's always something to talk about whether it feels like it or not beforehand.</p>\n<hr />\n<p>All in all, 2025 felt like a really big year for me, both on the work front and the personal front. For the first time, I don't really feel like I want to change much in the new year. For me, 2026 is going to be a year of doubling down on what already works.</p>\n<p>See you in 2026! 👋</p>\n",
      "date_published": "2025-12-24T00:00:00Z"
    },{
      "id": "https://petersuhm.com/posts/2024/",
      "url": "https://petersuhm.com/posts/2024/",
      "title": "2024 — My year in review",
      "content_html": "<p>My original plan was to do my 2024 review as a video to try something new, but I'm lying in bed with a bad cold and will spare you from that.</p>\n<p>Looking back, 2024 hasn't been the most eventful year—it was the first year as an adult where I didn't leave Denmark at all. That being said, it also felt like the year of finding my &quot;footing&quot; again after some turbulent years.</p>\n<h2 id=\"at-work\" tabindex=\"-1\">At work <a class=\"direct-link\" href=\"https://petersuhm.com/posts/2024/#at-work\" aria-hidden=\"true\">#</a></h2>\n<p>2024 was my second year as the &quot;ops guy&quot; at Tailwind Labs. Having this gig was a godsend last year when I decided to move on from Reform, and this year it has continued to be a great &quot;stabilizer&quot; in my life. It's been awesome to have the stability, while having plenty of time for other things—mainly taking care of our two boys + a bunch of new side projects.</p>\n<p>My gig at Tailwind is part time in terms of hours, but I'm always around. I care about the response time on our support tickets and I don't want anyone to have to wait the whole weekend if they have a problem with one of our products, so my work hours are very spread out. In addition to being the only support person, I'm also in charge of a bunch of other ops-related things such as making sure invoices are paid, and a bunch of legal things related to trademark and copyright. I also get involved in one-off projects, such as hiring, organizing meetups, hacking on our internal revenue dashboard, and random marketing related things, such as SEO, email/newsletter stuff, and analytics.</p>\n<p>By far the biggest project this year was helping Adam hire two new people for the team. I'm pretty sure I worked close to full-time for at least a month to make it through all the applications. After several months of going through applications, running interviews, etc., we brought on two amazing people to the team: <a href=\"https://x.com/PhilippSpiess\">Philip</a> and <a href=\"https://x.com/DanHollick\">Dan</a>. By the end of this project, we were millimeters away from building a Workable competitor! 😅</p>\n<p>Another big project this year was to plan a meetup in Miami next year (January 2025) for our team retreat (that I sadly won't be attending). Last year, we did a meetup in Amsterdam, which was pretty awesome—especially because we had an <a href=\"https://www.catawiki.com/en\">awesome company</a> taking care of hosting us! We didn't really get so lucky in Miami, so the goal was to find a model that we could run ourselves. I don't want to talk about it too much, since it's not really announced yet, but I feel like we might have found a model that is pretty reusable so we can run more of these events around the world 🤞</p>\n<p>Next year is going to be the launch of Tailwind v4, which is a huge milestone for the company, and I'm excited to see what we do next!</p>\n<h2 id=\"side-projects\" tabindex=\"-1\">Side projects <a class=\"direct-link\" href=\"https://petersuhm.com/posts/2024/#side-projects\" aria-hidden=\"true\">#</a></h2>\n<p>Last December, I <a href=\"https://petersuhm.com/posts/writing-habit/\">announced</a> that I was starting a writing habit. Side note: I'm a huge fan of starting new years resolutions in December—no need to wait for January!</p>\n<p>The short version is that I wrote for a bit more than a hundred days in a row and in general way more than I normally do. I felt like a bit of an impostor ending the streak, but the nice thing was that I realized I had built a lot more writing muscle, so even if I wasn't on a streak, writing was still a lot easier. If I'm the first person to wake up in the morning, I tend to write. That rarely happens these days sadly.</p>\n<p>I really felt like I cracked the code for myself when I comes to writing, and I was excited to share it with others. So I decided to write a book about writing... but instead I ended up writing +5,000 words about it and making it available for free on a sick domain I bought for $1,500: <a href=\"http://writinghabit.com/\">WritingHabit.com</a>.</p>\n<p>Really, if you want to write more in 2025, read the guide—it's really good 😉.</p>\n<p>Another new side projec this year was <a href=\"https://ontosomethingpodcast.com/\">the podcast</a> I started with <a href=\"https://x.com/mikker\">Mikkel Malmberg</a>. We started out in Danish, but recently pivoted to English. After ending Out of Beta last year, it was awesome to have an outlet to talk shop and keep each other accountable. The podcast is very raw and unfiltered, with no editing whatsoever—maybe too unfiltered?</p>\n<p>I'll briefly touch on <a href=\"https://sampler.app/\">Sampler</a>—another project I got involved with this year. My Internet friend Rasmus built Sampler around the time Bjørn and I built Reform and I always really loved the idea (Reform is still a customer). I've always encouraged Rasmus to do more with the idea, but of course it's always easier said than done. This year I got the chance to put my action where my mouth was, when Rasmus asked if I wanted to work with him on Sampler (I first tried to buy it from him). We worked out some very simple handshake terms and thought of it as an experiment. Could I find some customers and kickstart things a bit? The experiment wasn't super successful, for a few reasons—mainly just life circumstances, so we called it off after a few weeks. Even though it didn't really work out, I think it was a success because we got to test the setup in a few weeks and learned a bunch without wasting too much time. Working on Sampler also gave me a bunch of new ideas, which emphasizes how important inertia is in this game! It's so hard to think up business ideas from scratch—they show up much easier once you're in motion.</p>\n<p>The final side project I worked on this year was obviously inspired by Sampler. I guess I never explained what Sampler is: Basically, it's a way to turn Figma into an image API and the main use case for Reform is to generate social sharing images for forms. So after spending weeks thinking about social sharing images, or social cards, I came up with the idea for <a href=\"https://socialcardcreator.com/\">Social Card Creator</a>: A super simple way to quickly add social sharing images to your website. My friend Niklas challenged me to build something as quickly as possible that him and I could use and it turned out to be the perfect goal. In something like two weeks, I had a working product, and a few weeks later, <a href=\"https://x.com/petersuhm/status/1864405036337340602\">I launched it for strangers to sign up</a>. The product is still super simple with only one template, but I hope to add some more features once I'm back in the office in January. The product is currently at $87 ARR 🤪, so not much, but more than zero, and it's fun to have something &quot;real&quot; out there again. Social Card Creator was the first time I <em>really</em> leaned into AI coding tools, like Cursor. It was mind blowing how much faster it is to build stuff these days with AI by our sides.</p>\n<h2 id=\"personal-life\" tabindex=\"-1\">Personal life <a class=\"direct-link\" href=\"https://petersuhm.com/posts/2024/#personal-life\" aria-hidden=\"true\">#</a></h2>\n<p>As I'm sitting here in our new house writing this post, with two little boys sleeping in their beds, I have a strong feeling of having found my footing again. In 2020, my (very pregnant) wife and I uprooted our lives in Scotland and moved &quot;home&quot; to Denmark. Until finally buying a house earlier this year, it never really felt like we had settled down. In addition to moving several times, there's been some very difficult family-related stuff I've had to finally confront. It's been really tough, but not really something I feel like talking about publicly—at least not yet. In my own little family, we've had to deal with a lot of disease and hospitals in the past year (thankfully nothing too bad!), which has been really draining. My wife and I don't have a lot of external support, but we're a good team and we've made the most of it. Thankfully our kids are really easy to love even though they are a ton of work 😉 More and more, it feels like my own little family of four is the nuclear family in my life (as opposed to the one I grew up in), and I feel more and more like and adult. It's a good feeling and the cliché &quot;today is the first day of the rest of your life&quot; feels really true these days.</p>\n<p>We bought our first house this year, which has been pretty great. It was a very stressful time because we had to navigate selling our summerhouse + appartment in order to afford the house we wanted, but in the end it all worked out.</p>\n<p>Here's the house:<br />\n<img src=\"https://petersuhm.com/img/house-2.jpeg\" alt=\"\" /></p>\n<p>And here's the view from our rooftop terrace overlooking the little &quot;forrest&quot; we live next to:<br />\n<img src=\"https://petersuhm.com/img/house-3.jpeg\" alt=\"\" /></p>\n<p>As much as 2024 felt like an uneventful year, I guess it wasn't really—it never really is!</p>\n<p>Thanks for reading along and see you in 2025.</p>\n",
      "date_published": "2024-12-28T00:00:00Z"
    },{
      "id": "https://petersuhm.com/posts/todo/",
      "url": "https://petersuhm.com/posts/todo/",
      "title": "How I manage my todo list",
      "content_html": "<p>For the last year or so (I can’t remember exactly how long), I’ve been using the same system for my todo list and it’s been working really well for me. In this post, I’m going to share how it works.</p>\n<p>First of all, here are some of the criteria I’ve realized are important for my system:</p>\n<ul>\n<li>It needs to both support tasks that are due today and tasks that are due “sometime this week”.</li>\n<li>Tasks need to be grouped into different projects based on whether they’re work-related, personal, etc., but I need to be able to see them all at once.</li>\n<li>It needs to support recurring tasks.</li>\n</ul>\n<p>With a bit of custom querying, <a href=\"https://todoist.com/\">Todoist</a> can do all of this for me, and it’s been my todo list manager of choice for a while now.</p>\n<p>Let’s walk through how it works.</p>\n<h2 id=\"planning\" tabindex=\"-1\">Planning <a class=\"direct-link\" href=\"https://petersuhm.com/posts/todo/#planning\" aria-hidden=\"true\">#</a></h2>\n<p>Every Sunday, I have a recurring task to prioritize my tasks for the coming week. This sometimes ends up being a Monday thing, but I like doing it on Sundays when I can. I do this planning in <a href=\"https://reflect.app/\">Reflect</a> and the result is just a couple of bullet points of my most important things to get done during the week.</p>\n<p>Monday morning, when I start working, I’ll make sure everything I wrote in Reflect is properly added to Todoist. Most of it is already there since I add everything that comes up to Todoist on an ongoing basis.</p>\n<h2 id=\"structuring-tasks\" tabindex=\"-1\">Structuring tasks <a class=\"direct-link\" href=\"https://petersuhm.com/posts/todo/#structuring-tasks\" aria-hidden=\"true\">#</a></h2>\n<p>When I add tasks to Todoist, I have two different kinds: Stuff I need to do on a given day, like following up with someone about something, and stuff that needs to happen sometime this week, like writing a blog post.</p>\n<p>For stuff that needs to happen on a given day, I give it a due date. For stuff that needs to happen sometime during the week, I use a custom label in Todoist called “this-week”.</p>\n<h2 id=\"viewing-tasks\" tabindex=\"-1\">Viewing tasks <a class=\"direct-link\" href=\"https://petersuhm.com/posts/todo/#viewing-tasks\" aria-hidden=\"true\">#</a></h2>\n<p>The key to making this system work is a custom filter in Todoist that gives me a view of everything that’s either due today, overdue, or labeled as due this week. I don’t want to see stuff that’s due tomorrow unless it’s labeled “this week”, meaning “something I want to see on my todo list all week”.</p>\n<p>In Todoist, adding a filter is super simple and I have one called “Todo” that looks like this:</p>\n<p><img src=\"https://petersuhm.com/img/todoist-filter.png\" alt=\"\" /></p>\n<p>By adding the Todo filter as a favorite, it shows up in the sidebar. The filtered view is basically my productivity dashboard to rule them all. It’s where most of my work flows from.</p>\n<p><img src=\"https://petersuhm.com/img/todoist-todo-view.png\" alt=\"\" /></p>\n<p>The filter query is very simple — feel free to copy it:</p>\n<p><strong>Today | @this-week | overdue</strong></p>\n<p>And that’s basically all there is to it. One thing about this system is I end up duplicating todo items a few times. For my job at Tailwind for example, I’ll often take stuff from Basecamp and put it into Reflect when I do my weekly planning and then also move it into Todoist to have everything in one place during the week. I don’t really mind the duplication as it helps me remember to clean up tasks, prioritize them, etc., instead of just letting them sit there forever.</p>\n<p>Simple system, but it works for me and has stood the test of time now.</p>\n",
      "date_published": "2024-01-22T00:00:00Z"
    },{
      "id": "https://petersuhm.com/posts/2023/",
      "url": "https://petersuhm.com/posts/2023/",
      "title": "2023 — My year in review",
      "content_html": "<p>I already wrote <a href=\"https://petersuhm.com/posts/life-update-2023/\">a pretty detailed account of the first four months of the year</a>, so this update starts in May 2023. Right after I officially became a solo founder with Reform.</p>\n<h2 id=\"family\" tabindex=\"-1\">Family <a class=\"direct-link\" href=\"https://petersuhm.com/posts/2023/#family\" aria-hidden=\"true\">#</a></h2>\n<p>The big news this year was that our second child was born in July — a healthy little boy who’s always laughing and smiling. Having little kids is so hard, especially having more than one. They are lovely, I love them more than anything, but it’s much harder than I expected. Or at least in a different way than I expected. I feel like I do much better with our three-year-old than I do with a baby. When our oldest was a baby, I always knew that I was looking forward to him being a little older.</p>\n<p>Overall, 2023 has been one of the most difficult years for me. I still don’t know how much or how to talk about it publicly, but our family went through some really difficult things in 2023. Even though this was a difficult year, we’re at a better place, and I think both my wife and I feel empowered by how we've responded to it. In private, I’ve been really open about this and have realized how many people I know have dealt with similar dificult things in their families.</p>\n<p>Finally, we sold our summer house, or cabin, this year. For five years, it’s been my private little retreat, where I’ve gone to reflect, hang out with friends, go fishing, etc. It didn’t really fit our lives with two little kids, and we want to use the money for a down payment on a house in 2024.</p>\n<h2 id=\"reform\" tabindex=\"-1\">Reform <a class=\"direct-link\" href=\"https://petersuhm.com/posts/2023/#reform\" aria-hidden=\"true\">#</a></h2>\n<p>When I wrote the life update post back in April, I was excited to be solo on Reform. I had accepted defeat, had had all the difficult conversions with investors and my cofounder, and felt like I was in a position to finally make some meaningful progress on the business, which was now more of a side project.</p>\n<p>In August, however, I realized that I was in the wrong season of my life to run a product like Reform that required many 9s in terms of uptime. I felt very close to burnout — especially with all the other stuff I was dealing with. It became clear to me that Reform needed to be someone’s top priority, not the side project of a guy who just had a baby. There were a couple of times when this became very obvious, like when I had to leave the kids with my wife in the middle of dinner to go fix something on Reform. Or when I couldn’t really go anywhere without bringing my laptop in case I got an email from Sentry. “What are you doing?” I kept asking myself.</p>\n<p>I realized I had to sell the business before burning out. I was running on the fumes. I told a friend (and my therapist) that I would give myself a month to try and sell. It wasn’t long, but I was nervous about what would happen if it took much longer. If by the end of September, I didn’t feel like I was talking to the final buyer, I would do a fire sale. I spent the first week or two reaching out to everyone who could be remotely interested. Competitors, partners, and anyone else I could think of. It led to some good conversations, but no one wanted to take it over without me joining, which wasn’t an option. In the end, I listed it on Acquire and quickly started talking to Arun from FunnelEnvy. He ended up making an offer, was great to work with, and in less than a month, we had closed the deal. One of the most exciting things was that FunnelEnvy ended up bringing in my old cofounder Bjørn as a contractor, making the transition really easy for me.</p>\n<h2 id=\"tailwind\" tabindex=\"-1\">Tailwind <a class=\"direct-link\" href=\"https://petersuhm.com/posts/2023/#tailwind\" aria-hidden=\"true\">#</a></h2>\n<p>The best thing that happened this year workwise was joining Tailwind in a permanent role. Last year, I contracted on a few different projects, but as I mentioned in my April update, this year, Adam offered me a part-time gig helping out with “operations”. My job is to take care of all account and license related support, handle legal issues such as copyright and trademark violations, and other ops related things to help make the company run a bit smoother. It’s been going really well, and it feels like it’s been a win for everyone. Adam and the rest of the team are able to spend more time building while I take care of the support without much involvement from them, and I have a lot more stability financially than I’ve had in a long time. I guess that’s why people like jobs!</p>\n<p>We had a few big wins this year that I helped out with. In October, Adam, Robin, and I went to Rails World in Amsterdam because Adam was a speaker. In order to dry run his talk, he had the idea to organize a meetup, which I was put in charge of with only a week left to plan it (in a city I’ve never been to). Thankfully, I was able to find an awesome company in Amsterdam that took care of almost everything (thank you Catawiki!), and with a single tweet from Adam, we had a hundred attendees signed up. The meetup went really well, and it’s something I would love to do again in 2024. We also made a lot of progress on the legal side of things. We finally dealt with a copycat that has been using our name for several years, made a lot of progress on protecting our trademarks, and got rid of a ton of pirated Tailwind UI stuff on GitHub.</p>\n<p>I’ve learned way more than I expected this year — both from Adam, Jonathan, and the rest of the Tailwind team, but also from having to figure stuff out, such as the US trademark process, that none of us had any experience with.</p>\n<h2 id=\"out-of-beta\" tabindex=\"-1\">Out of Beta <a class=\"direct-link\" href=\"https://petersuhm.com/posts/2023/#out-of-beta\" aria-hidden=\"true\">#</a></h2>\n<p>By the end of 2022, both Matt and I felt a bit done with podcasting week after week. We decided to go on a break. Then over the Holidays, we had the idea to keep recording without necessarily releasing. We recorded for 6 months, and we just released those recordings as our <a href=\"https://outofbeta.fm/\">2023 Async season</a>.</p>\n<h2 id=\"health\" tabindex=\"-1\">Health <a class=\"direct-link\" href=\"https://petersuhm.com/posts/2023/#health\" aria-hidden=\"true\">#</a></h2>\n<p>Health-wise, I want 2024 to be better than 2023. Our three-year-old has never been a good sleeper (it’s finally getting a lot better now), so when the baby arrived this summer, we were already used to not sleeping through the night after three years of practice. My wife and I have both been severely sleep deprived this year, and while it’s not an excuse, the immense lack of sleep has caused me to be really bad about other things, such as food and exercise.</p>\n<p>I had a scare this summer when I ended up in the hospital because of an asthma attack caused by pollen allergies. It was a really scary experience. That morning, we actually thought the baby was arriving, but by the end of the day, it was me sitting in the hospital with an oxygen mask on my face. That experience was a huge motivator for me to get back into running, which I did a ton over the summer. By September, my lung capacity was really good, which made me calm down a bit. I didn’t really keep the running up over the fall, though, so I really want to get back into it in the new year.</p>\n<h2 id=\"2024\" tabindex=\"-1\">2024 <a class=\"direct-link\" href=\"https://petersuhm.com/posts/2023/#2024\" aria-hidden=\"true\">#</a></h2>\n<p>For the first time in 8 years, I don’t run a company. I’m tempted to start something, but I’m holding off for now. I love being on the Tailwind team, even though I'm kind of doing my own thing. I've booked a family vacation for January, and the idea that I could go without my laptop (in theory) is pretty insane. 2023 felt very reactionary. There were some huge things on the family, company, and mental health side of things that I had to deal with. My goal is for 2024 to become more intentional!</p>\n",
      "date_published": "2023-12-20T00:00:00Z"
    },{
      "id": "https://petersuhm.com/posts/writing-habit/",
      "url": "https://petersuhm.com/posts/writing-habit/",
      "title": "How I’m going to build a writing habit in 2024",
      "content_html": "<p>Once I figured out that the key to building my writing habit was to separate the process of writing from the outcome of publishing, I realized I could do this.</p>\n<p>It’s a bit of a cliché. I sold my struggling business two months ago, and to fill the void, I’ve decided to start writing more. Immediately after selling, I knew I needed a break from starting another software business. But I wasn’t going to do nothing. For the past year, I’ve had a part-time job, so I’m able to take however much time I need, which is both a blessing and a curse. But knowing myself, I knew I had to do something besides my job. The only problem was I didn’t know what. It’s not because I lack ideas — I’ve been a professional “ideas guy” for ten years.</p>\n<p>So I decided the best thing I could do was start writing. I’ve never heard anyone say, “I wish I didn’t waste so much time writing”. In fact, I don’t think I’ve ever heard anyone describe writing anything as a waste of time.</p>\n<p>I started thinking about how I could do it. Should I take on a book project? Start blogging? How about having a concrete writing goal every day?</p>\n<p>One of the only ways I know to get myself to do anything slightly unpleasant consistently is getting a streak going. Eventually, the pain of breaking the streak is bigger than the pain of doing the thing. That basically meant I had to write every day. 500 words sounded like a good number, so that’s what I set as my goal.</p>\n<p>It’s not the first time I’ve set myself a goal to write more. The thing that always kills my motivation is feeling like I have nothing interesting to say. It always happens around day three when I’ve used the few good ideas that were already in my head when I decided to start writing. It’s devastating, and there’s this voice in my head saying I’m not actually a writer and that this doesn’t matter.</p>\n<p>But then it occurred to me that I could simply eliminate the pressure to publish from the goal of writing, and it all clicked for me.</p>\n<p>If I’m able to form a habit of writing 500 words per day, surely I’ll have stuff to publish eventually. It might take a while. But it’s not even a real concern to me. So I decided to make that the goal. I can write about literally anything. If I can’t think of anything to write, I’ll just write about not having anything to write. Every word counts. I heard Jason Fried say recently that “no one has talker’s block” (I certainly don’t), so the point was to write as you talk.</p>\n<p>Having this very clear, low-pressure goal meant I could start thinking about the implementation of it. I decided that I would create a single document called “Daily writing”. Every day, I would add a date stamp and write at least 500 words. No editing. What’s already there is basically immutable. But if I end up writing something that I want to publish (like I think I will with this idea), I’ll grab the raw, unedited text from the daily writing document and bring it into its own document where I can work on making it publishable.</p>\n<p>I think this is going to work.</p>\n",
      "date_published": "2023-12-17T00:00:00Z"
    },{
      "id": "https://petersuhm.com/posts/freemium/",
      "url": "https://petersuhm.com/posts/freemium/",
      "title": "Freemium tanked my SaaS for 6 months — a cautionary tale",
      "content_html": "<p>For the past six months, my SaaS product <a href=\"https://www.reform.app/\">Reform</a> has been dead stuck at a revenue plateau. The reason? We switched the business to a freemium model. Ten days ago, I silently killed the experiment, and now April is on track to be the best month of MRR growth ever.</p>\n<p><img src=\"https://petersuhm.com/img/freemium.jpeg\" alt=\"\" /></p>\n<p>Two weeks ago, I was on a long walk in the forest (my favorite place to think) and a random thought hit me — when did our current revenue plateau begin vs. when did we launch our free tier? I literally had to hold my phone high above my head to catch enough 3g juice to pull down our MRR chart from ChartMogul, but I had to know instantly. It turned out that there was basically a one-to-one correlation between where our plateau began and when we launched our free tier on Product Hunt (😱 on the chart above). We actually released the free tier all the way back in April, but over the summer we ran a big annual 50% off deal which caused the spike before the plateau.</p>\n<p>As mentioned in <a href=\"https://petersuhm.com/posts/life-update-2023/\">a recent post</a>, I recently went solo on Reform and the free plan was resulting in a lot of support and abuse that I now had to deal with all by myself. Especially the abuse was terrible and so incredibly demotivating. There’s nothing worse than waking up in the morning and seeing a fake login page form that someone has already started to use for phishing. So I was already looking for a good excuse to kill the free plan (as if the abuse wasn’t enough lol). Seeing that MRR chart annotated with the free plan launch dates provided that excuse.</p>\n<p>So I killed it. I didn’t tell anyone, I just wanted to see what happened without polluting the samples too much. Originally, we offered a 7-day free trial before charging someone’s credit card. This time I decided not to offer the trial, and I also increased the price of our Pro tier from $25 to $35. It only took a couple of hours before the first Stripe “new customer” Slack notification came through. Muhahaha, I said to myself.</p>\n<p>To make a long story short, in the first three weeks of April, we got five new customers. In the past ten days since getting rid of freemium, we got fourteen. That’s three times as many customers in half the time. In fact, right now, April is our biggest month of revenue growth ever. Uhm, yeah, so we’re putting the brakes on the freemium experiment for now.</p>\n<h2 id=\"what-went-wrong\" tabindex=\"-1\">What went wrong? <a class=\"direct-link\" href=\"https://petersuhm.com/posts/freemium/#what-went-wrong\" aria-hidden=\"true\">#</a></h2>\n<p>So honestly I don’t really know, but one thing is that I hoped our implementation of freemium would pay for itself via referrals (powered by Reform kinda thing) — instead, it just cannibalized our potential paid customers. Was this a bad assumption? Maybe, but the way we implemented it was basically the way Typeform did it ten years ago, and it worked like crazy for them. All free forms had a prominent “Create your own Reform” button and the confirmation page was an ad for Reform. But it drove barely any signups — like close to zero.</p>\n<p>One theory for why this was working for Typeform ten years ago but didn’t work for us: Most people that fill out a Reform aren’t looking for a tool like Reform. There’s an indie competitor to Reform that has a lot of traction in the Notion and no-code communities. My theory is that if you fill out a form by a “no-code influencer” you’re literally being influenced by them and probably want to use the same form builder they are using. Same thing in 2014 when all the cool kids (👋 Pieter Levels) were using Typeform.</p>\n<p>The reason, I think, that we are getting customers faster now compared to before having the free plan, is because of all the hard work we’ve put into acquisition since then with SEO, etc. Maybe all that stuff actually did work, but freemium was just throttling the effectiveness of it.</p>\n<p>Instead of turning this into a “pros and cons of freemium” post, I think I’ll just end it here. I thought it was important to share a story of freemium not working and share my theory for why. Hopefully it helps you think through freemium for your own business — maybe it just confirms whatever bias you already have (but at least it was entertaining?).</p>\n<p>Who knows! Freemium. There you have it!</p>\n",
      "date_published": "2023-04-26T00:00:00Z"
    },{
      "id": "https://petersuhm.com/posts/life-update-2023/",
      "url": "https://petersuhm.com/posts/life-update-2023/",
      "title": "Life update 2023 — Taking Reform indie, working a part time job, and life in general",
      "content_html": "<h2 id=\"taking-reform-indie\" tabindex=\"-1\">Taking Reform indie <a class=\"direct-link\" href=\"https://petersuhm.com/posts/life-update-2023/#taking-reform-indie\" aria-hidden=\"true\">#</a></h2>\n<p>Okay, so the heading above might be a bit confusing to most people following along at home. “Wasn’t Reform already indie?” In a sense, yes, but also not really. <a href=\"https://www.reform.app/\">Reform</a> has been at a revenue plateau since last fall that we haven’t been able to break through. Plateaus suck — especially the ones that happen way before a business is profitable or sustainable. Those plateaus are basically default-dead plateaus. Most importantly, in terms of not being truly indie, the business was worth less than the liquidity preferences of our investors. So even though I was the main shareholder, I knew that if I sold the business, I wouldn’t make any money.</p>\n<p>Summing this up: The business wasn’t making much money, it wasn’t growing, and I didn’t stand to make any money from it even if we sold.</p>\n<p>When we started Reform in 2021, it wasn’t from a clean slate — it was essentially a full pivot from another business, Branch (and WP Pusher). Back in 2019, I joined the TinySeed accelerator with Branch and WP Pusher (I was the first person to get accepted into TinySeed). In 2020, after having acquisition talks with several big hosting companies, I was super optimistic about Branch and raised some more money from a couple of angel investors, including an angel-sized check from one of the most famous VC firms in the world. But by the end of that year, it was clear to me that Branch wouldn’t work. We had some great ideas and a solid product, but we had gotten the market wrong (WordPress). I called all the investors and asked if anyone wanted their money back or if they wanted to stay along for the ride of me coming up with something new — everyone wanted to stay invested. I came up with the idea for Reform and asked Bjørn, the developer that was working with me on Branch, if he wanted to be my cofounder — he did. Reform had a great start, but we didn’t hit product-market fit, and last summer, I think we ran out of Twitter followers and podcast listeners to grow further, which brings us back to the plateau I mentioned earlier.</p>\n<p>I stopped working full time on Reform last summer and stopped taking a salary so Bjørn could continue to get a modest salary. However, by winter, there wasn’t really money left for him to work full time on it either — it also wasn’t very exciting as we weren’t growing and basically just felt stuck trying all sorts of different things. The future of Reform started to feel pretty uncertain… I couldn’t see my way out of it.</p>\n<p>If I'm being 100% honest, part of this was also because I &quot;invested&quot; WP Pusher into the business originally, which we later sold for six digits, and I had a hard time accepting that this asset (all I owned at the time) was lost.</p>\n<p>In February, I sent a long email to my investors — I needed to completely reset the expectations around Reform. I felt like I was pretending to be the CEO of a fake startup. This led to some back and forth conversations where everyone was super understanding about where I was coming from — obviously, it wasn’t a surprise to anyone. Fast forward again, after two months of conversations, emails, and legal stuff, I had made arrangements to buy back equity from some of the investors with our limited capital and renegotiated some of the remaining liquidity preferences. This was huge. Suddenly, Reform started to feel like it was mine again. I really appreciate the understanding I felt from my investors — especially the ones that generously offered to let me buy them out at a loss or were willing to negotiate their preferences. More than anyone else, I appreciate Matt Wensing who is both friend and investor and patiently helped me a ton with navigating this.</p>\n<p>While going through all the investor stuff, I kept having conversations with Bjørn about how he was feeling about Reform. I feel like this is his story to tell, but ultimately he decided to move on from Reform. Him and I are still friends and I wouldn’t be surprised if we started another company together in the future! I completely understand the decision to move on. Working with Bjørn for the past three years has been awesome. He wrote most of the code for Reform and I’ll admit that the feeling of going forward alone was a bit intimidating at first. Thankfully, I’ve always done code reviews and made sure I knew my way around the codebase. Last week I shipped my first feature in eight months or something like that, and it felt reassuring.</p>\n<p>Even though there are some bittersweet feelings, in the end I’m really happy and proud about navigating through all this in the past few months — I feel like I’ve gotten Reform back, including the motivation required to keep working on it. It’s been weird not being able to talk about it, besides with friends in private. Coming out of this, Reform is in a really good spot to be a solo project for me — and personally, I’m in a good spot to have a project like Reform, but I’ll get to that in the next section.</p>\n<h2 id=\"joining-tailwind-labs\" tabindex=\"-1\">Joining Tailwind Labs <a class=\"direct-link\" href=\"https://petersuhm.com/posts/life-update-2023/#joining-tailwind-labs\" aria-hidden=\"true\">#</a></h2>\n<p>Back in July last year, my friend Adam Wathan reached out to me about an idea he had for the Tailwind CSS ecosystem — Tailwind Jobs, a job board for companies to find frontend talent. Would I want to help build and run it? Adam and the team put together an amazing offer where I’d get a fixed salary and work on Tailwind Jobs part time, so I still had time left for Reform. I was thrilled. Tailwind Jobs was a super fun project and I no longer needed a salary from Reform which meant Bjørn could stay on full time.</p>\n<p>We built and launched a super cool job board in something like three weeks — I think we were all surprised about how smoothly it all went. Sadly, we also quickly ran into some pretty huge roadblocks. We had a positioning problem where no one are actually looking to hire “tailwind developers”. We always saw the job board as “frontend and UX engineers”, not just Tailwind. But no matter what, with the name Tailwind Jobs, people weren’t really able to see past it. The only solution we could think of was to spin up a new brand, but the whole thesis for this business was that we could build something on top of the Tailwind brand. It was our unfair advantage. We decided pretty quickly to move on, which begged the question… What was I going to do at Tailwind Labs then?</p>\n<p>I definitely didn’t want Adam to make up a fake job for me just because Tailwind Jobs didn’t work out, but originally we had agreed to do a three-month trial, and Adam thought we might as well try some other things now that we had committed to it. For a couple of weeks, I felt like all I did was talk to Adam about what to do… We were pretty bummed about Tailwind Jobs and trying to come up with pivots that would make sense. Ultimately, we decided that the most productive use of my time was to help build some templates for Tailwind UI. The main result of this was the <a href=\"https://tailwindui.com/templates/protocol\">Protocol</a> template we shipped around Christmas, and I’m super proud of our work on that. It was some hard months because it ended up being impossible not to work full time if we wanted to push these projects over the finish line.</p>\n<p>Around the time of New Year, we had wrapped up most of the projects, and there wasn’t really anything obvious for me to do at the company with what was planned for early 2023. For a month or two I had planned to switch my focus back to Reform for 2023, which was pretty scary given the number I was seeing in our bank account. But then on New Year's Eve, Adam messaged me and told me he had wanted to hire someone to run “Ops” for a while but had just assumed I wasn’t interested. But he thought he would ask just in case. Ops mostly meant doing account and licensing-related support, plus handling a lot of piracy, trademark, and copyright-related issues we deal with all the time. Again, the expectation was that this would be a part time role since it was already being done part-time by someone else at the company.</p>\n<p>I honestly couldn’t think of a better role. The problem with working on Tailwind UI was that it required all of my creative energy plus a lot of hours. The Ops role is something I’m already super used to from my own companies and doesn’t really require that much creative energy, meaning that there is plenty left for Reform or whatever I’m working on.</p>\n<p>So I started working “for real” at Tailwind Labs in January and everything about it has been great so far. Having my base salary covered and still having time to work on other projects, such as Reform, has made my life so much calmer. There’s no longer a runway.</p>\n<p>Unfortunately, I’m going to miss our upcoming team retreat in June, and I’ll get to why in the next section. However, I did go to our latest one in Florida in October, which was so much fun. We went to Universal Studios for three days of theme parks, swimming pools, and amazing steaks.</p>\n<h2 id=\"growing-the-family\" tabindex=\"-1\">Growing the family <a class=\"direct-link\" href=\"https://petersuhm.com/posts/life-update-2023/#growing-the-family\" aria-hidden=\"true\">#</a></h2>\n<p>Our 2-year-old boy will be a big brother in a few months, and I can’t wait. Everything I described above feels like I’m at a good place in order to go all-in on family life this summer.</p>\n<p>14 months ago, we moved to a new town, Sorø. Located 45 minutes by train from Copenhagen in the middle of the forest, surrounded by lakes, I couldn’t imagine a better place to live in Denmark. I’m so thankful we found this place, and it feels like we’ve finally been settling down after we had to move to Denmark in the middle of the pandemic while my wife was super pregnant and everything was crazy. In September, I organized an impromptu meetup here where something like 20 SaaS founders showed up with barely any notice. We meet at my coworking space, which is based at the old train station building here in town (on the busiest train line in Denmark). We started out with breakfast, did some masterminding, and then headed out into the forest on a 15km hike. It was an amazing day that I hope to repeat one day soon! This town is awesome, with a bunch of little cafes, museums, historical sights, parks, etc. Come visit!</p>\n<h2 id=\"the-podcast-out-of-beta\" tabindex=\"-1\">The podcast — Out of Beta <a class=\"direct-link\" href=\"https://petersuhm.com/posts/life-update-2023/#the-podcast-out-of-beta\" aria-hidden=\"true\">#</a></h2>\n<p>Back in November, Matt and I started talking about putting the brakes on our podcast Out of Beta after about 150 episodes. It felt unreal even talking about it, and in the end, we couldn’t really end it. Instead, we came up with the idea that we would keep recording but not release. That way, we could be as transparent as we wanted because we could just edit it later in case we decided to release it.</p>\n<p>A ton of stuff has happened with both of our companies since then, so I’d be surprised if we don’t end up releasing this as a season at some point!</p>\n<p>Anyways, this is basically the worst blog post I’ve ever written (at least since I had a Danish blog about how to make money online 17 years ago when I was in high school), but I just wanted to get something out there and hopefully get back into writing a bit more.</p>\n<p>See ya!</p>\n",
      "date_published": "2023-04-25T00:00:00Z"
    },{
      "id": "https://petersuhm.com/posts/startup-okr/",
      "url": "https://petersuhm.com/posts/startup-okr/",
      "title": "How I use OKR to plan my indie startup",
      "content_html": "<p>In this article, I want to share how I use OKRs (Objectives and Key Results) to run my startup, <a href=\"https://www.reform.app/?via=petersuhm-com\">Reform</a> (a form builder you should check out if you run your own business). I've been doing it for more than two years now, and I don't know how I'd get anything done without it. I'm a developer, and the OKR methodology is the operating system I build my plans on. Before each quarter, I &quot;develop&quot; a new OKR plan and hit &quot;run&quot;. It's awesome.</p>\n<p><em>Preface: I'm not an expert on OKRs. I've skimmed John Doerr's Measure What Matters, but this is all based on my own practical experience running a 2-person startup. I got into OKRs because of my good friend Matt Wensing (whose product <a href=\"https://usesummit.com/\">Summit</a> you should also check out if you run a business). He showed me his process, and I've stuck with it for two years now. Thank you, Matt!</em></p>\n<h2 id=\"what-are-okrs\" tabindex=\"-1\">What are OKRs? <a class=\"direct-link\" href=\"https://petersuhm.com/posts/startup-okr/#what-are-okrs\" aria-hidden=\"true\">#</a></h2>\n<p>OKR stands for Objectives and Key Results and helps break a big goal into smaller, more actionable chunks. However, I don't want to write a whole bunch about the theory behind it (because I don't know it LOL). I want to show, not tell. OKR is pretty magical when you first try it. So let's skip the theory for now.</p>\n<h2 id=\"reform's-okr-plan-for-q3-2021\" tabindex=\"-1\">Reform's OKR plan for Q3 2021 <a class=\"direct-link\" href=\"https://petersuhm.com/posts/startup-okr/#reform's-okr-plan-for-q3-2021\" aria-hidden=\"true\">#</a></h2>\n<p>The best way to show you what OKR looks like for me is to walk through an actual plan. So here's how our OKR plan for Reform's Q3 look:</p>\n<p><img src=\"https://res.cloudinary.com/reform-app/image/upload/v1630992981/OKRs-q3_joraba.png\" alt=\"\" /></p>\n<p>Even though there are many fancy tools that can help manage OKRs, we just use Notion. I'm sure those tools are handy when you're more than two people, but for us, Notion is perfect. This template is 100% copied from Matt, as I mentioned earlier. Thanks again, Matt!</p>\n<h2 id=\"start-with-the-objective\" tabindex=\"-1\">Start with the objective <a class=\"direct-link\" href=\"https://petersuhm.com/posts/startup-okr/#start-with-the-objective\" aria-hidden=\"true\">#</a></h2>\n<p>It all starts with my objective for the quarter. Once the objective is defined, I can work backward to figure out what needs to get done. But how do you figure out what the objective should be?</p>\n<p>When Matt introduced me to OKR and helped me plan Q3 2019, he asked me, &quot;when you sip your mulled wine for Christmas (it's a big deal here in Denmark) and look back at the quarter, what would make you feel really good about where things are at?&quot;. Or at least something like that. That was a helpful thought experiment. Your objective needs to be ambitious and feel exciting. Otherwise, there's no way you're going to stick with it. I say &quot;you&quot;, but I mean &quot;I&quot;.</p>\n<p>When I wrote our Q3 plan, I was so tired of not having launched yet. I didn't want to send another early access invite. I just wanted to launch. I wanted to be able to look ahead and move on. Make long-term plans etc. So the thing that got me excited was to launch and lay a solid foundation for a self-serve SaaS that we could build upon in the coming quarters. You know, do marketing and stuff like that.</p>\n<p>Don't worry about how to get there. Yet.</p>\n<h2 id=\"break-it-down-to-key-results\" tabindex=\"-1\">Break it down to key results <a class=\"direct-link\" href=\"https://petersuhm.com/posts/startup-okr/#break-it-down-to-key-results\" aria-hidden=\"true\">#</a></h2>\n<p>Once you have your objective, everything gets a lot easier. The next step is to define the key results. Key results should be measurable. This is important because, if done correctly, the key results will tell you if you've achieved your objective or not. You need to be able to score yourself on the key results (I never do, don't tell Matt).</p>\n<p>So the way I go from objective to key results is by asking, &quot;what needs to be true before I can honestly say I've achieved this objective?&quot; The principles here are pretty straightforward, but it takes some work since this is where I do my actual planning.</p>\n<p>This quarter, most of the objective is actually achieved by the first key result, which is to launch the darn thing, and the third, which was to &quot;finish&quot; our product. A lot of the self-serve SaaS stuff is a blocker to launching. The remaining two key results are a bit more forward-looking. There is actually a fifth secret key result that I decided to leave out of this post (and we're making progress on it). The objective could probably have been defined better, but, you know, it got us through the quarter. And we launched!</p>\n<h2 id=\"turn-it-into-actions\" tabindex=\"-1\">Turn it into actions <a class=\"direct-link\" href=\"https://petersuhm.com/posts/startup-okr/#turn-it-into-actions\" aria-hidden=\"true\">#</a></h2>\n<p>The final step is to take your key results and turn them into actions. Essentially a to-do list for each key result. This is what makes OKR so awesome. You end up with:</p>\n<ul>\n<li>Well defined to-do items to execute on</li>\n<li>That maps directly to a key result</li>\n<li>That explicitly helps you achieve your objective</li>\n</ul>\n<p>What this means in practice, at least for me, is that I don't need to question my work every single day. I know what to do and why. I know that if I do X, I make progress on Y key result that helps me achieve Z objective.</p>\n<p>Here's what that looked like for launching Reform:</p>\n<p><img src=\"https://res.cloudinary.com/reform-app/image/upload/v1630995526/reform-launch-key-result_lvc6w3.png\" alt=\"\" /></p>\n<p>It's not rocket science, but it gets the job done!</p>\n<p>And that's all there is to it. If you have any questions or comments, let me know on Twitter.</p>\n<p>Good luck! 🙏</p>\n<p><em>Pssst! If you need a form for something, check out <a href=\"https://www.reform.app/?via=petersuhm-com\">Reform</a>.</em></p>\n",
      "date_published": "2021-09-07T00:00:00Z"
    }
  ]
}
