Hacker News new | past | comments | ask | show | jobs | submit login
My 2 Year Journey to $10K MRR (bannerbear.com)
654 points by ronyfadel on Jan 27, 2021 | hide | past | favorite | 110 comments

> In my case, I found that the more documentation I wrote the more conversions I got.

I think this is key and great documentation is one of the most underrated parts of business. Stripe nailed this. Digital Ocean nailed this. Most places don't or can't.

[note - personal bias as I have a startup in this space, but it seems very clear to me and I think there's a win-win in businesses focusing more on their docs in terms of improving global efficiency and improving sales and trust in that business - it's just really low hanging fruit in a majority of cases I've seen]

This is why https://fastcomments.com has an example above the fold on the homepage.

Good docs will be coming soon...

Wow! FastComments.com is hands-down the best landing page I've encountered in a LONG time. Crystal-clear what it is, why it's a good choice, how it works, and a set of FAQs answering virtually all the questions / doubts / potential objections I could think of. Bookmarked; I may well use this for my own site when I get around to re-launching it. Bravo!

> FastComments prioritizes speed and user experience above all else

Just from reading the example code, I see a potential performance optimization.

A site could make pages with FastComments load and render a bit faster by loading your script using <script async>, <script defer> or both together, so the page load time doesn't depend on a round trip to your CDN.

The inline script would have to be slightly different for this to work, but not much different.

Yeah I know, thanks for the reminder though!!

Nice and clean but the lack of syntax highlighting bothered me more than it should have.

Similar to a sibling comment, I really enjoy this page & site - even though I was already expecting it to be good.

Well done to whatever tasteful individuals designed and executed/approved those decisions.

Reminds me of 2005 and trying to figure out jQuery vs. Mootools.

jQuery had lots of docs with examples, and I never was able to wrap my head around Mootools.

I second this exact comparison.

Being able to try and customize jQuery UI components was also what sold me back then. I think simple web-based demos in your docs go a long way in explaining what your product actually feels like to use. Even a demo that's a bit contrived is useful. People will even just mindlessly play with demos. They are very worth doing in my opinion.

I found that technical blog posts and documentation have made me aware of brands I otherwise wouldn't of known existed.

Digital Ocean was great at this in the early days. I don't know if they haven't put as much effort into as of late or changes in SEO, but I don't seem to get funneled there by search engines as frequently.


This is a fantastic way to get your marketing into stratosphere. I'm seeing more and more companies doing it.

Can you give few examples of those other companies? Thanks.

Being able to create beginners of your product helps create market and retain customers like nothing else.

As an example in identity space, Auth0 has such amazing documentation, especially their simple and dynamic code examples which reflect your login/tenant.

Recently, I started evaluating Microsoft Azure AD B2C for this purpose and it's just such a nightmare! Their only configuration options are email/sms for 2FA despite the fact they use their own auth app for their own products (such as logging into Azure Portal!). I had evaluated Azure AD 5 years ago and it's still a nightmare from documentation standpoint. You have to hunt down code examples on stack overflow or some github samples that their developers have provided.

This is the benefits of an FAQ or open documentation platform. The treasure trough of organic keyword combinations and semantic linking that Google does makes for wonderful traffic. In most cases these are long-tail searches which evidently power >70% of all searches and from personal experience have a very solid conversion rate due to the intent of the searcher and relevant documentation in place to help answer questions.

For any startups out there, this should be at the top of your list for marketing. It will take time to get out of the Google sandbox but once you are out you are likely to get rewarded for the effort.

> Stripe nailed this. Digital Ocean nailed this

I would like to add Unity 3D engine to that list.

But that sounds great - I love writing documentation and tutorials (how many bugs and holes I am finding during that process!), so I have another justification for working on more articles for my product. I usually underestimate that 70% of traffic comes from Google looking for stuff like "measuring temperature in python".

fyi: I am building "Arduino for Biosignals" (aidlab.com/developer)

This is why I hope that being a techncial writer will help me in my SaaS endevours in the future.

"I would do one week of code, then spend the following week tweeting / blog posting about what I shipped — then repeat"

This right here is a very important organizing principle for indie devs. It's more effective than say doing both coding and promotion in parallel by dividing the the day into two.

In contrast, splitting the day helps to pivot more easily. I've had situations where I thought I wanted to work on a certain feature but when I talked about it, people didn't want that feature. So if I spent a week implementing it, it would have been a waste of my time.

Reverse your process. Talk about it to people first, then work on a feature they need (in aggregate).

I think I would prefer to code for the first half of the day, and market for the last half as my concentration wanes.

I have tried that in my work at my startup and failed. Alternating days did not work either. Jon's recommendation about alternating weeks is what I am going to try next.

Interesting, what went wrong when you tried that? I'm expecting to be in your shoes soon, and I currently have to balance a part time job with writing the software for my startup. I'd love to learn from your experience.

This works for larger companies and larger teams, too.

This is very interesting IMHO !

Wow. Great write up and cool timeline format. I had never heard of the "Open Startup" [1] idea and clicked - and was stunned (positively) about the transparency.

[1]: https://www.bannerbear.com/open/

Edit: Is this a thing now showing the numbers for the world to see? I like it - but just have no prior experience.

As others have mentioned, it's a movement that has been driven by some really inspiring, transparent stories over the last 10 years or so.

I was personally inspired by Buffer: https://buffer.com/revenue

And also Pieter Levels: https://nomadlist.com/open

Folks like these showed that it is possible to grow a business solo or with a small team, which was and still is hugely inspiring to me.

I'm just doing my part to continue the practice, to hopefully positively influence the next generation!

I first heard about it with buffer and ghost https://buffer.com/revenue https://ghost.org/about/

I think buffer also made their various iterations of salary formulas public.

We're hiring engineers and an EM btw ;)


I've always shared my numbers openly (http://www.candyjapan.com/behind-the-scenes). It makes a lot of sense for getting feedback and some initial customers as well, especially if you're just building something alone.

Just signed up and am finishing the integration. One thing though: I don't think 30 requests is enough in the free plan, there are many features to be tried out. After reaching the limit, I'm still not confident that I should commit to your service. Maybe you could shove a watermark in there after the 30 free requests? Just so that people can keep testing out different templates, colour combinations, dimensions, stuff like that. Our designer wants to play around with the template creator now but I had to create some throwaway accounts for him to do so.

Congratz on your journey, you're in a market that has been barely explored, so much potential.

I do not think that a watermark would be a good idea, though I understand the desire for an expanded free plan.

The example I have in mind is the Unity game engine, where free users have a splash screen in their exported games. Since most users who aren't paying are also not making great games, Unity's name and reputation is now attached to solely those bad games.

Similarly with the generated images, adding a watermark to (some of the) free ones will mean that the images you have your name on are the ones that are being generated by users who aren't paying; either because they're not making enough to justify it, or they're making bad content that you don't really want to be the main thing with your name on it out there.

Absolutely spot on analysis :)

