Realworld Hasura
What?
A Realworld inspired blogging platform using Hasura
+ Purescript
+ Elm
'Inspired' as it doesn't follow the frontend or backend spec for the official Realworld
example apps (https://github.com/gothinkster/realworld) but tries to replicate the features as closely as possible.
Some notable differences to reference Realworld
- Uses a Graphql Backend (Hasura https://hasura.io/)
- Frontend uses Elm UI for layout (https://package.elm-lang.org/packages/mdgriffith/elm-ui/latest/)
- Mobile responsive
- Modified Layout and design
Why?
Why not?
How?
The project is a monorepo split into frontend
, backend
and infrastructure
(separate READMEs in each directory)
Frontend
- A single page Elm app (deployed on
vercel
https://vercel.com)
Backend
- A Hasura instance is deployed on Heroku
- A
Purescript
serverless http api that handles authentication and custom application logic, communicates with Hasura as an actions server https://hasura.io/docs/1.0/graphql/core/actions/index.html (deployed onvercel
)
Infrastructure
- Terraform configuration for provisioning the actions server, database and secrets https://www.terraform.io/
Github Actions (CI/CD/Infra)
- Automated tests run on each pull request
- A terraform plan is posted to each pull request
- A full build and deploy of each service happens on merge to
main