Disclosure: Stream, the API for scalable feeds, has previously sponsored Hacker Noon.
One of the most exciting parts about working for a company like Stream is seeing what our customers build with our API. Many companies come to us with the same issues such as scalability, costs, time constraints, etc. In fact, the reason Stream was created was because our CEO faced many of the same problems at his previous company. This post tells the stories of three different companies who have built their feed technology using Stream.
“The Stream API just works — we appreciate the fact that we simply don’t have to worry about it. It’s simple for us to add new notifications and it scales with us. This gives us time to focus on other priorities.” — Andreas Klinger, CTO at Product Hunt
Product Hunt allows users to share and geek out about the latest mobile apps, websites, hardware projects, and tech creations. On a daily basis, the platform allows its community members to submit, browse, vote, and comment on products. Over the past few years, Product Hunt has grown its users, articles, and engagement exponentially and has become a huge influencer in the product and startup space.
One feature Product Hunt brings to its user community is the chance to find their NEW favorite thing and to discuss and analyze it with other like-minded users.
Product Hunt had created a custom notification and activity feed for its users. At first, this solution sufficed, but as the community grew, the homebuilt solution was no longer able to scale and developers couldn’t make necessary changes. They noticed they were spending more time on tedious fixes and were often running into problems due to their homebuilt solution’s inflexibility.
Product Hunt implemented Stream’s API, giving their developers the chance to create a customized, scalable and reliable feed. Today, Product Hunt’s teams are supplied with in-depth analytics, that were not available with their in-house solution. They were particularly impressed with the fact they could quickly produce a notification and activity stream with a similar UI to what they already had. With the Stream API, they can add and change notifications twice as fast as they could before. Finally, they no longer worry about their feeds or notifications breaking, the ability to scale, or any other common back-end problem. As a result, they can now focus on enhancing their notifications and building the components that make Product Hunt so unique and popular.
“From posting updates to commenting and more, Stream provided us with the most flexible and scalable solution for displaying all our user’s activities. The Stream team made implementing our news feed solution a collaborative experience and ultimately the right decision for us.” — Paul Chambers, Artist Evangelist at Sketchfab.
Sketchfab’s community consists of artists, designers, architects, hobbyists, engineers, brands, museums, game studios, schools and more. Some of the most talented 3D artists showcase their work on Sketchfab’s platform.
Sketchfab’s rapid growth triggered them to research solutions for their feeds. Since conception, they had relied on custom-built feeds that caused several issues. They had no other option but to maintain their own infrastructure in order to support their initial solution (ie. PostgreSQL database and Redis cache). The former implementation also relied on storing user activity in a PostgreSQL table which, as activity grew, took more and more time to scan and retrieve activities relevant to a unique user. They knew their in-house solution wouldn’t scale indefinitely and adding and maintaining more infrastructure in order to fix it was not an option they wanted to explore.
Sketchfab heard about Stream as they are a fellow TechStars graduate. They tried the interactive API tutorial and were impressed with how easy Stream’s API is to use. Before making the final decision to work with Stream, they did their research. The main alternative they considered was building an in-house solution on top of Stream’s open source Stream-Framework. Stream’s built-in support for aggregation, notification feeds and ranking was a major reason for why they chose the hosted solution. Another benefit is the solid performance and reliability offered by the API. Stream’s hosted platform is based on Go and a highly optimized feed storage infrastructure. That level of performance and reliability is hard to achieve when building an in-house solution. The final reason they decided to use Stream’s API is pricing. The team at Sketchfab realized that hosting and maintaining their own Cassandra cluster, worker instances, task broker, real time infrastructure and API workers would simply not be cost-effective.
The end result of this collaboration is the new feed on Sketchfab:
In addition to the news feed, their notification feed is also powered by Stream.
In terms of performance, Sketchfab uses Stream’s region in EU-west. This is right next to their own data center, so the performance is very high. Here’s a graph of their read performance before and after Stream’s switch to Go:
“Building out feed technology is quite a challenge. We made the mistake of trying to build it ourselves…and we were just stuck. From a feature perspective, we couldn’t build something as robust as what Stream can provide. I’m simply amazed at how certain features, such as ranking, work. Stream is also very easy to implement and their team has been responsive on Slack!” — Tim Specht, CTO of Dubsmash
Dubsmash is a global entertainment platform that allows users to interact with content they love. Their team is building the interactive video quote database, allowing users around the world to share, lip-sync, and meme over pop culture content. With over 200M global users who create & interact with 35 videos every second, Dubsmash is building the entertainment product of the future — one where consumers are actively participating versus passively consuming.
Dubsmash has always been a huge fan of not “reinventing the wheel” by using existing solutions, being that they’re a small team operating very quickly. However, they initially believed that they could build an in-house feed solution that would have all the features and functionality they needed, at a lower price than what they saw in the market. They soon discovered that the complexities of building streams and feeds are vast. While they were able to easily construct a simple chronological feed, they ran into many difficulties when attempting to add features such as ranking and personalization. After spending many weeks and valuable resources on development, they realized that continuing to build in-house would not provide them with the best and most sustainable outcome.
Dubsmash has been familiar with Stream for over two years. They had experience with the original, open source Stream framework and had gone through the Try-the-API tutorials. They had also done extensive research on The Stream Blog and documentation page. When they reached out to Stream, they were in need of a feature-rich solution that could scale for their expected growth while integrating quickly and easily. Dubsmash was particularly impressed with Stream’s easy-to-use ranking feature, and the fact that the API can cover many use cases. Dubsmash uses several ranking methods side by side. The feed in their admin is strictly stored by time and the feed shown to users takes into account both popularity and time decay. What would have taken weeks of development time to build in-house, took a day and a half to implement with the API. With Stream, they just “don’t need to worry about it!”