Day 1

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
We're building a startup in 80 days in public. Day 1 was on Jan 10 '22. You can check out Day -1 and Day 0 about how we prepared this site. You can find today's entry at Day 67.

Today's posts:

Not all Startup ideas are created equal

Okay, so we have 80 days to build something. 80 days means 16 weeks at 5 workdays per week. We’re in Europe, after all!

0 to profit in four months. Two people. And we’re doing everything ourselves. We’ll be generous and consider anything that covers our hosting costs profit ๐Ÿ˜‰

Now what can we make in four months that is useful enough to charge money for, and ideally, has broad enough appeal that it might grow quickly?

And that brings us to the subject of this post. Let’s that you have the technical software skills (or willingness to learn) to build pretty much anything, and let’s assume you have enough common sense to figure out the business side. How do your approach the problem of deciding what to build?

I’ve heard people argue, time and time again, that ideas don’t matter and that ideas aren’t worth anything. I know it’s fashionable to be contrarian on the internet, but let’s get real. Of course ideas matter. If you don’t have a good plan of what you’re going to make, how you’re going to make it, why people need it, how you will reach your audience, and how you will make money, you’re really just hoping to get lucky. A good idea doesn’t guarantee anything, but with a bad idea failure is a given.

The equation changes when you take outside investment. Friends, fools, and family. Angel investors. VC. When you’re spending other people’s money you can have a great career even when you run your startups into the ground.

Bootstrapped startups are fundamentally different. You’ve got to make something people are willing to pay for or you’ll fail. In my book that’s a good thing, and I think way too many people sit at the extremes. Either they work on hobby projects that have no chance of becoming self-sustaining (e.g. github projects that the programmers dream of working on full-time), or they go for disruptive moonshot startups (that have a tiny chance of making a huge impact). Don’t get me wrong, there is plenty of value in both but most businesses are going to be in the middle: regular products that people pay for because they solve some problems.

Okay, let’s zoom out a bit and consider our options. We’re good at software and we enjoy writing software. No surprise here: we’re doing a software startup. But the universe of software is large. So what kind?

Indie Game

Games we can immediately strike from the list. Building a game can be a ton of fun but making games for a living is absolutely unforgiving. The downsides are too numerous to list all, but these are the main ones:

  • You can’t know if your game concept works (meaning: whether it’s actually fun to play) unless you actually build it and play it. If you’re unlucky, you’ll spend the better part of a year before discovering your idea is no good and can’t be salvaged.
  • Games demand a high level of polish but are sold cheaply thanks to regular Steam sales on high-budget AAA titles. A low sales price implies the indie game dev needs high volume to recoup their investment. The indie dev also needs to cover the costs of the inevitable dud; breaking even on your successful games isn’t good enough.
  • Indie devs make most of their money in a single big sales spike when the game is new. This means you need a lot of marketing and hype going into it. Otherwise your game will languish on page 17 of some game marketplace. And that’s a real bummer, because your game needs to be a hit or you’ll go broke.
  • Which is the next problem. Indie game devs are completely dependent on 3rd party platforms for distribution. These platforms take a large cut of revenue and they have their own obnoxious systems for pushing updates and saving games to the cloud. This is going to take up time you don’t have.
  • No common platform. Want to support Windows, Mac, and XBox? You’ll have to do a ton of duplicate work and you’ll have to fight through many painful debugging sessions. And everything better work perfectly when you launch otherwise you’ll have angry gamers to deal with and all your effort will be for naught.
  • It’s effectively a winner-takes-all market. People want to play popular games with rave reviews. If you make a game that’s merely good in a category that has some truly great games then you’ll still lose.

It’s a cold and unforgiving world out there, especially if you’re an indie game dev. Thankfully, there are other options.

Mobile iOS app

When Apple launched their App Store over a decade ago a veritable gold rush took place. And for a good reason, iPhone users were eager to try new apps and the App Store made trying and buying apps super easy. For a few years you could make an app in any category and do very well. But the good times don’t last (they never do). Eventually the App market got saturated and prices were pushed down. People got used to paying 99ยข for an app, and at that price point indie devs can’t really sustain themselves. Combine that with competition from free ad-supported apps and that’s that. It’s a race to the bottom where app developers have no pricing power and Apple still takes a 30% cut.