For people who are on the trial and need more quota, I simply tell them they are welcome to create 2nd, 3rd etc accounts. I have no issue with that.

"How much free quota" to give is a question with no right answer. So instead of forever trying to tweak that number, I have left it at an amount that seems to be working and I don't increase it for anyone (I have not even built in the ability to extend a free trial).

If you ever change it a very restrictive rate-limit could work too. It might be annoying to maintain or combine with the existing credit system tho.

On the other hand, people creating multiple accounts to test things out is a very nice indicator of interest.

Oh, that makes sense, I'll keep that in mind next time, thanks.

Another solo founder here with a similar product (it generates images), similar revenue and similar age. I went the Electron route so my solution uses local compute and you get to save designs to your desktop. You can batch process thousands of images from spreadsheets, etc.

The kicker is I built this for label printing. So the output can be full color or dithered black and white, and my app talks to a few dozen supported USB thermal label printers.

Like the author described.. I niched down. Check out my app at https://label.live

BannerBear is cool and the marketing is truly inspiring. Keep up the good work!

Awesome product and name / domain!

That list of bar code types blows my mind - and shows me that clearly this is a niche I know nothing about :)

Cool product. Would you be willing to share rough revenue numbers?

Revenue is in the same ballpark as BannerBear with similar growth. However, most of my licenses are one-time and I just recently introduced a subscription. Like BannerBear, my competition in the desktop space is very expensive for customers.

