A few months ago, I participated in a 6-week hackathon by Buildspace. The competition’s rules were simple: build anything, and projects would be scored based on the users acquired and revenue generated. The winner would leave with $100K.
7,500 projects started the hackathon, and after an intense month and a half, with a lot of support from the Buildspace community and some luck, I finished in the final 8.
I built a Chrome extension called duotok to help people learn languages while watching Netflix, available here. It was inspired by my need to practice Chinese in a culturally immersive and low-touch way. A lot happened during the six weeks, and if you’re curious here’s a 2-minute recap of my journey from an idea to 600+ total unique users:
Although I learned a lot of new technical skills while building the extension, I learned even more about building a product for people. This post is about my biggest learnings about going from zero to one while working on duotok, gleaned from Farza’s lectures (Buildspace founder), talks given by Shaan Puri and Amjad Masad, as well as mistakes I made. This post is written in first person because it is not advice — I have no ethos on the topic — they’re notes addressed to myself.
[1] on ideas.
Great ideas are forged not created. There is no perfect idea, so don’t overthink it. Just pick an idea, and keep evolving it based on user feedback.
Ideas are cheap; execution is everything. Many people have ideas daily, yet few act upon them, and even fewer execute them well.
Just because a version of an idea already exists, it doesn’t mean I shouldn't pursue it. For most ideas, there is a high chance that someone has already attempted some version of it. If I think I can do it meaningfully better, I shouldn’t be deterred.
Ideas can be pitched succinctly in one sentence: we help [x-type of people] do [what] so that [why].
[2] find where my potential users live 🙃 And befriend them.
Not literally. But what public spaces do the people that have the problem I am trying to solve gather in? Gyms, colleges, or language teaching centers? What online websites and social media groups are they a part of? Mine lived in r/languagelearning on Reddit, Discord’s LLC server, and used #bilingual on Tiktok.
My biggest mistake was trying to find users by posting demos generally on Twitter, LinkedIn, and Instagram. Farza likened that to screaming in the middle of the streets to get people to care. Sometimes people might stop and engage, but for the most part, it’s not effective. Case in point: even though my idea received love on Twitter, most of those people did not translate to users. A month later when I posted on r/languagelearning, I got harsh but effective feedback that ideally I should have considered from day 1.
Once I find where the people I am building for live, try to understand them. (i) Do they actually have this problem? (ii) Is this problem painful enough that they are willing to pay for a solution? (iii) Are they willing to pay for my solution? If these people aren’t eager to use my product, then I need to iterate.
[3] build and launch a prototype in less than a week.
After choosing an idea, quickly hack together a prototype and start getting feedback. Only start building if and when people express excitement about a prototype. Ideally, they pay upfront. There’s a high chance that my first couple of iterations are completely off base. It’s better to find out early so that I can go back to the drawing board.
With tools like Protopie and Figma, it’s possible to get meaningful feedback without writing a single line of code. I built and shared this prototype of a TikTok-like mobile app for V0 of duotok in just a few hours using Protopie, and this comment prompted me to pivot to a Chrome extension instead:
[4] after launching v1: build → launch → learn → iterate. repeat. with the sole intent of increasing user count and revenue.
Build a feature, launch it to my target demographic, and learn from how they use it to improve the product. With every feature launch, there is likely to be a spike in users, but then 90% of those people will leave. I should expect that. The goal is to learn and iterate so that over time, fewer people leave.
In order to learn effectively, I need to implement analytics from day 1. Posthog and Mixpanel worked well for me. I mistakenly only added logging to duotok after a month, which meant that I had no indicator of where people were dropping off. If I don’t have analytics implemented, I might as well not launch.
Finally, in this build-to-iterate cycle, the only thing that matters is the number of users retained and revenue earned. Verbal feedback, Twitter comments, or competition rankings are just distractions. Honestly, it was calming to focus on these two metrics because they were honest and directly correlated to the value I was adding.
[5] building and marketing go hand-in-hand. don’t fall into the builder’s trap.
Farza framed marketing as building an audience that gives a shit about your product. This audience helps keep reality in the room. Do their eyes light up when you share demos or are they just being polite? Are they organically sending feature requests or is their radio silence? When building, ideally, people use the product, hit limitations, and ask for features, rather than me trying to preempt all their limitations from the get-go (the builder’s trip).
One way to build an audience is to frequently share demos of product updates, big or small. I learned that screen.studio is great for high-quality screen recordings, and that it’s helpful to add subtitles. The most important observation, however, was to be honest in demos. This was not a business, I was just tinkering on my nights and weekends, so I said so ¯\_(ツ)_/¯ This was one of my demos that was particularly unedited and honest, and it led to real installs:
ending with some of my favorite projects and their hacks…
One of the best parts of the hackathon was that I was building alongside a bunch of inspiring, cool people. These are some of my favorite projects as well as some hacks they used to build and launch effectively:
LLM.report — analytics dashboards for LLMs
While working on his initial idea, Dillion noticed the dearth of OpenAI analytics. So halfway through the hackathon, he pivoted and built beautiful LLM analytics dashboards using tremor.so and tailwindcss. He launched via AI newsletters to target the most relevant people, and today, he has over 3000 users that love his product. My takeaway: sometimes while building, you find better problems to solve.
Faketime (now @synclabs_ai) — video call deep fakes of famous celebrities
Prady built Faketime using the open-source wav2lip model. To market it, he used Faketime to generate high-quality videos of celebrities saying things they would never say like this one, and those tweets would go viral. Even though there are some startups doing something similar like ezdubs.ai (YC W23), that hasn’t stopped Synclabs from getting 1M+ videos generated on their platform. Goes to show that ideas don’t need to be unattempted to make waves.
Musicify — creating AI music
When the AI Drake and Weekend song went viral, Arib looked into how one creates AI songs. Turns out, it was a hard-to-use Google Collab. So he launched a waitlist (with no product), and then started working on a website that makes the process easier to do. Once complete, he shared the website on the Discord where people were using the Google Colab to create AI music and his website went viral. He got 100k users in 19 days and he talks more about his process here. Arib also finessed a large sum of free Modal credits just by putting their logo on his landing page.
- Janvi.
The best method of cementing one’s own learning is to share it and/or actively teach others - very happy that you made the effort to do so Janvi ! Super educative reading.
Sweeeet learnings, thank you for sharing and expressing succinctly! A lot of it resonates, and the part about befriending users is a great idea (having warm relationships instead of having to repeatedly approach cold can be so beneficial)