Determinist // Devlog 9 // 2026.08.22
Long time no see y’all, sorry for the wait! I’m on vacation so I had less time to work on the project, but I did bring some amazing improvements.
Announcement
The website is officially up and works identically to the CLI, now with presets! Just load your TOML presets into the website, and they will be saved for you to reuse! Important note: they are saved locally, therefore you will not see them on different devices unless you import them there too.
Changes
- Added the preset system to the website!
- You can now import and use presets, and you can easily remove them if needed.
- Adjusted the UI so that it fits most (if not all) screens. The smallest screen I tested was an iPhone SE.
The Challenges
There actually weren’t a lot of challenges for once. The biggest one was that I forgot to work on the project while on vacation, but that’s not horrible. And then came React, JavaScript and everything else… firstly, the preset loading was actually really easy, I did however fight with React about passing values from a child component to the parent. And then it turned out I forgot to make it actually pleasant to use, as I had to select the preset file every time I wanted to load it. Now you can save, select and load your presets on the website. However, React had other plans.
I finally learned how React’s useEffect hook works, and using it is pretty easy now that I get what I’m doing. Along with this, I also properly learned about using functions inside useState for lazy initialization which I needed for localStorage. Oh, localStorage was a pleasure to learn and use… Well, the operations with it are actually fairly easy, it’s like an object, and my first thought of initializing a state with it was to use useState({ ...localStorage }), which did work, but it introduced something else: a build error after I merged the changes into main.
Turns out, localStorage is undefined when GitHub Actions wants to build my website, therefore it gave me an error saying so. What I had to do is check if the window object is equal to 'undefined', and if not, then spread localStorage and initialize the state.
Finally, the website managed to build properly, but when I tried to use it on my phone, the output of the generator was outside my screen… so I had to go back and change how the UI looks after I’ve already merged everything into main. Amazing. Well, the good new is that it works, and next up is the v3 algorithm, as well as QoL changes, bug fixes, and more in both the CLI and web versions.
Comments 0
No comments yet. Be the first!
Sign in to join the conversation.