Slide 1

Slide 1 text

Best kept secrets GraphQL + Prisma ⚡ 2019 GraphQL + Prisma

Slide 2

Slide 2 text

⚡ Current state of JS ⚙ Why GraphQL Why Prisma Demo Gist

Slide 3

Slide 3 text

Domas Bitvinskas domasbitvinskas.com Startup fanatic, co-founder @ Honestive Freelance developer with React / GraphQL / Prisma

Slide 4

Slide 4 text

Preface This is just my subjective opinion.

Slide 5

Slide 5 text

JavaScript Ecosystem #2018

Slide 6

Slide 6 text

ES6 is the new default {…props}

Slide 7

Slide 7 text

Angular kinda A

Slide 8

Slide 8 text

Vue kinda V

Slide 9

Slide 9 text

React still

Slide 10

Slide 10 text

Machine Learning in browser ⚡ Tensorflow.js Tensorflow.js

Slide 11

Slide 11 text

TypeScript & Flow getting popular what: string +

Slide 12

Slide 12 text

async / await everywhere Promises dead

Slide 13

Slide 13 text

GraphQL

Slide 14

Slide 14 text

GraphQL is cool

Slide 15

Slide 15 text

Fetch what you need only posts { title author { avatarUrl } }

Slide 16

Slide 16 text

Batch queries

Slide 17

Slide 17 text

Schema stitching

Slide 18

Slide 18 text

Way better DX than REST

Slide 19

Slide 19 text

Typical GraphQL server structure Schema / TypeDefs type Query { posts: [Post!]! post(id: ID!): Post! } type Post { id: ID! title: String }

Slide 20

Slide 20 text

Typical GraphQL server structure Resolvers { Query: { posts: (_, args) => Post.findAll(), post: (_, { id }) => Post.findOne({ where: { id } }) } }

Slide 21

Slide 21 text

Cool, where’s the problem?

Slide 22

Slide 22 text

No real standard of how messy your resolvers should be

Slide 23

Slide 23 text

Slide 24

Slide 24 text

No content

Slide 25

Slide 25 text

A data layer that replaces traditional ORMs in your application architecture. Open-source: github.com/prisma/prisma ⭐ 11.6k

Slide 26

Slide 26 text

Client API Server Database

Slide 27

Slide 27 text

Client API Server Database Prisma Server

Slide 28

Slide 28 text

Interact with your database the same way you communicate with a GraphQL server

Slide 29

Slide 29 text

Define database tables as GraphQL schema

Slide 30

Slide 30 text

Free CRUD

Slide 31

Slide 31 text

Demo Demo

Slide 32

Slide 32 text

Client Database Prisma Server

Slide 33

Slide 33 text

Client API Server Database Prisma Server Prisma Client

Slide 34

Slide 34 text

yarn global add prisma

Slide 35

Slide 35 text

No content

Slide 36

Slide 36 text

No content

Slide 37

Slide 37 text

No content

Slide 38

Slide 38 text

const resolvers = { Query: { user: (_, args) => prisma.user({ id: args.id, }), },

Slide 39

Slide 39 text

Postgres MySQL Mongo Prisma supported databases

Slide 40

Slide 40 text

JavaScript TypeScript Flow Go Prisma clients

Slide 41

Slide 41 text

Deployment ⚡ Heroku ⚡ Prisma Cloud …where you deploy Docker Deployment

Slide 42

Slide 42 text

Prisma makes it easy to develop great GraphQL API’s Short version

Slide 43

Slide 43 text

2019 - GraphQL adoption will continue grow - Prisma will grow rapidly as a remedy for GraphQL mess 2019

Slide 44

Slide 44 text

Thanks! ⚡ /Domas Thanks! domasbitvinskas.com