🍲 Risotto Play
Table of Contents
Sometime back in 2018, a friend of mine started building his own programming language, “Risotto” (GitHub link) (although I wanted the name to be “Ravioli” so the syntax could be “Ravioli Ravioli, give me the formuoli” (I know, I’m immature)).
Anywho, I’ve enjoyed using services such as The Go Play Space and Repl in the past, and wanted to replicate this kind of environment (whilst paying 0 for hosting) for Risotto.
The API #
This runs on Kubesail for easy K8s deployment (and the free tier), with the API written in Go, and spawning a process running the code passed to it.
In order to keep the API service performant, there’s a little bit of IP addressed rate limiting, and runtime constraints, but overall the traffic is low enough that this hasn’t come close to being an issue yet.
The API is designed so that if anyone wants, they can use it for their own purposes, which is highly encouraged (get Risotto out there!)
It is also covered with Unit Tests, and automatic CI/CD.
The UI #
This is hosted with GitHub pages for easy CI/CD and just fantastic performance.
Written in React (TypeScript flavour), it’s fairly simple but is optimised for responsive design and even has a cute little “Share” feature, so you can share your creations with others.