This is the code that we wrote during the Scala Days 2025 workshop, Real World ZIO.
The workshop walks you through the experience of writing a full-stack web application with the ZIO stack: a review-board for companies, in the style of Glassdoor.
The application is built with
- ZIO for effects, tests, config, logging and others
- Tapir for HTTP definitions, with ZIO HTTP as the server
- Quill for data storage
- Stripe for checkout
- Laminar on the frontend, integrated with ZIO
- have a docker database ready - this means, for dev purposes,
docker compose up
in the root folder - in another terminal
sbt
, thenproject server
, then~compile
to compile the server incrementally as you develop - in the same terminal
runMain com.rockthejvm.reviewboard.Application
to start the server - in another terminal
sbt
,project app
and~fastOptJS
to compile the frontend - in another terminal (that's 4 in total), go to the
app/
directory, runnpm install
- still in terminal 4, run
npm run start
to start serving the page - go to
http://localhost:1234
to see the page
If you have changes to suggest to this repo, either
- submit a GitHub issue
- tell me in the course Q/A forum
- submit a pull request!