Even if you beat the odds and build a successful business on the App store you can still get kicked off without notice, your updates might get rejected, or your product might get shamelessly cloned by Apple. Apple can’t be reasoned with, can’t be bargained with, and it doesn’t feel pity, remorse, or fear ๐Ÿ™‚

Android’s ecosystem isn’t any better. The verdict here is clear: don’t build an iOS app unless you’re happy to submit to Apple’s arbitrary and capricious ways.

Desktop App

Web tech is pretty much broken. On the server side it’s not hopeless because you are fully in control of the stack. Client side? You’re stuck with CSS and Javascript or a myriad of languages that sort-of-but-not-really have CSS and Javascript as compile target. You can use OpenGL, or a subset thereof, WebGL, but it’s buggy and doesn’t work on mobile devices. You have offline storage, with IndexedDB, but no guarantee the data you save will actually persist. And the web is insecure by default, which means you’re always one typo away from catastrophe. I’m sure we’ll write extensively about web security in the coming days and weeks.

If the web is such a mess, clearly the solution is to write a desktop app, right? Well, no. The web gets one thing right and that’s distribution. People can just click on a link and they’re immediately in your app. Within 30 seconds you may have caught their interest and after that they’re hooked. By contrast, if you have a desktop app you need to persuade people to download the app using your website, YouTube, or by other means. If your software is actually good you want people to experience that for themselves, but if you write desktop software you’ll lose the majority of prospective customers before they’ve even downloaded a free trial.

The distribution model for desktop software desperately needs to get solved — not by app stores but by sandboxing. Let people freely download and try software without having to put their entire machine at risk. This requires a major change in direction by Apple and Microsoft who are both committed to the distribution model of curated app stores. I really hope desktop apps will make a comeback, but until distribution, cross-platform, and security problems are addressed I don’t see it happening. Until then indie devs who make desktop software are fighting an uphill battle.

Hobby/leisure/marketplace app

This shouldn’t really be a category by itself, but I see too many techies take the advice to “scratch your own itch” too literally. There is no shortage of minor annoyances in life but very few of these problems can be solved by software.

In this category I’ll also include marketplace apps that don’t solve real problems. You don’t need an app to keep track of which neighbor borrowed a lawnmower. That’s not to say marketplace apps can’t work, but they’re notoriously difficult to bootstrap. If you really want to go this route build a hobby blog/community first and grow a large audience. This will take at least a couple of years. After you have a captive audience you can start the marketplace service. Marketplaces need a critical mass of buyers and sellers, otherwise it provides no value, and you can’t bootstrap that from zero.

This means, unless you’re already running a community website of some sort there are better options elsewhere.

Enterprise Web App

When we talk about Enterprise software we mean software that’s used by larger businesses. The fundamental difference between software for the Enterprise and Small/Medium sized businesses (SMB) is in the sales cycle and the kind of support the Enterprise customer demands. And Enterprises only like to purchase software from established companies. If you’re a bootstrapped startup you don’t have the time to engage in contract negotiations, extended talks, product demos, and other handholding the Enterprise customer expect. That sucks, because it means you won’t win the customer even if you have the “best” product.

Many Enterprise software products are qualitatively bad, but entrenched. If you want to disrupt a market like that you’re going to need a team of engineers to quickly reach feature parity with existing solutions and you need a sales team to push your software. There is also a general lesson here. If you’re thinking about entering a market where the existing solutions are suspiciously bad, don’t ignore that feeling. It might mean that the people who make the purchasing decision are far removed from the people using the software. And that, in turn, means that you can’t win by making better software.

In every Enterprise software market you have to compete with entrenched players and lavishly funded startups that will happily lose money for a decade if that’s what it takes. As a self-funded bootstrapped startup you won’t stand a chance in direct competition against them. Some markets belong to VC backed startups, and this is one of them.

Plugin/extension/integration to existing platform

This is the first software category that has real promise for independent bootstrapped startups. Any business that grows quickly has users clamoring for extra functionality that’s not in the main product. That is where you can find good opportunities, because it’s so obvious where your potential customers are and it’s easy to reach them. In many cases the platform business is eager to highlight and market add-ons/plugins and the like because it allows them to solidify their position in the market.

You can write an add-on for enterprise products like SAP or SalesForce or for SMB products like Slack, Stripe, WordPress, Google Workspace, Office 365, and many others.

The biggest downside with businesses like these is that they don’t last. Why? Because the platform business can see exactly which plugins/extensions are popular and just clone the best ones and turn them into native features. In a sense you’re competing with the platform that you’re also entirely dependent on. This puts a ceiling on how successful your add-on can be. But if the big fish is big enough, and some of them are huge it’s still very much worthwhile.

Prosumer/freemium webapp

Freemium apps are apps that users can indefinitely use for free but they can choose to pay for a premium version that offers some extra functionality. It’s all about scale here. If you have enough users you don’t need to make much per customer to have a nice business.

A typical strategy is to start by giving away your software for free and enjoy the hopefully exponential growth in free users for as long as it lasts. When user growth starts slowing down you introduce a paid (subscription) plan and a fixed percentage (3% maybe) of users will convert. For bootstrappers this can result in a real painful dilemma. Because you want to wait as long as possible before you exchange exponential growth for linear growth + revenue. But if you’re running out of money you might get forced to start charging for your product prematurely.

The cool thing about freemium apps is that you can get many users quickly, the only problem is monetization. And that’s a big one. Go this route if you think you can make something that appeals to millions of people.

SMB webapp

The SMB segment is underserved when it comes to software. They need software to run their businesses and they have money to spend but Enterprise software businesses don’t cater to their needs. SMBs generally want simple software that “just works” and that they don’t have to worry about. Small companies will happily pay $50 to $500 a month for anything. It’s not much money when the alternative is hiring additional staff. For every 1000 customers paying $100 a month you’re making a million in revenue. 1000 isn’t a large number. If you’re willing to grind your way through you’ll get there eventually.

The only real difficulty here is reaching your potential customer base. SMBs don’s spend their days googling for software that might help them with a problem they have. If you have a good product in this segment marketing will be your biggest pain point.

But if you keep growing your customer base and keep improving your product you’ll be able sell to the lower end of the enterprise segment as well. It’s a good place to be. It just takes a long time.

Near universal truths

Let’s zoom out a little bit. When you make a product you want to make something…

1) that people will use regularly and that solves some pain they have. If they’re not using your product regularly they’re not going to be exited about it and talk about it.

2) that people, and ideally businesses, are very happy to pay for. Basically you want to look for indirect competitors. If there are plenty, that’s a great sign. If a single business has a stranglehold on the market, think twice.

3) that you can prototype relatively quickly. Established businesses can create prototypes for products that will go to market a decade from now, but you can’t afford to. You need to move fast and get it out there.

4) that has an audience you know how to reach. Tech people don’t like marketing, and we’re no exception. But if people don’t know your product exist they won’t try it, and that’s no good. If you’re doing something you’re excited about it’s much easier to talk about what you’re doing, and that’s the essence of marketing.

5) that is unique and clever in a way that’s hard to replicate. You don’t want to clone somebody else’s product. It’s uninspired, the customer can tell, and it almost never works.

It can be hard to make sense of all the contradictory advice you find on the internet. But it helps to remember that funded and bootstrapped startups play by completely different rules. You also have survivorship bias: startups that succeed despite the odds are unaware of how lucky they got. One of the biggest hurdles is going from nothing to making a symbolic amount of money. You want some indication that you’re not crazy and that there are actually people out there that like what you’ve built. Once you know you’re on the right track you’ve just got to keep going. The first part is where tons of people get stuck.

We hope to show people with the 80daystartup what you actually have to do to launch a commercial web app.

Spoiler: it’s actually a lot of work. But we’ve done this before and we know what we’re signing up for. Here we go!

Generating Twitter/Social Cards for shared posts

Okay, bit of an aside, but hey we share what we’re working on, including distractions. While writing our first posts, I thought it would be nice to have some previews show up when posts are posted on Twitter or whatever. So I quickly hacked something into our WordPress blog to automatically generate an image which social media like Twitter will use as a preview for the URL.

The image shows the 80daystartup logo with the title of the post dynamically added into the image. The twitter/social card for this post is:

assets/gen_social_img.php:

<?php
// Generate twitter large card: 1200px x 630px
// Example https://80daystartup.com/wp-content/themes/theme80/assets/gen_social_img.php?string=some%20string&h=md5('some string'+salt)
$imgPath = '/var/www/html/wordpress/wp-content/uploads/card_base_image.png';

header("Content-type: image/png");
$image = imagecreatefrompng($imgPath);
$color = imagecolorallocate($image, 0, 0, 0);
$text = "Creating A Startup From Scratch in 80-Days With A Long Title";

