I’m currently working on EditSC, which is a browser-based tool for editing Survivalcraft worlds. I started working on it in December 2019. You can try it here (i develop directly on this server): https://dullgo.pythonanywhere.com/editsc/
Survivalcraft worlds have 2 files in a zip archive: a binary chunks file for storing blocks, and an XML project file that stores things like entities and world settings.
My original idea was to do all of the processing of the world on the server, which uses Python. That was a very stupid idea since it would take up so much resources on the server.
So about a week later I decided to just do everything in the browser. I only used TypeScript. I had not heard about Elm, and I didn’t know how to use many of the features in TypeScript. Basically every error happened during runtime. After about a day I finally got it to extract the zip archive and render the chunks using Three.js.
In January I read this series that was in my daily Medium digest: So You Want to be a Functional Programmer. At first I saw Elm’s syntax as very confusing, but soon I decided to learn more about Elm. I soon started to love it before I even started using it.
I eventually started rewriting EditSC. Now I’m using Elm with TypeScript (and I now know much more about TypeScript). Elm is used for the UI and processing the project file, and I use TypeScript for the chunks file. I love Elm so much. I love the confidence of knowing that my code works if it compiles.
One of the things I’m using is the elm-ui framework. It makes it super easy to build user interfaces, and you don’t have to deal with hard to fix CSS problems when using Elm UI.