Taking Sentry’s Rollback from Hack Week Project to Production
❗❗If you’re a developer that uses Sentry and you’re reading this in 2024, stop reading and head to rollback.sentry.io to get your very own Rollback!
Just a few weeks ago, we released Sentry Rollback — our first ever year-in-review experience. Think Spotify Wrapped, but for recapping your year as a developer on Sentry.
It’s pretty; it’s a little (read: a lot) snarky; it highlights your achievements and lightly roasts your failures (because you can’t really have the former without the latter).
Rollback’s origin is a bit unconventional — the initial goal was just to get some laughs inside the company while building something fun, and it turned into something more. Let me take you through how it all came together.
Inception: coming up with the idea for Rollback
Every year, Sentry hosts an internal hack week — a chance for everyone at Sentry to break out of their usual workflows and build something they’re passionate about. The only rule? Anything goes. If it’s something you want to exist, build it. Team up with whoever you want, learn new stuff, and build something awesome.
Many Hack Week projects don’t live on past Hack Week — and that’s okay! Some Hack Week projects live on, but only internally. Sometimes, though… a project attains escape velocity and rockets into production — like Sentry Rollback.
Assembling a team to build Rollback
Most Hack Week projects tend to be a bit siloed; engineers teaming up with engineers, sometimes even from the same team.
But Rollback brought together people from all over the company — engineering, product, marketing, design, and even copyediting.
It was a true company-wide effort, which turned out to be one of the project’s greatest strengths. It very quickly started to feel like a Real Sentry Thing (TM) because it had so many of the elements that would go into a Real Sentry Thing (TM).
Shipped, wrecked, replay...Rollback
We knew we wanted Rollback to stand apart from the sea of year-in-reviews. Step one of this was getting the name right.
We try not to take ourselves too seriously, so the name needed to be just the right kind of funny. It needed a name that would resonate with developers, because developers are 99% of the audience for it.
We tossed around ideas like Sentry Replay, Sentry Shipped, and Sentry Wrecked. But ultimately, Rollback checked all the boxes.
The rollback name felt uniquely developer-focused, evoking the idea of reaching backward and reliving a year’s worth of bugs. It felt like something developers would see and just get.
We hope you rolled back at least once this year — because we sure did!
Always build an MVP first
Building an experience like Rollback in just the few days we had for Hack Week was no small feat.
The cross-team nature of the project and the sheer number of moving parts meant we needed tight organization. Our product managers prioritized ruthlessly, booting any potential blockers — like wireframes and critical design decisions — out of the way early to keep development on track.
Scope was trimmed down to the bare minimum: for our Hack Week version, we focused solely on making it work for Sentry employees. We avoided complex infrastructure anywhere we could. No databases, no obsessing about performance optimization; just a laser focus on delivering a proof of concept that would hopefully elicit a laugh or two.
Hack Week Winners
After a few intense days, we pulled it off! Thanks to meticulous planning, ruthless scoping, and the many talents the team brought to the table, Rollback came to life. Laughs were had.
The project was an instant hit and took home the top award for hack week.
The prize? Mostly bragging rights — but also a super-limited-run keycap for the custom mechanical keyboard that all Sentry employees get. There’s an unknown (to most) number of different customs keycaps that exist in the Sentry universe, but people here like to collect and exhibit them like trophies. Functional, if not always ergonomic/practical, trophies.
More importantly, it planted a seed of what could be.
Bringing Rollback to life, and to you
Fast forward a couple of months, and people inside Sentry were still talking about Rollback.
The idea came up more than once: what if we actually released this? After all, we already had a compelling MVP. How hard could it be to add a little polish and send it to production?
As anyone who has built anything — whether it’s software or a shed — could tell you, the answer to “how hard could it be?” is often “Harder than you first thought.” Suffice it to say it took quite a bit longer than the initial week-long sprint.
Here’s what we ended up shipping
Choosing the right data to include in Rollback
To do any sort of year-end reflection, you need data to reflect upon. But because this project wasn’t planned from the beginning of the year, the data we had to draw from was somewhat limited.
In all, we had:
Account age
Issue workflow actions: Views, Resolves, Archives, and Assignments.
Suspect commits
Page views
Replay plays
Despite the simplicity of data we had to draw from, there was still a lot to query.
The initial Hack Week project only required us to sum up half a year’s data for a couple hundred employees. While we are big at dogfooding here at Sentry, our own data is clearly dwarfed by that of our 4M+ users. Further complicating things: many of those users are part of multiple organizations. We wanted Rollback personalities to be based on what each user did within an org, which in many cases meant generating multiple Rollbacks for one user.
The answer, of course, is to process this data ahead of time, so that it doesn’t need to be done for every user on demand the day the feature goes live. At the beginning of December, we queried a full year’s worth of data for each organization and user. We stored aggregated statistics from the data dump in a database table for quick retrieval.
Coming up with Rollback personalities
As a key part of Rollback, users are assigned “personalities” — a tongue-in-cheek caricature of their year as a developer within an organization.
When brainstorming these personalities, our goal was to create enough possibilities to ensure that most users would have a unique experience, and to create personalities that felt true to the different ways that people use Sentry.
We also wanted to ensure that these personalities were chosen based on your actions within an organization, rather than as compared to the entire Sentry user base. We wanted to make sure that each organization had a “Fixer”, for example, even if they only resolved one or two issues this year — it’s all relative.
In all, we landed on 11 unique personalities. We won’t spoil things by over-explaining all of them, but some examples:
The Fixer: Many issue resolutions and few suspect commits.
The Hot Mess: My personal favorite personality, for users that were named on many suspect commits but didn’t have many resolutions.
Lookie Loo: Many issue views… but not much beyond that.
The Overachiever: For the Sentry power user who had a good number of resolutions, assignments, and even suspect commits.
Creating the right music for each Rollback personality with Suno.ai
We knew from the Hack Week iteration of Rollback that the custom soundtrack was one of the most beloved features, so it was absolutely crucial to bring it back.
For each personality, we fed a descriptive prompt to Suno.ai along with the desired genre for variety. The output was usually catchy, but the lyrics were the real showstoppers. Just take a look at what we get for The Hot Mess:
[Verse]
Got a codebase all in tatters breakin every day
Commits come in like wildfires it’s a mess I’d say
No resolves or assignments just chaos on parade
You stir that pot so reckless why clean up what you made
[Chorus]
Oh baby you’re a hot mess ain't no fixing goin on
Living life in that chaos singing your wild song
No bother for the broken just stoking up the flames
You leave the wreckage laughing you never take the blame
[Verse 2]
Every merge feels like a gamble nothing’s ever safe
Features crash and burn here can't catch no lucky break
Frameworks fall to pieces conflicts never fade
But you just keep on stirring in that twisted game you play
Making an animated scroll experience for Rollback
Numbers aren’t much fun on their own. We didn’t want this to feel like a colorful spreadsheet. We wanted to bring the experience to life through design and animation, but also make sure that it felt like something we would post on our own blog/socials. We let ourselves get a little weird with it.
I knew we nailed it when a user DM’d us to say:
It feels like Spotify Wrapped on shrooms. Love it!
Yeah, that sums it up perfectly.
We achieved these browser animations with two libraries:
For the complex creature motions (blinking eyes, waving hands, coordinated movements) we used Lottie. The greatest benefit to this approach is how easily it allowed the designers to fine tune the feel on their own timeline. While they worked away at perfecting the motions and easing functions, development could continue on the rest of the experience. Once finished, we needed only to drop in a few JSON files to make everything come to life.
The rest was done with Motion, a fantastic general animation library that we use in the Sentry application as well. In particular, we (over)used the useScroll()
hook.
Stay mindful of the data Rollback is based on
One way that our Rollback feature differed from other year-end reviews is that Sentry is, for most, a workplace tool.
We thought that this was a fun way to let coworkers compare year-end stats, but we didn’t want to force any unwanted or awkward workplace conversations or shoehorn it into places it wouldn’t fit. We decided that it was best to give organizations the option to disable Rollback entirely for themselves.
In the end an insignificant number chose to opt out, but we’re still glad to have provided the option.
Your reception to Rollback on social
A huge component of a project like this is, of course, sharing. We envisioned this as something that would be readily shared and appreciated on places like X, Bluesky, and Slack workspaces.
No problem, right? Just slap in some social buttons and we’re done. Well… not quite. These buttons are powered by web intents which only support text and links, but we wanted to showcase our designs as fully as we could. We like them a lot!
That left us with a couple choices:
Option 1: Create a shareable link that can be viewed publicly
Option 2: Provide an image for the user to share themselves
Creating a shareable link was appealing— it would allow users to share a simple text link, and it would enable us to showcase the animations and audio exactly how we want. However, it also opened up a can of worms in both the usability of such a feature and potential for security issues. We at Sentry respect privacy by default and would need to include a visibility toggle to ensure that Rollbacks were not shared without your consent. We would also need to expose an unauthenticated endpoint, which is another attack surface.
Option 2, while imperfect in many ways, appealed to us in its simplicity. If a user wanted to share their information, they could, and we would escape responsibility for access controls (if only I could say that about every other project I’ve worked on!). With a tight deadline, this was the clear choice.
Was Rollback worth the effort? Yes.
The ticker is still counting up on how many users checked out their Rollback — but in the first 24 hours alone, we served Rollbacks to 10,000+ unique users in 130 different countries.
More importantly, we saw users sharing their Rollback images all over social media, and they told us how the images had taken over their team Slack rooms. We even saw examples of users pledging to use Sentry more in 2025 in hopes for a fuller Rollback, which, honestly, surpassed our wildest expectations. For something that started as a bit of a joke and something fun to work on for Hack Week, it feels like a win.