Building the Pronunciation Layer of AI (projectsapiens.xyz)
Gateway Plaza Revitalizes and Future Proofs (indyweek.com)
Show HN: Configurable desktop environment running in the browser
---
I began it by rewriting my (initially minimal) personal website by writing it as a desktop thing, at the end of April.
This also has been an excuse for me to start trying that LLM thing everybody talks about. I'm kind of an [annoying] contrarian luddite and so I never really used an LLM before, but after my search engine (Kagi) insisted that I should use it by adding some to my subscription plan, I gave up and felt that I had to try using that thing!
In the end, LLM mainly helped me for initial app drafts and ideas, which is not the aspects I find the most fun generally, freeing me to do what I like: the logic stuff, architectural ideas, ad-hoc concepts (e.g. executable format, a file system, a permission system etc.). Though I found that under my prompts at least, the more I queried an LLM, the worse its output was, so it stood in first drafts territories mostly (and theming!).
This synergy led me to spend way too much time on that thing, as there was not much any step slowing/annoying me enough for me to stop working on that project.
---
Now after a long list of features that I wanted to implement first, I finally begin to like enough that site to share it.
Do not hesitate to tell me if you see issues, weird choices or poorly understandable things.
I also wanted to allow the visitor to hack around stuff like the system config through the filesystem (as if updating the `~/.config/` or `/etc/` directories in the linux world), so I also planned to have the desktop's own config files reachable in there and make it user-editable (though for now that's only the case for the list of desktop icons).
I found out that having a few root directories that were fully virtual[1] (actually in-memory) and marked a "read-only", and the others that were actually real IndexedDB-backed storage[2] was very simple to manage.
In the end it seemed to me like a much more simplified unix-like way of doing things which is what I'm the most used to. I'm not that familiar with windows so I'm not sure why it also looks windows-like though :D, is it about the naming of paths?
[1] `/apps` for apps and `/system32` for default configs - the name was `/system` at first, then I thought renaming it `system32` instead was ""funny"" (as the directory name became kind of a meme), so I did that! Both store "files" that are actually JS objects that can be stringified to JSON when reading them.
[2] For now `/userconfig` for the desktop's own update-able config and `/userdata` for the "home" directory. Something like `/appconfig` is also planned though I'm not sure yet. In contrast those contain data really stored locally, in ArrayBuffer form (a blob of bytes).