After last week’s newsletter, I decided to just pump out the rest of the code for Mystery Cows (an example web app for learning ClojureScript) rather than dribbling it out a bit at a time. So here it is: https://github.com/jacobobryant/mystery-cows. The Readme includes steps for developing and deploying the project on your own, no knowledge of Clojure or Firebase necessary. I hope it’s useful.
The really exciting thing about this project is that I figured out a way to declaratively specify which Firestore subscriptions are needed by the app at any given state. This makes up for a shortcoming in Firestore: although the queries lack joins (and are thus much weaker than SQL or Datalog), this lets you get around that by doing joins declaratively on the frontend. I explain this more in the following practice-run of a presentation I gave last night at the Clojure Provo meetup:
By the way, I’ve posted this project on Hacker News, so please consider giving it an upvote if it’s interesting to you.