Jul 29, 2019, 8:39:21 PM
devtools elixir Phoenix Absinthe GraphQL React Apollo
https://schneider.dev/blog/elixir-phoenix-absinthe-graphql-react-apollo-absurdly-deep-dive/

tools:
https://phoenixframework.org/ - Elixir web server
https://graphql.org/ - API queries
https://hexdocs.pm/absinthe/overview.html - GraphQL server for Elixir
https://www.apollographql.com/docs/react - JS graphql consumer
https://reactjs.org/ - front end

source:
https://github.com/schneidmaster/socializer

demo:
https://socializer-demo.herokuapp.com/

notes:
Why Elixir?
Why GraphQL?
Why Apollo?

Server:
model classes -> Ecto
GraphQL schema
Resolvers
Context/authentication

Testing (server side) -> ExUnit, ex_spec, ex_machina
Integration test setups -> https://tosbourn.com/testing-absinthe-exunit
Subscription test setups -> https://www.smoothterminal.com/articles/building-a-forum-elixir-graphql-backend-with-absinthe

client:
bootstrap: https://facebook.github.io/create-react-app
routing: https://reacttraining.com/react-router

apollo client:
First query:
Authentication & mutations:

Testing (client side):
https://jestjs.io/ (JS test runner, c-r-a includes it by default)
https://testing-library.com/react

Server-side rendering:

Conclusion & takeaways
Socializer Introduction Elixir, Phoenix, Absinthe, GraphQL, React, and Apollo: an absurdly deep dive GraphQL: A query language for APIs. schneidmaster/socializer React – A JavaScript library for building user interfaces Phoenix Building a Forum Elixir GraphQL Backend with Absinthe - SmoothTerminal Overview – absinthe v1.4.16 Testing Absinthe with ExUnit