Blog
RSSDesign notes, how-tos, and the occasional deep-dive.
- Editora 0.9.5: safer by default
A release that's mostly fixes, the unglamorous kind that keep your files, your config, and your machine safe, plus a mini file manager in the Project tree.
- Editora 0.9.4: Expert mode
A lighter focus mode than Zen that keeps the full editor view, plus build-tool tasks tool windows and a few workspace conveniences.
- Editora 0.9.3: Typst, diagrams, and previews for everything
The 0.9.2 and 0.9.3 releases add Typst, diagram-as-code, smart previews for data and config files, and build-tool integration.
- Editora 0.9.2: Maven, an AI switch, and a Windows fix
The second release adds IntelliJ-style Maven support, consolidates AI behind one master switch, makes preview links clickable, and fixes a Windows launch failure.
- Editora 0.9.1: the first release
The first tagged build of a keyboard-driven, cross-platform programmer's editor, plus the story behind why it's 0.9.1 and not 0.9.0.
- HTML live preview, with no browser engine
How Editora previews HTML in a real browser: a loopback HTTP server, live-as-you-type reload, and a long-poll trick, without bundling a WebView.
- Extending Editora with plugins
How Editora's plugin system works, and how to write your own in a few minutes.
- Signing the plugin registry: consent, integrity, authenticity
Plugins run unsandboxed, so the registry leans on three defenses: informed consent, download integrity, and a signed index. Here's how each works.
- A faster cold start with a GUI-trained AOT cache
How Editora's installers shave ~300–480 ms (~28%) off the time to first frame using JDK 25's AOT cache, trained against a real GUI run.
- Shipping a JavaFX app to five platforms
The release pipeline behind Editora: native installers and fat jars for five targets, jpackage, moditect, and the joys of automatic modules.
- One DAP client, three debuggers
How Editora debugs Java, Python, and JavaScript through a single Debug Adapter Protocol client: three very different transports behind one UI.
- Notes that survive edits and renames
How Editora's Personal Notes stay attached to the right text, even after you edit the file in another program or rename it.
- Building a keyboard-first text editor
Why Editora treats every action as a command, and what that design buys you.
- Orphaned language servers and the symlink that ate my diagnostics
Two LSP integration bugs (a process that wouldn't die, and diagnostics that silently vanished) and what they taught me about subprocesses and paths.
- Why your .app can't find git or node
A GUI-launched app inherits a stripped PATH. Here's how Editora recovers the real one so it can find git, node, and version-managed tools.
- Keeping the UI thread sacred
The performance doctrine behind Editora: off-thread work, incremental updates, coalesced redraws, and degrading gracefully on huge files.
- The black window: bounding GPU textures in JavaFX
A bug that only showed up in the packaged build: open enough files and the window goes black. The cause was GPU texture exhaustion.
- Rendering Markdown like GitHub, without a WebView
How Editora's Markdown preview renders natively to JavaFX nodes (task lists, code pills, images, SVG badges), with no embedded browser.
- Going headless to stay alive: an AWT/JavaFX deadlock
Why the very first line of Editora's main() sets java.awt.headless=true, and the intermittent macOS hang that forced it.