Skip to content

Instantly share code, notes, and snippets.

@SachaG
Last active June 8, 2017 15:15
Show Gist options
  • Save SachaG/d9380036bc7dc008a81dc02d342c6cdc to your computer and use it in GitHub Desktop.
Save SachaG/d9380036bc7dc008a81dc02d342c6cdc to your computer and use it in GitHub Desktop.
Telescope Nova + Apollo

Telescope Nova is the new, React-based version of Telescope, a Meteor open-source app.

Now that Telescope's front-end layer has been ported to React, the next step is porting the data layer to Apollo.

Codebase

You can find Telescope's code on GitHub. I recommend you use this branch to get the latest version of the codebase:

https://github.com/TelescopeJS/Telescope/tree/apollo

Architecture

Telescope follows a package-based architecture, meaning all its code is contained within separate local (stored in /packages) Meteor packages, usually one per feature (nova:lib, nova:core, nova:posts, etc.).

Routing & SSR

Telescope uses the react-router-ssr package.

UI/Data Layer

Telescope follows the container component/presentational component pattern.

Nearly all presentational components are stored in the nova:base-components package (with a few exceptions for components provided by optional packages).

Container components on the other hand come from two sources:

  1. The nova:core package contains the global AppComposer function that loads and passes on the current user object.
  2. Every other container (post lists, single post, comment threads, etc.) is provided by the react-list-container package.

Finally, on the client Telescope uses Minimongo to store data.

Collaboration

You can join the Telescope Slack chatroom to ask questions and chat with other Telescope users :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment