Indie Hackers should be much faster nowadays… at least for some of you!
In the past week, the PageSpeed Insights score for our homepage on mobile jumped from 24 to 78. On desktop it jumped from 40 to 97. Not too shabby!
We had similar improvements on post pages, which are just as important (if not more): from 22 to 79 on mobile, and from 57 to 98 on desktop.
The vast majority of the speedup came from two improvements: (1) serving static pages, and (2) optimizing images.
Indie Hackers is a single-page application (SPA) with server-side rendering. When you visit the site, you have to wait a few seconds for the JS to build the single page app in your browser. For some routes we have server-side rendering, so at least you'll see the full page of HTML while the SPA boots up. On others, you just see a random quote to distract you from how slow it is. 😈
However, It turns out that static HTML is all we really need for anonymous visitors. They don't actually need the SPA to boot up. So I wrote some code that lives on the edge nodes of our CDN. It modifies the HTML response to simply strip out our SPA JS. It also strips out lots of JS and CSS that were only used for the SPA, and replaces them with smaller page-specific JS and CSS.
The result is that, for anonymous visitors, the homepage and post pages load almost instantaneously when they're cached in our CDN. They take a second to load when you get a cache miss, but I've set the cache to last for 7 days, so it should be rare for popular posts. I've also got some good cache invalidation going on, where I'll refresh a post page in the cache when it gets new comments, edited, upvoted, etc. This kind of stuff is a pain to code and maintain, but it's necessary for a dynamic site with lots of visitors to pages that change frequently.
Anyway, this was the vast majority of the speed improvement. In the future I'd like to do the same for logged-in users, but that's a bit trickier, since there's a ton of JS in the SPA that deals with logging you in and allowing you to interact with various components (e.g. leaving comments and upvoting things).
"But Courtland, why did you make IH a SPA to begin with?"
Because it was a fun hobby project when I started it, and I didn't know it would get big leave me alone okay jeez.
This was a relatively simple fix, but it took a while. When you upload an avatar to your IH profile, I've got some code it automatically resizes it down to 72x72 pixels. However, I never got around to wring similar code for product and group icons. And if you look at the homepage, it's absolutely littered with lots of these icons, which makes it bright and happy, but also super huge. If you're on a slow mobile connection, the last thing you want is to download 3MB of images every time you visit the site.
So I spent some time optimizing all of these images. First, instead of merely shrinking them to one size, I'm shrinking them to 3 different sizes, and using the smallest possible size wherever I can get away with it. For example, group icons have a 28x28 pixel size for use in the social feeds around the site:
Second, I'm also converting these images to WEBP, which is a better compression algorithm than both JPG and PNG. The homepage still has way too many images, but now they're just a few kilobytes each on average, whereas before they were often dozens or hundreds of kb each.
Besides the above, there were a lot of smaller things, too. And my list of potential speed improvements is still super long. But I'm happy enough with the progress so far to move on to other things for a little bit.
Running a group on Indie Hackers is like running your own miniature community. Or at least, that's what it should be like. So I'm slowly but surely working toward that goal.
That means giving group owners more control over what happens in their communities, more transparency into how their communities are growing and changing over time, and more power to communicate with the members of their community and potentially engage with them via different channels (e.g. email).
Today I added support for "Group Posting Guidelines" to help group owners control what gets posted in their communities.
You can set up add up to 5 posting guidelines:
Once you've added some guidelines, anyone who goes to make a post in your group will see them. They're impossible to ignore, because you literally have to scroll past them to create your post:
I think this should work better than putting the guidelines in some random location where people would have to go out of their way to find them.
I also tried to ensure that format will require owners to keep your guidelines positive, concise, and readable. Nobody wants to read a giant paragraph of rules before making a post somewhere.
Best-case scenario, widespread use of these guidelines will not only empower group owners, but also help improve the overall quality of posts on Indie Hackers. 🤙
I won't go into a ton of specifics as to how the new algorithm works, but there should now be a shorter feedback loop between when you make a popular post and when it shows up on the homepage (assuming it makes it to the homepage).
Getting early upvotes will also be more impactful than it was in the past. This means three things:
Over and out!
Polling has long been a requested feature on Indie Hackers, and today it's possible! You can add a poll to any new post you create, and logged-in users can vote and/or view the results.
There's more information and an example poll here: https://www.indiehackers.com/post/you-can-now-create-polls-on-indie-hackers-38c3b698af
Now anyone can create their own group on Indie Hackers!
@rosiesherry announced it here if you'd like to read more details: https://www.indiehackers.com/post/you-can-now-create-your-own-group-on-indie-hackers-c33e12379b
There are still lots of follow-up features I need to add to groups, so my plan is to come back and revisit them in a few months once we've gotten more time to see how people use them.
In the meantime, I encourage you to create a group for any topic you're interested in, and invite others to join you in discussion.
Once upon a time, the Indie Hackers forum supported link posts. It was a simple way to share a link without additional commentary, with the benefit that anyone who clicks it from the forum will be taken directly to the link.
I removed this functionality during a big forum rewrite, in part to focus on discussion posts. But discussion posts are doing great, and I'd like to add some more variety to the mix by bringing link posts back.
More specifically, discussion posts can get a bit stale over time, as similar topics and questions reappear from month to month. They also tend to limit conversation a bit. If something interesting happens elsewhere on the web, link posts make it trivially easy to share and see what other indie hackers think about it.
The risk with link posts is that they're so easy to make that they risk flooding the /newest feed. And, in my opinion, they're only as valuable as the discussion they generate.
For now, link posts are open to people with 20+ points, in which case you can make them by clicking the link icon when creating a post. I might lower that later. Let's see how it goes!
It's tough to know where to start out as an indie hacker. The good news is, you're not alone. In fact, hundreds of new indie hackers get started every day—I know because we've been counting!
There's literally never been a better time to get started, so today we're launching a new "start" page to serve as the ultimate guide for brand new indie hackers.
Not only does it link to some of the best articles on the web, but it also showcases live discussions involving other fledgling founders who are going through the same steps. The goal of the page is to be part motivation, part education, because you need both to get started.
In just the first two weeks of 2020, over 800 indie hackers have taken action to get started on their dreams. I'm sure by the end of the year and certainly the decade, there will be many tens of thousands! 🎉
We're going to be tweaking and improving this page all year long, and watching to see how high the numbers go. Follow along, and feel free to send it to your friends or colleagues who might be curious about starting a profitable online business of their own.
I've got a ton of plans and ideas for Indie Hackers that, quite frankly, I can't code fast enough by myself… so it's time to make our first full-time hire. 🔥
If you're a front-end (or full-stack) engineer and you're interested in joining Indie Hackers and Stripe to help me develop and implement these new ideas, I'd be happy to have you!
You can apply here: https://stripe.com/jobs/listing/frontend-eng-indie-hackers/1953430
We're changing up our email strategy, and going forward different parts of the site will have their own unique newsletters, including the podcast.
I wanted to update the podcast page to call more attention to the "sign up for the podcast newsletter" box, but I got a bit carried away and ended up redesigning the entire page.
The old version is on the left, and the new one is on the right:
This definitely isn't the end for the podcast page. I have future plans to make it a bit more usable, including:
Episode #128 with Tyler King broke the 5M cumulative download mark for the IH podcast today, which is fitting, because Tyler's episode was one of the best I've recorded in a while!
The IH podcast has been going strong since mid-February 2017. I never imagined it would get more than a few hundred downloads a day, and now it's averaging over 10,000:
Whenever I analyze the podcast and what makes it grow, the two things that always stand out are quality and consistency. The podcast does well when I'm regularly putting out great episodes, and it stagnates when I'm inconsistent or the episodes are mediocre.
Shocking, I know.
My plan at this point is to keep the podcast going exactly the same way it has been for the past few months, where I'm spending lots of time trying to hunt down good guests and ask them solid questions, and I'm releasing an additional "quick chat" episode every Friday.
It's been super fun to invite guests on who've been posting top milestones, and I'm looking forward to the day where I can find 100% of my podcast guests from the Indie Hackers community itself. ✌️
The age of the indie founder has arrived! Today anyone can create something, reach thousands of people, and build a profitable business.
We created Indie Hackers to help founders like you.