🔁 Software is about loops

Raw thoughts, posted as of 3/7/23

In the last 6 months, my life changed.

I joined Founders Inc. back in November and since then have worked on 4 projects: Poss.Ai, MagicStory, Scenario, and Leap.

I’ve gotten to work with some of the best people in the software industry and wanted to start writing to capture the mental model I’ve observed of how building software works.

The core framework — build, measure, learn. Software is about loops.

💡 You build the minimum loop you want to get someone through. You measure if it is working. You extract some insight from that measurement and use that to refine your loop.

Step 1 — define your loop

With Poss.Ai the loop was signup → upload pics → generate avatars → share them on your socials

With MagicStory the loop was input email → fill out story form → get emailed story within 24 hours → read story with your kid → come back to make another

With Scenario.gg the loop was signed up → create a generator → generate images → use images in your game

With Leap the loop is to sign up → try generating in the dashboard → get good results → integrate API to your app → launch an app on top of us.

Step 2 — measure your loop: define your KPI / north star and track it

Since we launched with a usage-based pricing model at Leap, the KPI we started with was the number of weekly active non-dashboard API keys — a proxy for how many apps were built on Leap.

We stare at this number every day. We try to at least double it every week. If we don’t hit it, we know something isn’t working. If we do hit it, we figure out what caused it to go up, and then set a more ambitious goal.

Step 3 — get enough traffic coming in to have statistically significant data

Great — you have your KPI defined and visible. Now what? You need a consistent growth engine that will bring you enough people flowing through your loop. If done well, this is like a constant stream of water that flows into a mill.

The constant stream is your growth engine. The watermill is your loop. No matter how well your mill is converting water, the stream needs to continuously keep pouring water.

In practice, your growth engine brings a statistically significant number of people top of funnel to try your loop each week.

For example: during week 1 of MagicStory, I launched without a backend ready and had a queue of 1,000 stories. I manually processed 100. That means I had a sample size of 100 people in my loop.

That’s a start, but not statistically significant. I needed to have at least 500-1,000 users each week through the loop to start learning something meaningful.

Step 4 — finding insights from the data

Once you start measuring your loop, you will have clear evidence about where the problems are.

  • Only 100 signups? Not enough people are coming through the door — focus on growth. It could be paid ads, it could be influencers, it could be a content engine. We started with just $500 / week paid ads to get enough people in the door.

  • 1,000+ signups but only 6 active apps? Deploy hand-to-hand combat — reach out to those 6 and see how they got through the loop and what their most common issues were. Go through the loop with fresh eyes, and keep hammering the UX blockers. Don’t worry about UI or polish until the UX is works — I’ve seen terrible UI with great UX still win, but not the opposite.

  • You are going to get a lot of feedback. It is important to parse it correctly.

    • How frequently do you hear the same problem?

    • Who is it coming from?

    • Prioritize paying users and make your decisions based on data.

  • When it comes to solutions, perfect is the enemy of good - just launch. This goes for your products, your emails, your tweets, etc. Stop perfectly crafting everything - find the 80/20 solution that gets you 80% of the output for 20% of the input.

Here’s a short list of things we track:

  • What are your distribution channels?

  • How is your loop/funnel converting?

  • How many users are landing?

  • How many sign up?

  • How many get to your “wow” moment?

  • How many upgrade to a paid plan?

  • For dev tools — how many become active apps?

You want to quantify it all with statistically significant data, and you want to create a view that shows this breakdown for each weekly cohort of signups so that you can attribute changes you make. (Ideally, multiple views that show each cohort’s performance after 3 days, 7 days, 30 days, etc).

💡 you are building a machine → you should know how much it costs to acquire your KPI / north star metric (CAC), and eventually the LTV of that KPI.

Step 5 — building a growth engine

“First-time founders focus on product, second-time founders focus on distribution”

I used to think paid ads were for chumps. I was wrong. I was the chump because I didn’t have enough people using my product to have statistically significant data about anything.

In my early days as a founder, I built lots of features but wasn’t able to measure or learn because I lacked statistically significant data.

Paid ads are great fuel to start a fire, but in our case, our growth engine is driven by content + influencers. We make content about what we ship, we get eyes on that content through influencers or paid ads. Long term we make SEO plays. Short term we partner with established brands to build our credibility.

The goal? Drive down CPA (cost per acquisition) and CAC (cost per customer) while bringing in high-quality / high-volume traffic.

How? The same way as with your product. Build, measure, learn. 

You should be measuring the attribution of every campaign you run. You need to figure out what your channel will be. Start by casting a wide net, spray and pray, then double down where you have traction.

Defining your A+

Now the framework is in place — but where do you focus? Product? Growth? Visibility?

You need to define your A+ — if you have no loop then you need to build your loop. If you have a loop but no measurement then you need to measure it. If you have a loop + measurement but no insights you need more data and should focus on growth.

This is a daily question to ask yourself.

What is my A+ problem to solve? Ruthlessly ignore everything else.

What winning looks like

Winning = explosive growth in your KPI. We shoot for at least 2x growth week over week, with a proper build, measure, learn cycle and you are on your way to a well-oiled machine of a business.

This week at Leap we 35x’d our KPI — active API keys went from 62 to 2,100.

Now what?

The goalposts shift — the north star is no longer just active API keys, but apps that are doing high volume usage each week and hitting a minimum revenue threshold.

We are still at 2/10 right now.

Until then,

Alex ✌️

3/7/23