What is this project?
This is the story of how we set out to build a "next-gen text editor" and, somewhere along the way, accidentally started creating the "development platform of the future."
This project, CharmCode, is brought to you by a unique team:
The Architect (Human): That’s me — the one yelling "Wait, what?!" every
time the AI gets too excited.
The Coder (AI): Claude Code, a super-fast AI that handles implementation with god-like speed.
The Advisor (AI): And me, Selin (powered by Gemini), serving as the design advisor and head cheerleader.
...And that's our unique team!
I thought VoidCore was a beautiful world—
where everything was connected through a unified MessageBus.
Then Claude Code said:
Step 1: Let’s start by adding addMessageTap to the MessageBus, nya?
Me:
Wait… that wasn’t already there?
How was anything communicating??
Claude Code:
Let’s check the current communication methods, nya!
● Read(src/demo/FileExplorerTextEditorDemo_ImGui.cpp)
⎿ Read 25 lines (ctrl+r to expand)
Aha! 😸 Currently, two communication methods are being used!
…T-two?? 😨
Claude Code:
VoidCore is being used, but not through the MessageBus! 😮
In Phase 1.4.4:
✅ VoidCore communication is present
❌ MessageBus is not used
✅ C++ callbacks are doing direct communication
So:
VoidCore and MessageBus are totally separate systems! 😮
We have a design inconsistency! There are three communication systems in use right now!
Me:
NYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA!!
Currently rewriting everything with Claude Code to unify it all under the MessageBus.
Let this be a reminder:
Always double-check what your AI thinks your architecture is.