The Lifely journey
through meteor applications

@peterpeerdeman


architect in online

Stack Evolution

Our meteor application history (in a nutshell)

  • Bundlin (NodeJS REST Angular)
  • Part-up (Meteor DDP Blaze)
  • "Intranet" (Meteor DDP React)
  • "School" (Meteor GraphQL React)
  • "Course Planning" (NodeJS GraphQL React)

Bundlin

(NodeJS REST Angular)

a.k.a.

"First time javascript only"

Bundlin

(NodeJS REST Angular)

👍

  • Javascript in front- and backend
  • Large focus on frontend application
  • Heavily cached API endpoints

🚀

  • Too many package decisions
  • Large initial setup for deployment

Part-up

(Meteor DDP Blaze)

a.k.a.

"Cutting edge realtime data"

Part-up

(Meteor DDP Blaze)

👍

  • superior development experience
  • "opinionated" framework
  • notifications and realtime chat were a breeze
  • launched app on existing DDP API's

🚀

  • heavy subscriptions (loads of data)
  • harder to scale, maxing CPU's

Intranet

(Meteor DDP React)

a.k.a.

"Reactive everything in React"

Intranet

(Meteor DDP React)

👍

  • ES6 from get go: imports & npm
  • React simplified ui state handling
  • again: great platform for notifications chat
  • running elasticsearch and mongo in docker

🚀

  • deployment with fusion passenger

School

(Meteor GraphQL React)

a.k.a.

"API design on steroids"

codename: School

(Meteor GraphQL React)

👍

  • GraphQL/Apollo -> request efficiency++
  • GraphiQL automatic API documentation
  • API definitions by frontend team
  • Dataloader caching

🚀

  • Heavy meteor builds -> 2gb box required
  • No built in realtime data

codename: Course planning

(Node GraphQL React)

a.k.a.

"roll your own 2.0"

codename: Course planning

(Node GraphQL React)

👍

  • Control over build / compile time
  • Still using apolloclient
  • Closest to nodejs release cycle
  • Dataloader caching

🚀

  • diy accounts / hotreload / dev env
  • docker images for node and mongo

Considerations going "vanilla" Node

  • Team maturity
  • Necessity for "opinionlessness"
  • ...insert to be discovered missings here...
  • Apollo the way for Meteor and NodeJS to reunite

Thank you
for your attention

https://github.com/peterpeerdeman/the-lifely-journey-through-meteor-applications

btw: we're looking for a frontend engineer

https://lifely.nl/blog/frontend-engineer-gezocht-2016

The Lifely journey
through meteor applications

@peterpeerdeman