Build scalable feeds, activity streams & chat in a few hours instead of months.
Tools by Stream

Decisions 8

Nick Parsons

Director of Developer Marketing at Stream


Winds 2.0 is an open source Podcast/RSS reader developed by Stream with a core goal to enable a wide range of developers to contribute.

We chose JavaScript because nearly every developer knows or can, at the very least, read JavaScript. With ES6 and Node.js v10.x.x, it’s become a very capable language. Async/Await is powerful and easy to use (Async/Await vs Promises). Babel allows us to experiment with next-generation JavaScript (features that are not in the official JavaScript spec yet). Yarn allows us to consistently install packages quickly (and is filled with tons of new tricks)

We’re using JavaScript for everything – both front and backend. Most of our team is experienced with Go and Python, so Node was not an obvious choice for this app.

Sure... there will be haters who refuse to acknowledge that there is anything remotely positive about JavaScript (there are even rants on Hacker News about Node.js); however, without writing completely in JavaScript, we would not have seen the results we did.

#FrameworksFullStack #Languages

35 907.6K

Nick Parsons

Director of Developer Marketing at Stream


We wanted to experiment with building an Electron app with downloads for every Linux distro, macOS, and Windows, in addition to the web. Fundamentally, this seemed pretty easy: we write code, wrap it in an Electron shell, and release to our desired operating system… It turns out we were wrong.

Electron, though powerful, turned out to be a bigger beast than we had anticipated. Building to different distros was especially hard, even with electron-builder (granted, we had the bad luck of needing to patch electron-builder (and that bug has since been fixed), but that only accounted for some of the pain points we hit). The macOS menu bar had to be just right for the macOS store to accept our app, and performing small tasks with the Electron API, like opening a link in an external browser, turned out to be pretty difficult.

Despite the difficulties, our team moved forward with some custom tooling (all visible and open-sourced on Github) and we released not only to all of our release targets but to the web, too.


27 49.1K

Vishal Narkhede

Javascript Developer at

Recently, the team at Stream published a React Native SDK for our new Chat by Stream product. React Native brings the power of JavaScript to the world of mobile development, making it easy to develop apps for multiple platforms. We decided to publish two different endpoints for the SDK – Expo and React Native (non-expo), to avoid the hurdle and setup of using the Expo library in React Native only projects on the consumer side.

The capability of style customization is one a large deal breaker for frontend SDKs. To solve this, we decided to use styled-components in our SDK, which makes it easy to add support for themes on top of our existing components. This practice reduces the maintenance effort for stylings of custom components and keeps the overall codebase clean.

For module bundling, we decided to go with Rollup.js instead of Webpack due to its simplicity and performance in the area of library/module providers. We are using Babel for transpiling code, enabling our team to use JavaScript's next-generation features. Additionally, we are using the React Styleguidist component documentation, which makes documenting the React Native code a breeze.

19 300.8K

Nick Parsons

Director of Developer Marketing at Stream

On occasion, I like to set out and write tutorials around the technology that I’m currently working with. With Stream’s recent release of its Python SDK for Chat, I felt compelled to write up a tutorial that would be engaging to developers interested in building a chat application with Python .

Most of the time, my tutorials are rather short and straight forward; however, with the Python tutorial, I wanted to take it a step further and throw in some additional technology to make things fun.

I chose to use a combination of our Python Chat SDK, the Stream React Chat components and Django for handling backend auth.

It was a lot of fun and I’m very proud to say that the tutorial turned out well. If you’re interested in reading, you can find the full Python Chat tutorial over on

Thank you and I hope you enjoy the tutorial on building an app with Python and Chat by Stream !

10 6.7K

Followers 156

Davud Čolaković
Andrew Crebar
Harish Nair
국영 정
Hector Garcia
syed irfan
Adithya Shetty
Artem Kononov
erez simai
Palak Mehta
Sid Suri
Matheus Cardoso
Craig Fifield
Craig Fifield
Eugene Levenetc
Dhara Doshi
Paul Rawlings
Iliyan Georgiev
Galih Nur Aditya
Jonathan Dacanay
Gabriel Pipko
Jack McMillan
Merel van H
Amin Mahboubi