Hubullu: a DSL/compiler I made because conlang changes don’t propagate cleanly
I made a tool called Hubullu for one frustration I kept running into while designing conlangs:
the language changes, but the project around it doesn’t change with it.
If I change an inflection table, or revise the spelling of something, or rethink part of the morphology, there’s usually no good way to push that change through the whole corpus. Dictionaries, lessons, example sentences, and translated texts all risk going out of sync. So I wanted a system where those changes could be described once and then propagated across the project.
A second design goal was that the tool should be as language-neutral as possible. I didn’t want to build in one specific theory of language, or assumptions that only really make sense for one family or typology. A question I kept asking myself was: would this still be a sensible core feature for Arabic, Chinese, Dutch, English, Latin, and Turkish? If not, maybe it shouldn’t be in the core at all.
The repo has examples for several languages for exactly that reason.
I'm working for VS Code support
I’ve been using Hubullu to build a larger conlang project called Nuçongə (ja: ヌヒョン語, also spelled as Nuchonge), a future descendant of Japanese. One thing I’m especially happy about is that I can use the same system not just for lexical data but for teaching materials too. I’m attaching two screenshots from the Nuchonge textbook as examples.
A textbook for Nuçongə, powered by Hubullu
Also it has an auto-generated glossary
If this sounds interesting, I’d love feedback — either on the linguistic side or on the workflow/tooling side.
Hubullu: https://github.com/frodo821/hubullu-lang
Nuchonge: https://github.com/frodo821/nuchonge