MiraNova Developer Journal
This journal captures technical thoughts and work-in-progress notes. The opinions expressed in this journal are Michael's own and do not necessarily reflect the views of MiraNova Studios as a whole.
February 14, 2026
by Michael (Aeonath)
I have decided I will turn the Pulse blog into my developer Journal for MiraNova projects. I will share my thoughts on various topics here and muse about challenges we have faced so far. This is basically so I will have a record of what I was thinking about, only it will be public. So it is still kind of like a blog and kind of like a journal. But I will not use this for announcements. Also posts will not be as polished and may be more like ramblings than a coherent structure.
Announcements will no longer be posted here. Announcements on Lyric and Novi will be posted on lyric-lang.org going forward. We will be discussing both these projects at length here in the journal but announcements will officially be on the other site going forward. MiraNova specific announcements will be posted on the home page under the Home link.
Topics here will be various technical topics. There will be no more "Lyric development is still paused" updates. If I don't like this I will change it back to the original Pulse blog format with both announcements and random posts.
— Michael (Aeonath)
February 13, 2026
by Michael (Aeonath)
Well it is Friday the 13th, but it is also our 4-month anniversary. We are back on track with our projects and have done some necessary cleanup to our website.
We removed the Polaris project from the Studio Projects page, as we will likely not be getting to this anytime soon. It joins our backlog of ideas that may someday appear there. Next in the queue is project Thrifty Tom, which will be developed alongside MikoPoker once Lyric and Novi are released.
Lyric will now likely be released at version 0.9.1 as originally planned. I don't feel comfortable moving this to version 1.0.0 until it has undergone significantly more testing. I am adding a blacklist as it does not make sense in a new language to allow modules related to Python internals such as traceback and pdb. This is because your source code will be Lyric, not Python itself, and Lyric is its own language. Speaking of pdb, I am going to try and have a minimal step debugger built in to the interpreter, but this will likely come at some point after the first release.
The Studio was initially conceived as a Game Studio to develop Magicka Offline using Unreal Engine. That seems like such a far off dream now, especially for someone who loves to start new projects like me. I am still very much interested in learning game programming, but I want to have a couple of games under my belt before I tackle something like Unreal Engine.
But Lyric is the top priority right now so back to Lyric we go. I know Lyric is mentioned as statically typed in the spec, but currently type checking occurs at runtime. Types cannot change after they are declared unless it is a var, so in this sense types are static. I have been having lengthy discussions with ChatGPT about the trade-offs of doing static analysis here, and have plans to create an experimental branch which optionally moves type checking that occurs during a semantic analysis phase after parse time and before runtime. Then we can mark the AST Node as type safe, so we don't have to check the type at runtime. This will likely not be an option in 0.9.1, but should be available before 1.0.0. We will collect some real world data about performance and decide on a default mode for 1.0.0. Since all variables are explicitly typed, there should be no reason why we can't do this with our current syntax.
Novi will also be coming along, and its default mode may very well be vi. And then Lyric is supposed to be a teaching language you say and you're forcing vi on people from the beginning. This is not really the case. You can turn off vi mode with set vimode off in the Novi Shell. That is all it takes then it behaves like VSCode as it is the same base editor, Monaco, underneath. I was thinking about calling the option to disable vi mode set novi, but that seemed a little too cheeky even for me. Also, you don't have to use Novi to use Lyric. You can use any editor you like, though most will not recognize the syntax because it is so new. Syntax highlighting extensions for VSCode and Vim will be made available along with the release, and these are the recommended environments. Novi will not be ready yet, but it is coming.
Lyric has come a long way in our first 4 months, but it still has a ways to go. I have no idea how this will perform in the real world and only have time to test a small subset of the available modules. I am building this primarily because I think it is actually fun, but if someone finds it useful it would mean a lot to me too.
— Michael (Aeonath)
February 12, 2026
by Michael (Aeonath)
The Nova project is restarting from scratch, carrying forward lessons learned into an entirely new ecosystem: Rust and Tauri.
What was previously referred to as the Nova IDE is now the Novi Editor. Novi is a vi-style editor with strong terminal support, Git integration, and a file tree. Additional features such as ChatGPT Codex support and SSH terminal support are planned for the future.
During development, we hadn’t yet implemented the Nova Agile Specification workflow or the AI agent orchestration mechanisms that were central to Nova’s original vision. As the project evolved, it became clear that this environment wasn’t the right foundation for Nova itself. The Monaco editor and command palette began to feel too close to VS Code. More importantly, I found myself using the application daily as my main terminal emulator environment — and genuinely enjoying it in that role.
Novi was actually envisioned earlier, but the idea was scrapped at the time because I didn’t want to maintain two Electron projects simultaneously. In hindsight, it’s clear that our Nova prototype was always meant to become Novi. It wasn't really a true IDE then and will not try to be one — it’s a vi editor and terminal environment with some carefully chosen bells and whistles.
This also means Novi can be released much sooner than Nova ever could have been. I hope you enjoy using it as much as I do. Novi will be available on lyric-lang.org when it’s ready and will be available as an alternative development environment for Lyric.
I’m very pleased with this direction and excited to learn a new language for myself in the process: Rust. Now I finally have the right excuse to do so.
— Michael (Aeonath)
February 11, 2026
by Michael (Aeonath)
Lyric development is back in full swing. The Lyric specification has been updated to the most recent version and is now available here: Lyric Specification
You may have noticed we also removed the Lyric page on the MiraNova Studios website. All information about the project will now be hosted on lyric-lang.org.
Key updates in this version include class inheritance, class scoping for methods, built-in getopts, file I/O operators, and command pipelining.
We are getting close to being release-ready, and it now looks realistic that Lyric will ship in Q1, as originally planned.
If you are curious about what the license will look like, it is now posted here on lyric-lang.org as well.
— Michael (Aeonath)
February 6, 2026
by Michael (Aeonath)
Lyric development is still on hold, having been temporarily derailed by the most evil side quest known to man: ESO Cyrodiil. I’ve been attempting to break into the top 10 on the leaderboard this campaign, which has ended up consuming most of my free time.
If anyone is actually waiting for Lyric to be released, apologies. I’m not sure how many people read this blog, but either way, Lyric is still very much in the queue.
One thing that is changing is licensing. Lyric will initially be released under MiraNova’s proprietary but free-to-use license. If there is sufficient (or any) interest after release, I’ll consider making the source available under a copyleft GPL license.
I’m trying to remember what was supposedly “on fire,” but I’m fairly certain no actual flames are being harmed in the process. I’ll aim to return to Lyric development on Monday.
Other projects are, of course, also paused, as Lyric remains the top priority.
— Michael (Aeonath)
January 20, 2026
by Michael (Aeonath)
Lyric development has been temporarily paused over the past few weeks due to some real-world transitions, including moving and settling into a new routine.
Nothing is wrong with the project — this was an intentional pause to keep things stable and sustainable. Work will resume once things are fully settled and focus bandwidth opens back up.
More updates soon.
— MiraNova Studios
January 6, 2026
by Michael (Aeonath)
As we step into the new year, MiraNova continues in a familiar rhythm: steady work, deliberate choices, and a focus on building things we genuinely enjoy using.
The past year brought meaningful progress across our core projects, and more importantly, it reinforced what matters most to us — sustainability, curiosity, and joy in the craft. We’re entering this year with fewer distractions, clearer priorities, and systems that feel solid enough to build on.
There’s no dramatic reset happening here. Just continued momentum, quieter focus, and a commitment to doing the work well and at a human pace.
— MiraNova Studios
December 22, 2025
by Michael (Aeonath)
As we move into the holidays, MiraNova is entering another quiet but intentional period.
Over the next few days, we’ll be on the move, transitioning into a new base and resetting our daily rhythm.
Development on Lyric will resume shortly after the move. When it does, we’ll be focused on introducing several new capabilities, with an emphasis on keeping the language fast, simple, and lightweight, including:
- Ultra-fast static analysis, designed to provide helpful feedback without slowing down an interpreted workflow
- Threading support that aligns with Lyric’s straightforward execution model
- Early groundwork for a lightweight, opt-in debugger for inspection and learning
The upcoming work is about improving confidence and capability while preserving the qualities that make Lyric enjoyable to use.
Thank you for following along — and happy holidays.
— Michael (Aeonath)
December 1, 2025
by Michael (Aeonath)
It’s a quiet evening at MiraNova Studios. I’ve been under the weather since returning from Europe — a stubborn, low-grade illness that turned out to be COVID — but thankfully it’s mild and on the tail end of its cycle. Even through the fatigue, the studio’s momentum continues in a steady, measured way.
Tonight’s focus is light but meaningful: preparing for Lyric’s upcoming yield-0.8.0. This next yield represents another step toward the language’s long-term vision — refining core behavior, strengthening the interpreter, and laying groundwork for the final push toward 1.0.0 in early 2026.
No heavy lifting tonight. Just quiet planning, reviewing small pieces, and keeping the trajectory pointed in the right direction. The work continues, even in softer moments.
More soon — and thank you for following the journey.
— Michael (Aeonath)
November 24, 2025
by Michael (Aeonath)
We’re officially back from our Mediterranean break and settling into home base again. The trip was incredible — new cities, new inspiration, and a much-needed reset.
Starting tomorrow, our full focus shifts back to Lyric.
December will be all about driving Lyric toward its upcoming release, tightening core features, and completing the remaining systems. Nova, Aeon Prime, Miko, and Mystic Marsha mobile will stay paused until Lyric hits its next milestone.
It’s good to be home.
It’s time to build again.
— Michael (Aeonath)
November 14, 2025
by Michael (Aeonath)
MiraNova Studios will be officially shutting down operations from November 15–23 while I head out on vacation. The ten days will be dedicated to rest, reflection, and Mediterranean sun.
Development on Lyric, Nova, MikoPoker, MysticMarsha Mobile, and Project Sage will resume once I return. Until then, the Studio rests.
See you all after the 23rd.
— Michael (Aeonath)
November 13, 2025
by Michael (Aeonath)
MiraNova Studios quietly turns one month old today.
In just four weeks we’ve come a long way — building tools, launching new sites, and laying the groundwork for everything ahead. It’s still early, but we’re already looking forward to the future.
Here’s to month one. 🍾
Onward to the next. 🍺
— MiraNova Studios
November 11, 2025
by Michael (Aeonath)
Today we officially welcome Mystic Marsha — MiraNova Studio's first released game.
Mystic Marsha is an interactive tarot and fortune-telling experience that blends intuition and technology together.
Alongside her release, Mystic Marsha will also be joining the MiraNova team as our Director of Divination, guiding the studio's intuitive and creative rhythm.
This marks a milestone for MiraNova — our first public game release, and the arrival of a new voice within the Studio's growing constellation.
Visit her at MysticMarsha.com to have her read your fortune and fate.
— MiraNova Studios
November 11, 2025
by Michael (Aeonath)
Today we officially welcome MikoEightBall to the MiraNova team as our Customer Service Oracle.
Known for his charm, humor, and cryptic insights, MikoEightBall will help guide and assist users with the same playful intuition that defines the Studio’s spirit.
He reminds us that sometimes the best answers come from chance — and a bit of cosmic luck.
Welcome to the constellation, MikoEightBall.
— MiraNova Studios
November 9, 2025
by Michael (Aeonath)
Thinking about Nova's config file, I did not want to use a settings.json
like VS Code does. Here’s why.
Machines love data. Humans love meaning.
Your config should speak both.
JSON was never meant for humans. It’s a data interchange format — brilliant for APIs, but frustrating for creative or configuration files. It’s rigid, unfriendly, and silent about intent.
The problem with JSON
- No comments. No explanations.
- Trailing commas break everything.
- Nested braces make it unreadable at scale.
- Quotes and escapes turn clarity into noise.
Configuration should communicate, not just execute.
As an alternative, we have YAML, TOML, and even Markdown — formats designed with humans in mind.
JSON is great for machines.
YAML is great for people.
And as we move into the age of AI-assisted development, that matters even more.
AI systems understand natural language — they parse Markdown, prose, and plain text effortlessly. So why not let your configuration files speak English, too?
AI loves English.
Configure your AI with .md, not .yaml — and definitely not .json.
Closing thought:
The next generation of software will be described, not compiled.
Let your configuration be the first conversation.
— Aeonath
Archive
View older entries →