if (isset($_GET['string'])) {
        $text = $_GET['string'];
        // not super important, but just to prevent everyone making their own ;)
        if (md5($text . "YOURMAGICSALTHERE") != $_GET['h']) {
                $text = "";
        }
}

$text = wordwrap($text, 25, "\n", TRUE);

$fontSize = 60;
$y = 380;
$angle = 0;
$font = '/usr/share/fonts/truetype/lato/Lato-Black.ttf';

$bbox = imagettfbbox($fontSize, $angle, $font, $text);
$center1 = (imagesx($image) / 2) - (($bbox[2] - $bbox[0]) / 2);

$x = $center1;

// Add the text
imagettftext($image, $fontSize, $angle, $x, $y, $color, $font, $text);
imagepng($image);
imagedestroy($image);
?>

In header.php, each post then dynamically generates a call to gen_social_img.php, which will return the image:

<head>
  ...
  <meta content="summary_large_image" name="twitter:card" />
  <?php
  $title = "My title goes here";
  $twitter_image = "/wp-content/themes/theme80/assets/gen_social_img.php?string=".urlencode($title)."&h=".md5($title."YOURMAGICSALTHERE");
  ?>
  <meta content="<?php echo esc_attr($twitter_image); ?>" name="twitter:image"/>
  <meta content="<?php echo esc_attr($twitter_image); ?>" name="og:image"/>
  <meta content="<?php echo esc_attr($title); ?>" property="og:title" />
  <meta content="<?php echo esc_attr($title); ?>" property="twitter:title" />
</head>

Just to end on a note more relevant to today’s topic of looking for startup ideas.. in general, plugins to solve issues you run into and enhance existing software (or other products) are also interesting startup ideas. It’s an existing market and you’re usually not the only one running into a certain issue.

Hello World!

Day 1! Last week, as a preview, we wrote a bit about how we prepared this site (you can read the entries at Day -1 and Day 0) and now it’s time to finally get started. The first important part is the idea of what to build, so today we’ll post some of our ideas about.. ideation.

As a quick intro though, I thought I’d also quickly mention all the stuff we’re not going to worry about. Although it might seem obvious, I think it’s good to mention because I often read people worry about all kinds of aspects before starting their first business, which once you’ve actually built something you know just don’t matter. The beginning is a very fun/creative process, but it’s just too easy to come up with reasons why something wouldn’t work and then not get started:

  • Lack of “business experience”. You don’t need a fancy company structure (nobody succeeded by having more companies than customers), you don’t need to write BusinessPlanLastVersion3.docx, know what SWOT means or start by printing business cards. That’s just how it works in movies (and in school textbooks maybe). All the stuff which actually matters you can learn on the fly.
  • I don’t have “a network”. Neither do we, and it’s very very rare to have people actually care about what you’re doing right from the start anyway. Chances are nobody will read these initial posts, or not until we’re much further in the process. You can only get the ball running by putting things out there, so just start.
  • There’s not enough new things left to interest people. That’s why it’s so great to launch online businesses today. If this is a worry then people vastly underestimate how big “the internet” actually is. Even a tiny niche idea in the context of billions of people will get you some initial fans.
  • “That’s not how things are done”. When we bootstrapped our first web business, I think quite some people we knew just assumed it wouldn’t really work out, because it was different from all the examples they had seen and were told about as things proven to be “possible in life”. If everything worked like this, nothing new would ever be tried. As long as you don’t break any laws of physics, no reason not to try it because you assume it’s impossible.
  • What if it’s bad and fails? Only way to improve is to start. We have plenty of experience with code and business aspects of online startups, but there’s always new developments and many things we haven’t tried. The idea for 80daystartup is going to involve lots of writing, maybe things like podcasts, who knows what else. All of which I have little to no experience with, so it’s very likely I’ll be very embarrassed looking at all the writing a year from now. Which is great, that means progress!

Anyway, enough with the worries ;). Next step, ideas!



← Previous day (day 0)Next day (day 2) →


You can follow us on Twitter @jdvhouten and @wcools and look for #80daystartup

Read more

Work/new-life balance
Durable tech
Dogfooding
Early user feedback
Spending time to save time
Products want to be platforms
Always be launching
Enjoying the journey
Work-life balance
Recap @ Day 59
Perils of caching
Desktop-first
Making sense of contradictions
Trust signals
DIY javascript error logging
Taxes: an automation story
Magical thinking
Start small
High conviction, low conviction
Most deals fail

Post archive