Vulcan: A New Direction For Telescope

Vulcan is what we’ve decided to call the next big evolution of the Telescope project.

First, some background: Telescope was originally launched as a way to build your own Hacker News. Over the years, we’ve realized that Telescope could be used to do a lot more than simply build ranked news sites. That’s why we’ve decided to focus our energy on turning Telescope into a more flexible framework, and we thought this new approach deserved a new name.

What we mean by “framework” is that Vulcan will take care of all the most common tasks involved in building new apps: data loading, form handling, user account management, etc.

That being said, don’t worry: the current Telescope features such as posts, comments, and voting will still work just as before. The only difference is that they will be presented as optional components you can enable if needed, not as core parts of the Vulcan package.

Three Principles

We’ve summed up this new approach in three principles:

No Dumb Work

We want Vulcan to take care of all the boring work involved in setting up a new project. In other words, if it’s something you find yourself doing over and over in every project (such as coding forms), then Vulcan should handle it.

Flexibility & Extensibility

Traditionally, a big problem with customizing a codebase is that the more you adapt it to your needs, the harder it gets to pull updates from the master branch. That’s why Vulcan is built from the ground up with flexibility in mind: every part of it can be extended or overwritten without modifying the core codebase, to ensure smooth updates as the project evolves.

Eject Anytime

Despite all of Vulcan’s advantages, we know there’s always a chance you’ll outgrow it. But since Vulcan is built on standard technologies like React, Redux, and Apollo, this doesn’t have to be a bad thing: just pick and choose the pieces you want to replace with your own custom implementation, and everything will keep humming along just fine.

Telescope, Nova, & Vulcan

We know Telescope’s chronology can be confusing. So just to clear things up, here’s a short timeline of Telescope’s various versions:

Telescope Legacy (2012–2016)

The original Telescope, built with Meteor and Blaze. Focused on being usable out of the box as a Product Hunt/Hacker News clone.

Telescope Nova (2016–2017)

The Meteor/React refactor of Telescope. Contained fewer features than Legacy, and was focused mainly on extensibility and flexibility. Nova originally used the Meteor pub/sub data layer (“Nova Classic”).

Later in 2016, Nova was ported to the Apollo data layer while still using Meteor (“Nova Apollo”), and all internal APIs were refactored to eliminate global variables.

Vulcan (2017-???)

The new name for the Apollo version of Telescope Nova.

As of March 2017, Vulcan is merely a rebranding of Telescope Nova 1.2, and does not feature any code changes.

Why “Vulcan”?

Vulcan is the Roman god of fire and volcanoes. Since Vulcan uses React and Apollo, we thought this was an appropriate name. After all Apollo is a Roman god too, and the React team has used volcanoes in their imagery before.

Also, the logo has a hidden reference to Telescope’s original space-themed roots. Can you find it?

What’s Next

Vulcan still runs on Meteor, and although we’re very happy with it right now our overall vision is for more freedom and more modularity, so one of our goals for 2017 is to become a bit more independent from the platform. This means moving away from Meteor packages, and maybe also moving to a Meteor-agnostic accounts system such as Passport.

Another focus will be performance: with Meteor 1.5’s support for dynamic imports, we should be able to lower the size of the client-side bundle quite a bit. And on the server, we’re looking into using dataloader to batch database queries.

If all that sounds interesting, the best way to get started is to check out the documentation, and then join our Slack!