I wanted to provide an update on Ello's open source efforts. Since our initial announcement, we've received a lot of attention and excitement from the community - which we’re very excited about - but we've also been quite busy!
As I mentioned in that initial post, a large move that's taken place behind the scenes over the last few months has been to migrate everyone from our older sharded PostgreSQL streams setup to our new Roshi-backed one. Roshi is fantastic for the sort of high-fanout queries that are the core of our Following/Starred streams, but with that move we still needed a low-fanout stream service to back our notifications panel. More specifically, the data stored there is only relevant to a single user, capped at 1000 items per category, and difficult to reconstruct in case of failure - all of which makes it a less-than-ideal fit for Roshi but a great fit for Postgres. We extracted our previous streams subsystem into an independent service and tuned it for this specific use case, the results of which you can check out in the [notification-streams](at https://github.com/ello/notification-streams) repo.
We've also been hard at work on integrating Ello with IFTTT (short for "if this then that"), a service that automates the taking of specific actions based on user-defined triggers. IFTTT's broad library of integrations will allow Ello-ers to do all kinds of interesting things with the content they create, starting with simple syndication for display other places (one of our most-requested features!). The components of our IFTTT integration are open source, available in the ello-ifttt repo. The integration itself is currently in beta, but if you’d like to kick the tires, email firstname.lastname@example.org and we’ll get you set up. Our plan is to launch with triggers based on creating posts and loving posts, with more to follow!
Another recent launch is the Ello Button - an easy way for community members to embed a link to their Ello profile on their own site. The underlying implementation (built by @holmezi) and the UI for making your own Ello button (built by @gb) are available in the ello-button and wtf repos, respectively.
Last but certainly not least, we've been working on an Android app for all of our patient Android users ()! Development is occurring entirely in the open, and we're proud to say that this is the first Ello project to have outside pull requests. Initially the app will wrap our soon-to-launch React web frontend (which we're planning to tidy up and open source very soon) with some native integrations to shore up key areas. Eventually we're hoping to migrate to React Native to provide a more rich experience to Android users. You can check out our progress and follow along - we're hoping to have something beta-able shortly!
From a meta perspective, our experience on the open source train has so far been overwhelmingly positive. A few stray observations from these first two months:
We’re still trying to figure out the best way to mesh public and private roadmaps. On a day-to-day basis, our team uses Trello and Pivotal Tracker for managing roadmap and developer workflow, and those both suit our needs quite well. We have tried many other tools (though that's a subject for a different post) but currently don't have much of an appetite to switch entirely to GitHub issues. We do want to provide some more granular visibility into technical roadmaps though, so if anyone has experience/thoughts/suggestions on good ways to balance that we’d absolutely be interested in hearing about them.
It's been great to have services available to us at the open source tier that we wouldn't be able to practically afford across a large number of repositories otherwise. Our current stack is some combination of Hound (code style standards), Travis (continuous integration), Hakiri (security auditing), CodeClimate (code smells/quality), and Gemnasium (dependency updates), though we're always evaluating that and tweaking as need be.
We can already see that at some point in the future consistency across projects is going to be an issue. Personally, I've been contemplating building some kind of linter to help us keep our projects in check and up-to-date, but haven't moved on that yet. Danger incorporates some really cool ideas in a related area.
There's obviously lots more good stuff to come, but I think that about covers the current state of affairs. As always, major thanks to @mk, @666, @sean, @colinta, @holmezi, @alanpeabody and @totallymike for all the hard work they put in every day.
We're looking forward to continuing to open up more and more of Ello!
#engineering #opensource #productupdate