It’s always a pleasure to see something grow. Especially when it starts out small.
Content Suggestions at Buffer has enjoyed this interesting journey from small to growing, and in the span of eight months, it has quickly become one of our core services.
We love helping people share to social media, and content suggestions started out with this idea in mind.
How can we help users share?
One idea was to help people find fresh content. The first implementation started in the middle of January when our co-founder Leo and product manager Brian came up with an experiment. Brian did this mock up as a possible way that suggestions could look:
We would show a banner that five daily suggestions were available for the user. They could then perhaps check it out and possibly add them to their queue. At Buffer we always try to stay as lean as possible—even when implementing new features or interesting experiments. From a dev’s point of view, this is always super fun to work with. How can you maximize the most of your current code to move ahead as fast as possible without spending too much time reinventing the wheel?
At the time the experiment was suggested, Colin, our back-end engineer (now happiness engineer), and I sprang into action, going back and forth on Trello with Brian and Leo trying to smooth out the leanest approach:
We already had the contributions feature available for team members at that time, which shows the banner in the exact same way. A content manager would see posts awaiting approval, and then edit/approve the posts for their queue from their contributors. We thought we’d borrow this idea and re-use this code. On the front-end side, suggestions used most of that code almost verbatim. On the back-end, we created a new suggestions collection and used the exact same contributions endpoint.
We had some stickiness on the back-end with getting suggestions to not reappear once you’ve approved them, but besides that we had this experiment up and running by the end of the week.
Here’s the email I sent the team:
Earlier this week an awesome idea came about to suggest updates for users to add to their Buffer by using the same system in place for contributions.
This should now be live for 50% of users (or if you’re on a feature flip “Daily Suggestions”).
Some notes on this:
– It looks like normal contributions, but the notice has different text and has a different color.
– The updates, once approved, are created slightly different in the back-end/front-end
– The suggestions only appear when there are no contributions already waiting.
– The suggestions only appear for owners & managers.
– The suggestions only appear for Twitter profiles.
– There are five recommended each day. They change each day.
This is quite exciting! If you spot anything fishy, please let Colin or I know.
We soon realized that this experiment was wildly popular! Our CEO Joel was right when he replied:
So excited about this feature 🙂 I already used 2 suggestions and I got crazy engagement. So many directions we can take this, too!
From Experiment to Feature
Experiments at Buffer can sometimes be short-lived. If it’s unsuccessful, we delete the unwanted code and move on. When an experiment becomes successful, another cool part starts in the journey from experiment to feature. Since the current code was implemented in a lean way, do we refactor it right away to make it more clear and robust or go ahead with the implementation? This is a tricky one, and it’s always great to try and find a balance here.
For suggestions, we decided to keep going with the experiment-implemented code for quite a while. In April we changed our navigation slightly, which added a separate suggestions tab. This removed the banner. After that, things changed a bit more drastically when we started to implement multiple topics in May (another experiment!).
In this experiment we wanted to gauge which topics might be the most interesting for Buffer users. We tracked the clicks on the topics and ended up finding five topics which users clicked the most: inspiration, business & startups, design, lifehacking and marketing.
Now that we had a spec for topics, we realized we might need to take a look again at the code to make this a bit smoother. Up until then, most of the code stayed the same from January until May. Dan, our other front-end engineer, jumped into the backend (we jump around a lot!) to make separate endpoints for suggestions (it still piggy-backed on the contributions endpoint until then) and with Daily (our iOS app for suggestions) on the horizon it made sense to think more solidly on the implementation.
Andy also made Daily another lean success, and we now hand-pick new content every day for five topics. There was still one improvement to be made. How these content suggestions were added.
The Suggestions CMS
For quite a while our content team, especially Courtney, our awesome head of content marketing, had to go into our admin interface and add each suggestion from there:
Although this was part of the lean approach we set up, the irony was that at Buffer we focus on making sharing content simple and easy, but adding suggestions might not have been the most simple way. It was definitely something we could improve on. I jumped into this task about a month ago to make adding suggestions to our system as easy as sharing any update.
This was another super fun challenge. We decided to stay lean again and implement ‘dud’ Twitter profiles that could access our suggestions data. We then implemented a special timeline just for updates. In this way we could easily take a quick glance for each topic to see where we needed to fill up some content. This is how a ‘queue’ looks like for the design topic:
With these ‘dud’ profiles, we can now add any team members as content managers and they can share to suggestions as simple as sharing any content with Buffer:
Where we are today
The journey has been super interesting to work on from a developer’s perspective. Each iteration started as small and lean as possible and was built up as we went along. This is one of the coolest challenges at Buffer and something we think of each day.
Today over 20,000 updates are shared via suggestions each day. We’re keen to keep building on this, one step at a time!
Please share any comments below! Would love to hear from you, technical or otherwise 🙂