Created with Sketch.

Build Social Networks with Golang

Golang is a great language to build scalable social networks. We've built a robust Golang client to make intergrating with Stream easy and painless. Build, scale and personalize your news feeds and activity streams.

Start Hacking
AVERAGE STATS

Build Better Apps, Faster

Stream is the fastest feed service
Stream is used for companies that need feeds that scale
Stream is the fastest feed service
DEVELOPERS

Interactive Demo

Try the API

Golang Social Network

Stream supports feeds for millions of social apps. Golang is for building social networks and we want to make it as simple as possible to leverage Stream Feeds in your app.

Easily build activity streams (like Github), a Twitter style newsfeed, a feed like Instagram and Facebook style newsfeeds with Golang. Stream can be used to build your notification systems as well, if that is what you need. You can build social networking apps yourself with Golang.

Working with Stream in the Go language

Developed by Google, Go is quickly gaining support around the world as a compiled language with the power of C/C++ but with the readability and simplicity of scripted languages like Python.

With popular framework support, Go has quickly risen in the ranks of back-end and middleware API code to drive front-end applications or to perform low-level system application as well. It’s a solid language with excellent standard libraries which include testing and profiling, and even nice-to-haves like mock HTTP servers and generic database libraries. For performance reasons, we’ve started moving some of more more critical systems from Python to Go.

Go is not without its quirks, however. If you come from an object-oriented programming language, using Go interfaces will feel a little bit familiar but at the end of the day your code is run in a procedural basis similar to C and you don’t get nice things like inheritance patterns. Variable assignment and reuse takes some getting used to, and lack of exception trapping can be a little jarring to newcomers. But the pure performance of the language, coupled with built-in background worker handling with “Go Routines” make Go an excellent developer-friendly language.

Our Go SDK was originally started by community members and customers, and we adopted it in the fall of 2016 to be an officially-supported SDK. We’d love any feedback on the library.

Hosting platforms are more rare for Go applications, but Google App Engine makes it quite easy to deploy code, and other services like Heroku have followed suit to set up basic code runners within their sandboxed environment. You can certainly develop a launcher of your own and deploy code to any number of popular hosting platforms such as AWS, Digital Ocean, or Microsoft Azure.

While there are a number of frameworks out there designed to get you started building Go applications for the web, we’ve settled on using Gorilla/Mux for our internal API usage. There aren’t any large frameworks for Go yet like Rails or Django for the Ruby and Python developers; some would argue that Go is supposed to be a simple, powerful language without the need to over-engineer a framework.

Getting started: open source API Client

Our framework integration for Go is stream-go2.

Continuous integration is via Travis and we publish packages to Ruby Gems. Contributions in the form of issues, feature suggestions and pull requests are most welcome.

API for Feeds

Stream is an API for building scalable news feeds and activity streams. Try it out in this 5 minute interactive tutorial. To run the examples you'll need an API key. Register to continue...

var client = stream.connect('GET YOUR KEY');
var chrisFeed = client.feed('user', 'chris');
// Add the activity to the feed
chrisFeed.addActivity({
actor: 'chris',
verb: 'add',
object: picture:10,
message: 'Working on improving the user experience of the Stream Dashboard...'
});
Flexible Implementation