Off-topic I know, but how can I make my blog look like this? So many posts like this on Hacker News have this clean, confident, gentle-exposition style. (As you can tell I don't really have the design vocabulary, but hopefully looking at the site you know what I mean.) Is there a particular Wordpress theme that people use? Or is this another CMS like Ghost?

The creator's bio says he's a professional designer, so he probably designed it himself

"All the javascript on the marketing site is good ol' JQuery"

JQuery works perfectly here.

I'm guessing he designed it himself but if you have Twitter you can ask him directly: https://twitter.com/yongfook

Probably using Tailwind CSS.

MRR = monthly recurring revenue


Off Topic. I love the way how this is being presented.

But there is something about the design, along with the main BannerBear website seems to be off scale. I had to Zoom Out twice to make things looks normal.

> I had to Zoom Out twice to make things looks normal.

80% (two zooms out from default in FF) is my default, since I found that was by far my most common choice per-site, changing it more often than not.

I also have quite a few at 67%, and only the odd site (HN for example) at 100%. Just seems to be a trend for everything to be 'big' and (to me and you) 'zoomed-in'-looking.

This is consistent (as in I do the same thing, it doesn't sync unfortunately) across my Linux desktop & (retina) MacBook Pro, before someone says something like 'well Linux is janky like that, try a Mac, they just work' :).

(I use 'Zoom Page WE' in Firefox for persisting per-site zoom levels: https://addons.mozilla.org/en-GB/firefox/addon/zoom-page-we)

Funny you say that, this is one of the few sites that is perfect at 100% for me. I normally have all the sites at 130% (actually that's my default), might have something to do with hiresolution/scaling in linux though.

I find that a lot of sites seems to be designed on, and looked at internally on, large-screen desk setups (e.g. 27" iMac), so everything looks somewhat huge on smaller laptop-size screens (e.g. 13" MacBook).

That was my first thought as well. Designer must have been large screen display.

I use a 13" MacBook Air :)

I guess large fonts is just my preferred aesthetic - may not be to everyone's taste.

Is that MacBook Air Non-Retina ?

I mean [1] Top is what I am referring to, where the Sign up button is above the fold. By Default it is shown like the bottom.

[1] https://imgur.com/a/Bx6aDRv

Huh you are exactly right. As soon as I zoomed out twice it looked perfect.

I've been following Yongfook for the past 2 years now, super cool guy, I'm glad that he got Bannerbear to click, I know he was trying out many different ideas over the years.

A little note: I'm not the blog post's author but I've contacted Jon to reply to questions in the comments.

Thanks for the submission! It was the middle of the night for me, so I'm only just replying to comments now in the morning :)

I’m curious how much development, marketing, and maintenance is needed to maintain this level of revenue. How long can you coast? How long can you go without new features? I know that may not be the goal and there are other reasons to work on it, but hypothetically...

It's a good question. My churn rate is still quite high at around 10%. So I definitely cannot coast, I have to actively market and make sure my growth is higher than my churn.

When I take my foot off the pedal and stop marketing, I feel it - I get less targeted signups and less conversions.

So this is a full time job right now, it's not a "set and forget" style business!

Do you use ImageMagick for image generation? (I've had issues with it and am always looking for a replacement, but it just does SO much...) Do you do it yourself or via third party? What does your stack look like? Ruby on Rails and...?

I just retweeted you btw. Very impressive, actually even a little intimidating. I don't know if you're looking to be bought, but if you haven't had offers already, I'm sure they're coming your way soon

Thanks. I suppose if you had minimal or negative churn you could take a break. Where do you feel the churn is coming from?

If you have a healthy churn rate (say 5% or less) and you're getting some residual number of signups every month through SEO or some other passive channel, then theoretically you could coast for a long time. The obvious downside being that your competitors may eat your lunch.

I like the note about alternating dev weeks and marketing weeks, and using the marketing weeks to market what you developed the week previous. Documentation could also be considered part of the marketing bucket, too.

Hey Jon, really enjoyed that writeup! It's a cool idea to plot out the journey you've been on with little summaries and links to the blogs and videos/talks/ideas that you were focused on at the time.

Cooler still that the beginning of the journey was a 12 startups in 12 months project. I'm actually in the middle of doing that as we speak, and am about to finish month one. Definitely feeling that "final 10% of effort seems to take as long as the previous 90%" thing currently ... kind of wondering whether I'll have something shippable or usable in the next two days. But even if I don't, next month is another chance to get it right and to build off of the things I've learned in month 1.

Anyway, I'll be interested to see more from you. If you're curious to check out my work I'm putting up weekly blog summaries here: https://startupinamonth.net. Definitely gonna start keeping track of what I'm reading and thinking about so I can do a similar overview post in a year or two :)

how did you get your first paying customer?

I loved the nuance in this link. How basically he tried a lot of things and many of them failed or kinda worked and somehow it came together over time. Probably some of the best marketing advice I've ever received. In a way, almost a sort of non-advice.

Edit: thank you for sharing it!

> Don’t target your SaaS at other indie hackers. It’s a small niche of people who like to build things.

This is what I've never totally understood about product hunt. Is the goal to get feedback from other creators, or launch to an audience that isn't necessarily your target market?

There are many bloggers trying to find something to write about on Product Hunt. They may try your SaaS and write free blog posts about your SaaS to their audience.

was this really hard to read for anyone else? The spacing and layout is really hard to make sense of.

It's really beautiful, but I admit that I'm not a fan of the "bite-sized" formatting that's common these days. I found myself scrolling through it to look for some more depth, but the mix of embedded self tweets with short sentences left me with more questions than anything.

Agree, don't think this format makes for a very legible or compelling post, but I guess his target market probably likes it.

yeah felt the same, didn't feel like I was reading a blog more like the landing page with how big/sectioned everything was. read on 1920x1080

Yes. I really don't understand the constant war against text.


The video generation demo is pretty neat but it took nearly 2 minutes to finish rendering. I'd be interested to know how this scales under high workloads and how updates can be deployed without disrupting long running processes like this one.

Founder here - thanks for giving that a try!

It's a good question.

There's still a lot to be optimized on the video side of things. But the reason it took 2 minutes is because of things like:

- Checking the video length before rendering - Converting to a standardized format so that the renderer doesn't trip up - Handing off to AWS Lambda, which involves some network I/O - Handing back to my Rails app

So there's a lot of back-and-forth right now that could be optimized.

It will scale nicely under high workloads because my main Rails app isn't really doing much except handing off to AWS Lambda, but this means there is a speed hit both in terms of the I/O and also the Lambda being underpowered.

You can actually see the two main processes happening if you watch the progress bar on the video demo.

You'll notice that the first 50% is a bit slow - that's my Rails app doing some validations, conversions, and packaging things up nicely for the Lambda.

The last 50% seems to move faster - that's the Lambda rendering the final video and then passing it back to Rails.

There's definitely a lot of scope for speeding things up in the first 50%.

As for disrupting long-running processes, I can safely deploy my Rails app any time as it's not performing any of the rendering jobs (on images or video) it's just acting as the job expeditor and receiver of webhooks.

For updates, you can do your classic blue-green deployment: wind down traffic for instance (remove from load balancer etc), wait until it finishes outstanding jobs, deploy update, resume routing traffic, repeat for every instance (or do it in groups).

What a great write up and very open and honest. The timeline format is amazingly clean and I am a sucker for timelines.

I think the product is great and the name bannerbear really is memorable. I think that is a major key along with a great product. You have to be able to remember the name easily without effort and the two word format works well for human memory. Being high up in the alphabet is smart as well in terms of lists, it may not help much later but early on naming like this is important.

> I would do one week of code, then spend the following week tweeting / blog posting about what I shipped — then repeat

That is gold for indie/small business value creation and extraction. Many times marketing is like audio/sound for games, an afterthought for the programmer/creator/product person. Here you have a system that locked it in but only after creating, how it is supposed to be. I think it is a great way to avoid burnout as well, you are refreshed on both creating and promoting on those weeks.

I believe that there is value creation (product/creative/engineering) and value extraction (marketing/business/finance) and it has to be in that order. There has to be enough value created to value extract and this system is quite nice.

More excellent point:

> The best way to make money on the internet is to ignore everyone telling you how to make money on the internet, and just do some hard work. https://twitter.com/yongfook/status/1328865845527805952

> Knowing your target market is good, knowing your target's Job to Be Done is better

> Jobs to Be Done is only something you understand after talking to users

> Upgrade your user, not your product

This is how you make products people love. Even if it is only a few minutes a day, when people use a product if it is fun or refreshing and makes their lives easier, that is game mechanic that is replayed. Same goes for games, it is all in the basic game mechanic, it has to be fun. Focus on the lives of the user/player of your product. I like to parallel that to like a fun game or a comicstrip, bring joy to people even if it is only a very small slice of their day, it will be a good part of their day. Make your product a "friend" of the user/player.

You have all the little details that make your presentation fun like a good indie game with details and easily approachable. Even your subscribe form has a refreshing way to look at the captcha, rather than "confirm you aren't a robot" it is "confirm Humanity". Nice touch, but your presentation is a series of nice touches. Well played, these things are hard to instill in company cultures and usually only present in smaller more product people, or even gaming, focused projects.

I just love everything presented, it has that thing that makes it fun.

Congrats on your success Jon Yongfook I am sure you are headed to much higher ground with your North Star in focus all along.

> upgrade your user, not your product

What does this mean, exactly?

I'll take a crack at a possible meaning.

Imagine you have a product with 10 features. You want to generate growth. Your first instinct might be: time to add a new feature (upgrade the product). Another approach might be to investigate your users behaviour. You might find users are only using 5 of your features. You may then choose to educate your users on the other 5 features you already have (upgrade your user).

This is one of the purposes of marketing. You would be surprised how often a customer will say "I didn't even know I could do that".

Little late to the party, but look up Kathy Sierra. "Upgrade your users" is her thing. Her blog is here:


She has some really great video talks out there:


If you click on it on the article you'll get an explanation and this https://d33wubrfki0l68.cloudfront.net/23f092c7da7ef6dcd0b36a...

It looks very polished. The pop effect when done is very cool. If I may ask, who are the people that need this? QR code generator is kind of clear, but for e.g. image generation? Bloggers maybe?

Founder here - I'll answer!

Basically anyone who needs to do repetitive image generation.

The idea came from when I was working in Ecommerce. We would be uploading anywhere from 5 to 50 new products to our store every day. And those products would have multiple photos (different angle views). And from those different views, we would be manually creating all sorts of marketing assets e.g. ads, social media posts etc.

On top of the image, we would usually want to overlay things like our logo, or a coupon code, or the product name etc. All of this stuff was done manually and it was a PITA.

So my product is aimed at two types of customer,

1) the above type of user who needs some kind of highly-scalable and flexible banner generation API. Digital ad agencies, ecommerce stores.

2) a lower volume type of customer who wants to do the same but at a smaller scale, maybe for their own solo business. These customers use Zapier to integrate with Bannerbear, rather than using the API directly.

Hope that helps explain the use cases!

thanks a lot! it makes a lot of sense, I just don't know anything about the day to day business of e-commerce to be able to figure that out.

Congratulations on the milestone! I really liked the blog but didn’t quite get what the product was for, until I tried the Tweetagram demo, which is awesome!


I bet this is a fun product to build. Best of luck with it!

On its face this seems handy: automatically generate pleasing social-media images for different links on your site instead of fiddling with photoshop by hand, and throw in an integrated CDN to serve them

But the pricing, for the above, seems insane: $99/mo for the standard plan

So I assume I'm missing something about what this service can do, and what value it provides. Can anyone fill me in?

Here is the value:

If you were going to produce these images anyway, using some other means, it's probably costing you more than $99 a month.

I guess if you're a company with a full-time designer, probably paid $30-$50/hr, depending on the number of images you need that may work out

It’s for small business that can’t afford a dedicated designer. At the moment you pay a freelancer a couple grand to do your branding every few years and you make these designs yourself. $99/month is cheaper and is 80% as good as a freelance designer every couple of years

Founder here - I provided a few more details here:


I agree with you, automated open graph images are not a problem worth paying lots of money to solve. That's pretty much the exact realisation I had at the mid point in this timeline - see the "Rebrand" section for the details.

So at that point I pivoted Bannerbear to be able to generate any kind of image, for any purpose.

New use cases are things like, generating ad variations, generating instagram posts, generating dynamic in-app images (e.g. in the welcome email for Bannerbear you get a personalized image header which is generated on-the-fly by Bannerbear) and these use cases are a lot more valuable to the end users.

This is really cool to see. I looked at adding an integration with Bannerbear into WeBase several months ago but decided it was too niche of a product. But as it grows it could be really beneficial to revisit this integration.

Nice work!

[1] https://www.webase.com

Founder here - thanks for giving it a try! My email is open any time you have questions in the future when you revisit Bannerbear :)


Great story - thanks for sharing that. So many useful learnings in there - and the final product looks slick! How did you decide on pricing in the end?

Took 7 tries to figure out a revenue model. Guess we all get there eventually. Great post

You deserve it. I've followed your progress and it’s such a joy to follow. Congrats!

Curious is this using imagemagik for backend image generation? What about videos?

Great post. Website and product looks sleek.

amazing, kudos!

Interesting, although from reading the blog I still don’t know what banner bear does except for taking an audio files and creating video out of it.

They generate Open Graph content (images and videos) for you. OG is what you see when you post a link in a messaging app or similar and it pops up with an image + description (link preview).

This service automates the image generation part so you don't have to. Basically it makes link previews for your site sexier / more engaging in a (semi) automated way.

Actually Bannerbear generates any image of any size, for any purpose :)

Open Graph images is one use-case, but it's actually quite a small niche within my current customers.

The most common use case is people who have spreadsheets full of data that they want to turn into some sort of image, like a product catalog in an excel sheet that you want to turn into social media posts.

Another use case is any time in an app where you need to generate an image on-demand. For example if you're sending a weekly summary email to your SaaS users and you want to generate some sort of dynamic image to show their usage stats (with charts / metrics etc).

Hey you landing page looks great, can I ask if you designed it from scratch?

yes, pretty much designed from scratch.

Although the underlying grid layout framework is bulma.io


Great explanation! I had no clue what open graph was, and this succinctly explains it.

Applications are open for YC Winter 2024

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact