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!
P.S. This project is incredibly ambitious — we're not sure when (or if!) it’ll be ready. But we’re loving the ride. 🚀
-
What Happened
Me: “Please review the Phase 4.3 spec.”
AI: “Sure!” — then instantly spun up a ServiceProxy code template.
AI-Generated Code Overview
// ServiceProxy.h — Type-safe service proxy using C++20 concepts
#pragma once
#include <memory>
#include <concepts>
template<typename T>
concept IService = requires(T t) {
t.execute();
};
template<IService Svc>
class ServiceProxy {
public:
ServiceProxy(std::shared_ptr<Svc> svc) : svc_(std::move(svc)) {}
void execute() { svc_->execute(); }
private:
std::shared_ptr<Svc> svc_;
};
-
Why It’s Cool 😺
✅ Compile-time safety: IService concept ensures the proxy can only wrap classes with .execute() — no surprises at runtime!
🔄 Decoupling FTW: Cleanly separates service logic from calling code.
🧩 Reusable: Drop-in proxy you can plug into your app’s architecture.
🚀 Zero boilerplate: No need for complex inheritance or virtual methods.
🤖 AI wrote this unprompted: I just said "Phase 4.3 spec", and this is what popped out.
Top comments (0)