From the root of this directory run
nix develop if you have flakes enabled. If you aren't using flakes you can use the legacy
shell.nix shim with
nix-shell. These commands might take a long time to build everything.
You should have haskell-language-server inside the resulting shell for language support. Unfortunately haskell-language-server seems to take issue with the order that you open modules in. For example opening a test module before an executable module will sometimes make it complain that dependencies in the test module could not be found or loaded. The workaround is to open library or executable modules first in your editor followed by top level test modules and then modules imported by the top level test module.
Setup a development database with
make dev-db. Ctrl+c when it's done.
Start the development mail server with
make mail. Open http://127.0.0.1:1080 in your browser to see local mail sent by the app.
Run the development web server with
Go to http://localhost:8081 in your browser. You still have to refresh the page to see changes but you will have automatic recompilation on save thanks to ghcid.
See Makefile for more options.