Updates to the Aardink editor v0.7.0
Tue Nov 10 2026
Aardink 0.7.0 lets the app around the editor drive it: content and selection events, commands for buttons, your own items on the phone toolbar, and an XML language service built from a schema.
Tue Nov 10 2026
Aardink 0.7.0 lets the app around the editor drive it: content and selection events, commands for buttons, your own items on the phone toolbar, and an XML language service built from a schema.
Aardink goes multiplatform - part 7 of 7
Mon Nov 09 2026
Aardflex's web app used Monaco, which does not work on a phone. It moved to Aardink with one grammar file shared with the Android app, a build flag that lasted two days, and an editor download more than seven times bigger.
Aardink goes multiplatform - part 6 of 7
Mon Nov 02 2026
Aardink 0.6.0 adds multi-cursor editing, a minimap, sticky scroll, bracket-pair colours and go to definition on Android, desktop and the web. It is a deliberate API break, with a migration guide.
Cat Herding - part 1 of 10
Fri Oct 30 2026
Rufus is the resident cat. Every foster that comes through the house has to get past him first.
Aardink goes multiplatform - part 5 of 7
Mon Oct 26 2026
In Aardink 0.5 a keystroke in a 5,000-line file took 3.7 seconds to settle in the browser. Replacing Compose's text field with a renderer that draws only the lines on screen, and an input path of our own, brought that under 10 ms.
The pretend server - part 3 of 3
Sat Oct 24 2026
The vote counts on this blog only change once a day, but your own click shows straight away and never counts twice. Three fields in localStorage and one timestamp in the HTML do it.
Wed Oct 21 2026
The Aardink multiplatform migration was planned as a document an agent could carry out step by step. The review after five PRs found eight items marked done that were not, and CI had been red for three of them.
Aardink goes multiplatform - part 4 of 7
Mon Oct 19 2026
Aardink 0.5.0 runs the same Compose code editor on Android, desktop, and the web, with an npm package that looks like Monaco from JavaScript. It works well for small files, and this post covers where it doesn't, with numbers.
The pretend server - part 2 of 3
Sat Oct 17 2026
How the astro-votes package turns a like button into analytics events, a nightly sync, and a JSON file the build reads. Plus what it takes to use it with something other than Umami.
Fri Oct 16 2026
694 pages from two people with 25 years each in data, on building a data solution that is designed to change. The opposite of the generated books filling the shelves, and worth the money.
Aardink goes multiplatform - part 3 of 7
Mon Oct 12 2026
Running Kotlin in the browser through WebAssembly turned up problems the JVM had hidden: a regex engine that punishes lookbehinds, a quadratic tokeniser, one thread for everything, and no system fonts.
The pretend server - part 1 of 3
Sat Oct 10 2026
This blog is static files on the free Azure Static Web Apps plan, yet posts go live on schedule and the vote buttons remember your click. The server is a GitHub Actions job that runs once a day, and your browser covers for it in between.
Thu Oct 08 2026
Every hero image on this blog follows a pattern Codex set in June. I gave the same brief to Codex, Claude, Copilot, and Google for one post and got four different answers. A tighter brief to Codex, now a skill, fixed it.
Aardink goes multiplatform - part 2 of 7
Mon Oct 05 2026
Aardink went from an Android-only library to Kotlin Multiplatform in one release without Android users changing a line. The order of the work and the checks around it mattered more than moving the files.
HSC major work - part 4 of 4
Thu Oct 01 2026
Lay out an HSC folio in code, where page limits and type rules are easy to check, then carry it into Canva and keep designing there.
HSC major work - part 3 of 4
Wed Sep 30 2026
An AI agent that marks an exported HSC Textiles folio against NESA's published criteria, and how to use it as a loop: export, mark, fix, and mark again.
Aardink goes multiplatform - part 1 of 7
Mon Sep 28 2026
Kotlin Multiplatform shares Kotlin code between Android, the desktop, and the browser, and Compose Multiplatform shares the UI on top of it. Why I picked the pair for my Aardink code editor over .NET MAUI and the other ways to share code, and how they fit together in a real library.
HSC major work - part 2 of 4
Sun Sep 27 2026
Let the agent mark, and do the making yourself. How an example HSC folio uses AI for feedback against NESA's criteria without it touching the work.
HSC major work - part 1 of 4
Fri Sep 25 2026
A fictional HSC Textiles folio built like software, so a student gets marker-style feedback every time a page changes instead of once, after it is handed in.
The keyboard conundrum - part 2 of 2
Sun Sep 20 2026
Replacing a worn-out Logitech Ergo K860 with something that survives daily use, works on locked-down client laptops, and keeps its own settings. Harder than it sounds.
The keyboard conundrum - part 1 of 2
Sun Sep 13 2026
From the built-in keyboards of the C64 and Amiga 500 to the Microsoft Natural one. Why did finding a sensible ergonomic keyboard get harder to buy?
Sat Sep 12 2026
A small follow-up to the 0.4.0 release: the sample app mascot and launcher icon now render from themed vector layers, and the toolchain moves to the latest Kotlin and Compose BOM.
Wed Sep 09 2026
astro-reactflow 0.5.0 fixes diagrams that rendered as an empty box. The integration now injects the stylesheets itself, and there is a public styles.css export for when you want to do it by hand.
Mon Sep 07 2026
Aardink 0.4.0 is the biggest release yet: richer built-in language services for Kotlin, JSON, XML, HTML and TOML, a fuller LSP-style contract with code actions, rename and signature help, new editor UI to show it all, and a new module that connects the editor to a real external language server.
Wed Aug 05 2026
A diagram component shipped with a zero-height canvas and nobody noticed for months, despite hundreds of green tests. What tests are actually for, where coverage stops helping, and why staying on old dependencies is no longer a safe default.
Mon Jun 22 2026
A deep dive into @sjohansson/astro-theme-toggle - an SSR-friendly Astro theme system with light, dark, high-contrast, and color-vision modes, no flash of the wrong theme, and theming driven by either inline variables or data attributes.
Mon Jun 15 2026
A hands-on guide to @sjohansson/astro-reactflow - drop-in React Flow diagrams for Astro 6+, rendered as client islands, with focus mode, minimap, automatic theming, and PNG/SVG export. Includes live, draggable examples.
Sun Jun 07 2026
A tour of the Astro Components collection - a small set of self-contained npm packages that add diagrams, theming, and version notes to Astro 6+ sites, each usable as a plain component or a one-line integration.
Mon Dec 08 2025
demonstrating static and interactive diagrams using React Flow








