This is an example of a fullstack Reason + GraphQL application that uses a native backend and a client compiled to JavaScript through BuckleScript, whilst sharing types between the backend and the frontend.
This was initially based on @jaredly's isomagic-todos experiment that accomplished sharing types between the backend & frontend through some PPX magic.
In this case, we leverage the power of GraphQL and its support in OCaml through
ocaml-graphql-server and
graphql_ppx to build our API through shared
OCaml / Reason types (have a look in src/shared
).
yarn && yarn build && yarn bundle
Note: it's a quiet startup; check http://localhost:8080/graphql to see that it's running!
npm install -g esy
esy @server
esy @server x graphql
- GraphQL schema fully defined in Reason (see
src/server/schema.re
) - There's also a GraphiQL instance at
localhost:8080/graphql
for exploring and playing with the queries and mutations.
MIT