Andrew Chen on the Lost Art of Designing Viral Loops
Andrew Chen has been writing "brain dumps" on X about the lost Web 2.0 art of designing viral loops for software. This week, we're bringing you the first in the essay series.
💡 This Week’s Big Ideas
🧊 SR005 founder Philipp Wehn of Nexxa had a child shortly before Demo Day, but still managed to pull it all together. This is his story.
🔨 Tom Hammer comes in swinging with a different perspective on “996”
🔮 Bella Nazzari knows some startups that are hiring…
🤝 Jon Lai makes the case for being more friendly as a founder
💼 Join our talent network for more opportunities. If we see a fit for you, we'll intro you to relevant founders in the portfolio.
Over the last two weeks, a16z speedrun General Partner Andrew Chen has written a series of “brain dumps” on X about what he describes as a now-lost art of designing viral user acquisition loops for software products.
Andrew will soon be posting all three essays on his Substack, and we’re publishing the first in the series below.
The golden age of Web 2.0 (~2005-2010) was a special time for viral products, which were systematically engineered to reach millions of people. Back then, people were building the first versions of things we now take for granted: Social networks, user-generated platforms, collaborative workplace products, messaging apps, etc.
During this time, the industry developed a comprehensive and systematic understanding of creating viral loops. There was measurement, A/B testing, and equations that needed to be satisfied. Products optimized and optimized, engineering virality. And some of the most successful of these products eventually grew to billions of users and became recognizable names.
Then all of a sudden, it ended.
And funny enough, the people who were successful at creating viral products all became billionaires, or if they didn’t create successful companies, many became FAANG executives or VC investors. Eventually, all the knowledge around building virality was basically lost. This happened as Web 2.0 ended and the mobile era began.
I thought it might be nice to write down a full brain dump of everything that I learned about viral loops during this period, because it does continue to be relevant, although the mechanics and tactics around it keep shifting and changing. Yet the overall theory is still the same, and I think it can be extended into future technology platforms and marketing channels. It also has a high degree of applicability to this era’s Product-Led Growth, all the sharing flows of genAI apps, and referral programs that still exist within every marketplace/ecommerce product.
With these notes, I plan to cover a bunch of different ideas and topics:
Simple viral loops that work, but then quickly disintegrate.
Viral factor and how to calculate it.
How to actually break down a viral loop step by step and optimize
What increases the viral factor, and what decreases it?
How to improve viral factor
Case studies like content sharing, invite flows, referral loops, collaboration loops, etc.
How retention drives viral growth.
How do you incorporate retention into your viral factor calculation
Why new users invite more people than existing ones.
How to think about word-of-mouth vs. engineered virality.
How to think about paid marketing, SEO, social media, and the effects of other channels on viral factor.
Why mobile eventually killed the classic viral loops.
What kinds of viral loops work in the contemporary era
...and much more
If you have thoughts and questions please ask. Hopefully I’ll eventually turn this into a big PDF or something that people can read if they’re interested. Or maybe a deck if we have some kind of long-form text to PowerPoint deck genAI tool one day that’s actually good :)
VIRAL GROWTH AS AN EQUATION
Usually, when most people talk about viral growth, they mean something silly (and non-durable), like tweeting a really cool video that then gets shared a bunch of times and drives traffic to your product. That’s not what I’m talking about. Instead, the viral loop I’m talking about is designed into a product, with invite features, tagging, referral links, and so on.
These types of viral loops have interesting properties:
it is measurable and can be tracked
it can be improved with product decisions
the math applies to any form of product-driven virality (invites, shared content, referral programs, etc)
The first thing is trying to measure viral factor. The viral factor is a simple ratio—the usual thought experiment is that if you bring 100 users into your product, and those users invite and eventually sign up 150 users, then those will sign up 225 users and so on. This is a viral invite flow, and your viral factor in this case would be 1.5 (rarely seen in the real world). On the other hand, if your 100 users end up signing up 50 of their friends, who then sign up 25, then your viral factor is 0.5. When it’s <1 then your viral loop eventually stops working.
Very precisely, the viral factor is a RATIO. The denominator is the # of users within a time-bound cohort (like everyone who signed up from X date to Y date), and the numerator is how many users they eventually signed up via the viral loops from that cohort.
Let’s use an example to make it concrete.
CASE STUDY: CONTENT SHARING
A very common form of viral loop has an app that lets a user create something really cool (maybe that’s with AI or photo filters or otherwise). After the user creates something, they want to share it, so naturally a link is provided. Some new users receive this link, view the content, and some smaller % of these folks sign up to make their own content. At its core, this is what the new generative video and photo apps do (like Sora). But this is also the same viral loop that made Instagram successful with photo filters or what’s made blogging popular as well. After all, when you create some type of content, you naturally want to share it with people, but those people naturally may want to participate as well.
So conceptually, you might understand the smile loop, but the question is, what can you do with it to optimize?
To make it systematic, you want to track it. When someone makes a generative video, you want to track things via the URL structure:
productdotcom/vid/[video ID]?sharer_id=[sharer](Of course, your userID is encoded as the sharer ID whenever you share.) Now when you share it out via email, or messaging, or whatever, if an invitee gets the link, watches the video, and then signs up, you should then store the sharer’s ID alongside the user’s signup row. So imagine you’d store the usual stuff:
id
email
password
name
sharer_id <-- this is who caused this invite to happen
Now when you look at your rows and rows of users in this table, sometimes the share ID will be blank if that user just showed up and signed up on their own. However, if they are part of a viral loop, then their share ID will point to some other user that already exists in the table.
To calculate viral factor, you then take some cohort of users, for example, the ones that joined 3 months ago. Let’s say that there are 100 of these. Then, what you do is you grab that list of IDs and you ask the database how many times do those IDs show up as share IDs in new sign-ups that happen afterwards? Let’s say that’s 50. Then your viral factor at that moment in time is 50/100=0.5.
What about all those users with blank sharer IDs? I sometimes think of the users who just show up as “Gen 1 users” or “onramp users” and you should just discard these as part of your viral factor calculation. Instead, what’s interesting is to compare the ratio of Gen 3 and Gen 2 users. Or really, Gen N+1 and N, as long as N isn’t 1. It turns out this ratio actually tends to stabilize pretty nicely over time.
THE BIG QUESTIONS
Do this with your product, then you’re bound to ask, “Wow, this is cool, but how do I make this number go up?” and in particular, “How do I make this number go over 1?”
This is the right question to ask. The minute you realize these dynamics, you’ll realize that you can make product changes to increase that viral factor so that your product becomes more viral. For example, maybe you should ask new users to invite when they first come in, or you should make it easier to invite people because there’s a link that you can copy and paste or some other mechanical change that increases viral factor. This is one of the core insights that you can measure viral factor and that you can actually make product changes to increase it.
Because you can track and calculate this ratio, this means you can stick it onto a dashboard as well. As I described, it’s easy to do track, as long as you encode the user id into the URL that’s shared. Of course, as soon as you’re able to calculate it, the next thing is then to be able optimize it because then you can run A/B tests to see if more people share, and do they do more of them? Do they share with more people? And for the people who receive a growth link, what percentage of them convert, and how you make that conversion higher. This is sort of exists in the cookbook of all the different ways that you might be able to optimize your viral factor.
The final aspect of the viral loop idea that’s powerful is that it’s actually very generalizable. Which is why this is all so powerful for the modern era of Product-Led Growth. As long as you’re talking about being able for a group of users to somehow generate another group of users, then of course that growth process might be because they’re inviting other people. It might be because they are sharing a content link that then causes someone else to sign up. Or it might be a referral program or many other tactics that cause one user to invite another. This means that at the core, there ends up becoming a lot of applicability across marketing channels and strategies.
ALTERNATIVE WAYS TO CALCULATE VIRAL FACTOR
When you ask the Internet how to calculate viral factor, it gives you something slightly different, which looks more like this:
VIRAL FACTOR = # INVITES x % CONVERSION RATEThis definition has been floating out there for a long time. However, it’s flawed because not all viral loops exist as a type of invite. Instead, we see sharing flows, collaboration flows, referrals, and many other variations. I also think that although it’s mechanically correct, because increasing the number of invites and increasing the conversion rate naturally does help your viral factor. It does not capture the fact that really what you want to know is this ratio between two cohorts of users.
VIRAL LOOPS AND SPAM LOOPS
There is also a dark side of simply trying to increase these variables as well:
The more simplistic version of this equation pushes you towards thinking about how to be as spamming as possible. How do we get users to invite as many of their friends as possible? This sort of incentivizes pushing users to invite pushing them to invite a lot of people, and then for the invites to be spamming in such a way that there is a high conversion rate.
Going back to the Web 2.0 era, this actually was the way that people tended to think about virality. If you’ve built the bare bones of a social network as folks at Bebo, Tagged, Hi5, and MySpace did, you were generally growing your network based on getting people to invite their friends via email. In the early days, you’d actually ask people to type in their friends’ email addresses, and usually they’d type in like 5–10 emails since it was tedious. It turns out that if you could get them to import their address book from Hotmail or Yahoo Mail, by asking them for an email/password combo, then crawling their inbox, you could push the number of invites to 200+. Of course whatever viral factor you had, a 20x increase would often put you over the top.
The downside is that you would generally drive down your conversion rate because you were emailing dead emails. Eventually, all of the email providers would start labeling you as spam. But for ~10 years, the glorious email invite loop worked, and many large products were built—including ultimately the big winners, Facebook and LinkedIn.
CHAIN LETTERS AND WHY SPAM LOOPS FAIL
You might know that over a hundred years ago, there was a concept of a chain letter where people would write actual snail mail letters to each other. Each chain letter would have a list of other addresses, and it would tell you that if you mailed a nickel over to them, and then also added yourself to the list, then eventually everyone would get rich because you would be receiving an exponentially higher amount of nickels from people over time. This was actually such a big deal that eventually the post office had to make it illegal since it swamped all of their delivery. But of course, mathematically, chain letters are going to fail.
The reason is simple, which is saturation. If you have a viral loop and you invite 200 people on each go, eventually after a bunch of generations, you’re going to completely saturate your target market. If you do the math, once you pass 5 rounds of 200+ invites, then you’ve already hit every human on the planet and more. So eventually you’re just hitting the same people over and over again. Naturally, the response rate is going to go down. Why? 1) You’ve already signed them up, in which case that invite can’t convert. 2) Or, alternatively, they got invited before, but they’re not interested and they don’t interact. Either way, the response rate tends to decrease over time.
If the response rate goes down and your product is not retentive, then mathematically all you’ve done is created a huge spike of new users which looks good for a while, but then that lack of retention means that your total number of active users ends up being a tiny fraction of new users.
This is why some highly viable products end up jumping the shark. In the past, I’ve listed out some of these metrics to indicate that a product will be sticky:
cohort retention curves that flatten (stickiness)
actives/reg > 25% (validates TAM)
power user curve showing a smile -- with a big concentration of engaged users (you grow out from this strong core)
viral factor >0.5 (enough to amplify other channels)
dau/mau > 50% (it’s part of a daily habit)
market-by-market (or logo-by-logo, if SaaS) comparison where denser/older networks have higher engagement over time (network effects)
D1/D7/D30 that exceeds 60/30/15 (daily frequency)
revenue or activity expansion on a per user basis over time -- indicates deeper engagement / habit formation
>60% organic acquisition with real scale (better to have zero CAC)
For subscription, >65% annual retention (paying users are sticking)
>4x annual growth rate across topline metrics
These aren’t meant to be exhaustive, but they are all strong indicators that if a product can generate a lot of viral users, there’s enough there that it’ll stick. If not, then eventually the spike will go away.
The fact that you need product-market fit ends up being one of the reasons why sometimes you hear about highly viral apps that then disappear from public consciousness. You can actually have a very high viral factor or high word of mouth and sometimes you can even engineer it. But it’s almost like having a big bang launch or having a Super Bowl commercial or something like that. You get a huge spike and it’s great for a while, but inevitably, unless your ratio of active users to sign-ups is very high, it means that you’ll eventually lose them.
This was ultimately the outcome of many of the apps that were created during Web 2.0 or during the Facebook platform era. You heard about a lot of virality and potentially millions of users or even hundreds of millions of users, and sometimes this happened quickly. But a lot of this were people engineering viral loops. And as those users left the app because of a lack of stickiness, these viral loops could be engineered to try and reacquire them over and over again. The vast majority of these viral apps did not actually become successful businesses, which is why—although I remain very interested in the ability for teams to create growth hacks, of course—I also care a lot about their ability to actually retain users.
Like this post? Forward it to your team! And be sure to sure to subscribe to Andrew Chen’s Substack for more essays like this one.
For more weekly dives into the world of early stage startups, subscribe to our own newsletter below.








The equation is simple and attribution straightforward enough if there’s a system in place. Choosing where to spend energy to prevent viral blips that become self-fulfilling outcomes for users is the tricky part.
Founders see a viral moment and think it’s a signal of PMF. It could be, but the data isn’t in the spike, it’s in the behavior in the weeks that follow.
Timely! Working on exactly this for a daily geo game I advise. They had for too long relied on loyal cohort of users, who were slowly but surely decreasing. Now we are trying to energise particular cohorts of players who view it more of a social experience that a solo endeavour.