Tue Nov 10 2026
Aardink 0.7.0 lets the app around the editor drive it: content and selection events, commands for buttons, your own items on the phone toolbar, and an XML language service built from a schema.
Aardink goes multiplatform - part 7 of 7
Mon Nov 09 2026
Aardflex's web app used Monaco, which does not work on a phone. It moved to Aardink with one grammar file shared with the Android app, a build flag that lasted two days, and an editor download more than seven times bigger.
Aardink goes multiplatform - part 6 of 7
Mon Nov 02 2026
Aardink 0.6.0 adds multi-cursor editing, a minimap, sticky scroll, bracket-pair colours and go to definition on Android, desktop and the web. It is a deliberate API break, with a migration guide.
Cat Herding - part 1 of 10
Fri Oct 30 2026
Rufus is the resident cat. Every foster that comes through the house has to get past him first.
Aardink goes multiplatform - part 5 of 7
Mon Oct 26 2026
In Aardink 0.5 a keystroke in a 5,000-line file took 3.7 seconds to settle in the browser. Replacing Compose's text field with a renderer that draws only the lines on screen, and an input path of our own, brought that under 10 ms.
The pretend server - part 3 of 3
Sat Oct 24 2026
The vote counts on this blog only change once a day, but your own click shows straight away and never counts twice. Three fields in localStorage and one timestamp in the HTML do it.
Wed Oct 21 2026
The Aardink multiplatform migration was planned as a document an agent could carry out step by step. The review after five PRs found eight items marked done that were not, and CI had been red for three of them.
Aardink goes multiplatform - part 4 of 7
Mon Oct 19 2026
Aardink 0.5.0 runs the same Compose code editor on Android, desktop, and the web, with an npm package that looks like Monaco from JavaScript. It works well for small files, and this post covers where it doesn't, with numbers.
The pretend server - part 2 of 3
Sat Oct 17 2026
How the astro-votes package turns a like button into analytics events, a nightly sync, and a JSON file the build reads. Plus what it takes to use it with something other than Umami.
Fri Oct 16 2026
694 pages from two people with 25 years each in data, on building a data solution that is designed to change. The opposite of the generated books filling the shelves, and worth the money.
Aardink goes multiplatform - part 3 of 7
Mon Oct 12 2026
Running Kotlin in the browser through WebAssembly turned up problems the JVM had hidden: a regex engine that punishes lookbehinds, a quadratic tokeniser, one thread for everything, and no system fonts.
The pretend server - part 1 of 3
Sat Oct 10 2026
This blog is static files on the free Azure Static Web Apps plan, yet posts go live on schedule and the vote buttons remember your click. The server is a GitHub Actions job that runs once a day, and your browser covers for it in between.
Thu Oct 08 2026
Every hero image on this blog follows a pattern Codex set in June. I gave the same brief to Codex, Claude, Copilot, and Google for one post and got four different answers. A tighter brief to Codex, now a skill, fixed it.
Aardink goes multiplatform - part 2 of 7
Mon Oct 05 2026
Aardink went from an Android-only library to Kotlin Multiplatform in one release without Android users changing a line. The order of the work and the checks around it mattered more than moving the files.
HSC major work - part 4 of 4
Thu Oct 01 2026
Lay out an HSC folio in code, where page limits and type rules are easy to check, then carry it into Canva and keep designing there.
HSC major work - part 3 of 4
Wed Sep 30 2026
An AI agent that marks an exported HSC Textiles folio against NESA's published criteria, and how to use it as a loop: export, mark, fix, and mark again.
Aardink goes multiplatform - part 1 of 7
Mon Sep 28 2026
Kotlin Multiplatform shares Kotlin code between Android, the desktop, and the browser, and Compose Multiplatform shares the UI on top of it. Why I picked the pair for my Aardink code editor over .NET MAUI and the other ways to share code, and how they fit together in a real library.
HSC major work - part 2 of 4
Sun Sep 27 2026
Let the agent mark, and do the making yourself. How an example HSC folio uses AI for feedback against NESA's criteria without it touching the work.
HSC major work - part 1 of 4
Fri Sep 25 2026
A fictional HSC Textiles folio built like software, so a student gets marker-style feedback every time a page changes instead of once, after it is handed in.
The keyboard conundrum - part 2 of 2
Sun Sep 20 2026
Replacing a worn-out Logitech Ergo K860 with something that survives daily use, works on locked-down client laptops, and keeps its own settings. Harder than it sounds.
The keyboard conundrum - part 1 of 2
Sun Sep 13 2026
From the built-in keyboards of the C64 and Amiga 500 to the Microsoft Natural one. Why did finding a sensible ergonomic keyboard get harder to buy?
Sat Sep 12 2026
A small follow-up to the 0.4.0 release: the sample app mascot and launcher icon now render from themed vector layers, and the toolchain moves to the latest Kotlin and Compose BOM.
Wed Sep 09 2026
astro-reactflow 0.5.0 fixes diagrams that rendered as an empty box. The integration now injects the stylesheets itself, and there is a public styles.css export for when you want to do it by hand.
Mon Sep 07 2026
Aardink 0.4.0 is the biggest release yet: richer built-in language services for Kotlin, JSON, XML, HTML and TOML, a fuller LSP-style contract with code actions, rename and signature help, new editor UI to show it all, and a new module that connects the editor to a real external language server.
Wed Aug 05 2026
A diagram component shipped with a zero-height canvas and nobody noticed for months, despite hundreds of green tests. What tests are actually for, where coverage stops helping, and why staying on old dependencies is no longer a safe default.
Mon Jun 22 2026
A deep dive into @sjohansson/astro-theme-toggle - an SSR-friendly Astro theme system with light, dark, high-contrast, and color-vision modes, no flash of the wrong theme, and theming driven by either inline variables or data attributes.
Mon Jun 15 2026
A hands-on guide to @sjohansson/astro-reactflow - drop-in React Flow diagrams for Astro 6+, rendered as client islands, with focus mode, minimap, automatic theming, and PNG/SVG export. Includes live, draggable examples.
Sun Jun 07 2026
A tour of the Astro Components collection - a small set of self-contained npm packages that add diagrams, theming, and version notes to Astro 6+ sites, each usable as a plain component or a one-line integration.
Mon Dec 08 2025
demonstrating static and interactive diagrams using React Flow