The person behind Cerneala

About Me

I am a C#/.NET developer from Bucharest, Romania. I use Avalonia every day and I am building Cerneala because I want the useful retained instincts of WPF without carrying its diseased markup syntax and accumulated desktop ceremony forever.

HOMEBucharest, Romania LANGUAGEC# / .NET DAILY UIAvalonia PROJECTCerneala UI
Communication contract

Direct by default. Not hostile by intent.

This is context, not an excuse to treat people badly. If my wording lands harder than intended, direct feedback is welcome. I would rather clarify the intent than perform fake diplomacy while everybody guesses what I meant.

NEUROTYPE

I am on the autism spectrum.

This was formerly described as Asperger's. In my case, the diplomatic layer can be missing from my vocabulary. Sometimes I am too direct, and sometimes that directness can sound offensive even when offending somebody was not my intention.

I usually mean the literal technical point underneath the wording. If the tone is sharp, ask what I mean. If I crossed a line, tell me plainly.

communication.configPERSONAL DEFAULTS
Diplomacy
LOW
Directness
HIGH
Dark humor
ENABLED
Swearing
FREQUENT
Intended hostility
NONE
Honest feedback
WELCOME
01Read the literal point first

The language may be colorful. The useful part is usually the concrete technical claim directly underneath it.

02Ask instead of guessing

If something sounds harsher than expected, ask whether that was the intended meaning. Often it was not.

03Be direct with me too

You do not need diplomatic theater. Clear disagreement with evidence is considerably more useful.

Immutable personal defaults

The daily runtime is aggressively predictable.

Some developers rotate cuisines, beverages, frameworks, and operating philosophies. I have chosen a more deterministic execution path.

DailyDefaults.cs
public sealed record DailyDefaults
{
    public string Home { get; } = "Bucharest, Romania";
    public string Work { get; } = "C# / .NET";
    public string DailyUi { get; } = "Avalonia";
    public string Food { get; } = "Chicken + mashed potatoes";
    public string[] Drinks { get; } =
    [
        "Peach FuzeTea",
        "Coca-Cola"
    ];
}
MEAL LOOPChicken and mashed potatoes

Every day. Stable inputs, stable output, no unnecessary culinary abstraction.

BEVERAGE STACKPeach FuzeTea + Coca-Cola

Two supported backends. Both considered production-ready.

LOCATIONBucharest, Romania

Where Cerneala is designed, argued with, tested, and occasionally sworn at.

Professional context

C#/.NET every day. Avalonia every day.

I know the WPF family from daily use, not from nostalgic screenshots. Avalonia improves portability and modern deployment, but it inherited too much of WPF's markup language and mental ceremony.

WHAT I USE

C# and .NET

Strong typing, excellent tooling, serious runtime performance, mature libraries, and a language that can support both application UI and game-facing framework architecture.

WHAT I SHIP WITH

Avalonia

It is part of my daily professional work. That familiarity is exactly why I can see both what it does well and which inherited WPF decisions I do not want Cerneala to repeat.

WHAT I AM BUILDING

Cerneala

A modern retained UI framework intended to become a strong alternative to WPF and Avalonia, especially where explicit frame ownership and game-loop integration matter.

Why Cerneala exists

I wanted modern WPF, not another shrine to XAML.

WPF contains excellent ideas buried under aging assumptions and a markup syntax that became the default simply because everybody learned to tolerate it. Avalonia escaped the Windows-only runtime, then let too much of that syntax infect its own developer experience.

KEEP THE INSTINCTSRetained UI still makes sense
  • Persistent control and element trees
  • Typed properties with metadata and invalidation
  • Measure and arrange layout
  • Routed input, focus, commands, and templates
  • Resources, themes, data flow, and familiar controls
REBUILD THE MACHINEModern contracts instead of inherited ceremony
  • Explicit update and draw ownership
  • Invalidation queues and retained command caches
  • Strongly typed authoring and generated code
  • Constrained .crn, not general XAML compatibility
  • Game-loop-native rendering, input, diagnostics, and motion
THE MARKUP VERDICT Markup is allowed. Diseased markup syntax is not mandatory.

Cerneala supports code-first UI and a constrained, source-generated .crn path. The point is not to ban declarative authoring. The point is to stop pretending the entire WPF XAML language must be preserved forever.

The objective

A good alternative to WPF and Avalonia.

Familiar enough that experienced desktop UI developers recognize the useful mental models. Modern enough that a MonoGame developer does not have to surrender the frame, rendering pipeline, or sanity to use them.

Read the roadmap How to contribute Inspect the API