In November last year I left my full time gig to build my own products. Here’s some takeaways throughout the process.
First, some quick background:
- I built 6 or so products on Farcaster, an twitter-like social network.
- 2 made revenue, glass ($400 MRR) and automod ($600 MRR)
- Glass: no code tool for creating Farcaster Frames. Frames are like embedded widgets inside tweets.
- Automod: content moderation service for channels. Channels are like if twitter had subreddits.
- I spent a majority of the 9 months working on Automod which had the most engagement and showed the most promise.
- In September 2024 I shut down automod and stopped building on Farcaster after failing to monetize well.
Building an audience on Farcaster
I had 0 followers in January and 27,000 in October. My approach was the following.
Be interested in others - Without having genuine interests in others nothing works. It’s the glue that holds everything together. It’s also one of the easiest to execute on and in part why I keep my follow list small.
Play with new APIs – In February, Farcaster was releasing new apis and primitives nearly weekly. I would integrate whatever they released into an app or a new toy in the fastest and most creative way I could think of.
This created a ton of resharing. People love creative use of things on Farcaster.
Make things for other people – In the early days, anytime I would see a cast like “I wish I could do X…” or “Has anyone built a Y…?”, I would build it as fast as possible (hours) and reply with a url that they could use right away.
They would often share, follow and give me a chance to connect over DMs.
Share frequent, small updates when you’re building in public – The lifespan of a good cast in Farcaster and most social networks is about 24h which means there’s not much point bundling a bunch of features into one big release. It will just disappear. If you have a release with 10 features, make 10 posts spread over time. Certainly not 1.
This is especially important when you’re in the early stages of building an audience, its better to be consistently putting things out so people can get familiar with you and your work. You’ll also get better at posting in the process.
Why?
- Sometimes posts don’t take off for any number of reasons: important folks are absent, people missed it, there were other more interesting things happening that day or whatever else. Increase your chance of good things happening by posting more.
- People won’t remember you or what your product does from 1 post or sometimes even 10. You need to be constantly reminding them and sharpening your storytelling and narrative.
- You don’t know what will go viral, in part related to #2, but in the early 0 to 1 stage its harder to know what people will find interesting.
You have more content than you think – You can create a lot of content from a single feature if you wish:
- The launch and announcement post
- A bit of background on the product decision or customer that informed it
- Code snippets or tutorials that explain the implementation. I would often share a snippet and some times a screencast that walked through it.
- Any random side story, meme or thought you had building the feature
These can all be separate posts that reference each other. Most only do #1 and bundle many features together. It’s not optimal for audience building.
Getting over fear of publishing half baked stuff
I struggle with perfectionism with things I make. Often I’ll overoptimize or not share them at all. One trick that worked well for me this year is publishing and shipping more often.
When you know you’re going to publish something else again tomorrow, it takes the pressure off. You can focus on smaller improvements and rate of progress rather than a huge artifact that feels like it has to be perfect. It forces you to take on a smaller scope and break things up and it applies to casts, articles, code, product, and most other things.
The net result is strong momentum, fun and progress. Those are worth optimising for as a solo founder.
Consider support and operational burden in your products
Both automod and glass were suboptimal as they had important real time components that increased the support and operational burden.
As an example from Automod, early in the evolution of channels Automod had to like a post for it appear in a channel feed. Some channels would receive more than 10,000 messages per day, anytime their message wasn’t displayed in the channel feed immediately, complaints and support issues would come in which would lead to paranoid and doubt in Automod.
Glass was also in the critical path. Customers would use it for time sensitive drops and they or thousands of people trying to access raffles and drops would complain immediately if there were any issues. The operational burden of extremely spikey traffic on saas-like paid tiers is also difficult to schedule and cost for.
Since Farcaster is a decentralized protocol, the network isn’t always in sync, so even a delay of 2 minutes was frustrating for customers.
The real time requirements of both products aren’t ideal for a solo founder or indy hacker. It meant more support, packing my laptop with me and monitoring.
Cost structures and pricing
Value based pricing is the ideal for most folks building products. Its the idea that you price your product according to how much value the customer receives as oppose to “whatever the cost is + X%“.
But its hard to do.
It’s not immediately obvious what your customer values at first. That takes time and its constantly in flux as you change your product. Pricing based on costs is much easier and at least means you won’t run out of cash.
Being value based also puts you at greater risk of being undercut by competitors. If you compete on cost, its more of a technological war: can you build it cheaper or more efficient? That’s often easier to control for and understand, at least for me.
Variable costs complicate pricing. With Automod, I had multiple providers for NFT and Farcaster data that charged based on API usage. That meant customers that had busier channels, which used more of these api calls, costed me more. So the variable cost model greatly influences the pricing model.
The most straightforward thing to do is charge a markup on usage and pass that cost through to the customer, but your costs don’t always scale with value the customers receive. With Automod for example, one night channels received 100s of thousands of spammy posts from Korean bots. Automod has to pay its vendor for that, should, and more importantly, will, the customer?
The good thing is you can often make variable costs fixed with a bit of effort, assuming you have the technical ability. Its also usually easy to estimate the point when variable costs become more expensive than “doing it yourself”. You can use that to negotiate with the vendor or to justify spending time and money making them fixed.
The art and science of monetizing is knowing what you can charge, how you can charge, and where customers get value, but I’ve found there’s a lot of gravity to charge “cost plus” that you actively have to fight to make sure customers pay for what they actually value, especially if you’re bootstrapped.
Getting the first customer
Last time I tried indie hacking, I didn’t get any customers. This time, I set a rule: no building unless I had someone I could reach out to as soon as it was ready. Anytime I had an idea or saw a pain point, I’d follow up, ask questions and create a Notion page to pitch and gather evidence of pain. They often have screenshots from text messages, links to tweets, photos, whatever.
That doesn’t mean they’d actually use it (stated vs revealed preferences is def a real thing), nor that they would pay for it, but it was a start and it worked well for me. Everything I made had users after I launched. Glass and Automod even had preorders.
After a 1000 hours what you’re working on starts to matter more
Getting paying customers was a big breakthrough for me but after working 60h weeks on them for 9 months I realized some things:
- For automod, I’m not a community person and don’t love the customer problem.
- For glass, the dominant use case was spammy and questionable giveaways for promise of future tokens or entries into raffles. I don’t care much for these use cases.
- Building a product for people on Farcaster, a social network, meant it was wise to be online all the time, constantly engaging with twitter-like short form ephemeral content. It wasn’t healthy for me, messed with my focus and meant I was on my phone constantly while out.
Maybe its obvious but building a proper product you spend 1000’s of hours and make many sacrifices. Missing social outings, family moments, staying up late to support or meet with customers and partners on off hours. You spend a lot of time talking with customers, understanding what they need, and using every spare brain cycle thinking how you can best help them.
If you’re not aligned at some level with what they’re doing it makes a hard thing harder.
It’s hard to know total addressable market up front
TAM is number of customers multiplied by the average revenue per customer. The average revenue bit can be difficult to guess at. It’s hard enough to know if users will find the thing I’m building valuable, then if they’d be willing to pay for it at all and still yet, how much. Often your initial idea isn’t monetizable and you have to monetize further downstream or pivot into another area.
Regardless, I wasn’t able to capture enough value for either of my products. They combined for ~$1,000/mo but without much natural growth in sight. Since both products depended on users already being on Farcaster, I was limited by the 30k DAUs. Many of Farcaster channel communities were not monetizing or run in a serious way, so they didn’t have extra funds to spend on community tooling. Business accounts active on Farcaster were also few.
So, the subscription model I was pursuing wasn’t going to work. With the total number of users largely fixed, I would have had to switch where and how I was monetizing, like taking a cut on transactions for channel memberships or mints with glass. Both of those approaches to revenue are very different and harder to predict and model.
Overall the last 9 months went extremely well.
I hit a lot of personal milestones: getting 1000’s of users, selling preorders, getting paying customers, getting business customers like Coinbase, getting offers for investment, and meeting new friends and cool people on Farcaster. It reinforced a lot of confidence in my ability to build, execute and sell product.
Now, to take a bigger swing.