my starter project is here[2]. backend is go on lambda. frontend is clojurescript with react and mui, compiled down to a single html file with js inlined, and pre-gzipped.
lambda zip contains two files:
- ./main
- ./index.html.gzip
the backend returns the index for any route not beginning with /api/.
websockets and http ferry information between frontend and backend. s3 and dynamo persist data. ops are easy. sdlc is fast.
frontend runs local and instantly reloads. backend reloads in 1s. if you have bad upload bandwidth, do backend builds on an ec2 relay for $5/month! or just tolerate 10-20s backend reloads depending on your bandwidth.
sure the index is a bit heavy, but if it’s not annoying to use on a phone over cellular, it’s probably fine.
have most react devs seen the regeant[3] interface that clojurescript devs use with react? it’s so simple and hasn’t changed in a decade!
i start all my projects this way now, and am so happy. i can’t imagine a better workflow.
1. https://gocljs.nathants.com