Jerod Santo changelog.com/posts

Changelog.com is open source

Open Sourcing event on GitHub

As we promised in our relaunch announcement, this morning we open sourced the code that powers the new Changelog.com!

Don’t want the full rundown? Go star the source code on GitHub.

What it is

Changelog.com is an Elixir application built on the Phoenix web framework, PostgreSQL, and a host of great open source efforts.

We built it to deliver good old-fashioned server-rendered HTML with “JavaScript sprinkles”. Expect future posts from me about that decision and others we made along the way.

Why open source our website

Changelog.com isn’t a platform to build on, or a library — so why did we open source it? A few reasons:

  1. We love open source. Our careers (and livelihoods) wouldn’t be possible without open source. Keeping it closed just felt wrong.
  2. Phoenix is really great, but it’s still young. There aren’t very many in-production open source sites for people to reference as an example or inspiration. We want to throw our hat in the ring and hopefully others will follow.
  3. Changelog is a community of hackers. Open sourcing the website will lead to bug reports, feature requests, and pull requests. This means a better overall product for all to enjoy.

What it’s good for

Absolutely nothing! Oh, sorry, that’s war.

If you're building a web application with Phoenix (or aspire to), this is a great place to poke around and see what one looks like all wired together.

Tweet

It’s not perfect by any means, but it works. And that’s something. We’ve also been told that it is ridiculously fast.

Here’s an incomplete list of features we’ve implemented that you might find useful:

  • distinct Admin and Public pipelines
  • admin CRUD with Semantic UI integration
  • iTunes compatible (as well as vanilla) RSS Feeds
  • passwordless logins
  • comprehensive meta tag strategy
  • persistent audio player
  • rudimentary search API (coming to public site soon!)
  • two asset build pipelines (thanks webpack!)
  • Markdown processing (thanks Cmark!)
  • 3rd party API access (thanks HTTPoison!)
  • caching of 3rd party API responses (thanks ConCache!)
  • file uploads and mp3 processing (thanks Arc!)
  • pagination (thanks Scrivener!)
  • transactional email delivery (thanks Bamboo!)
Changelog.com code sample image

If you have questions about any of the code, holler @Changelog. Better yet, join the community where we have in-depth discussions about software development, industry trends, and everything else under the sun.

What’s next

The source code doesn’t tell the full story. We’re working on a bunch of posts to share our experience building the site, including:

  • Our take on working with Phoenix
  • How we made the site so stinkin’ fast
  • Why we chose to use Turbolinks
  • Tools and services we relied upon along the way

In addition to that, the venerable Gerhard Lazu helped us set up a slick production deployment scheme using Ansible, Docker, and Concourse CI. Gerhard has a series of posts in the works that will break down that process and what came of it. Who knows, maybe some more open source will come from it.

Keep up

Follow @Changelog on Twitter and subscribe to Changelog Weekly so you don’t miss a thing.


Discussion

Sign in or Join to comment or subscribe

Player art
  0:00 / 0:00