📖 Blog
Announcements of new 4D components surfacing from the deep. Old components don’t get a post — only the fresh arrivals.
Looking for AI / Swift / 4D notes too? They live on my other blog: phimage.github.io.
Jev: a decision model, not a chat model
September 20, 2026
Jev isn’t a chat model — it’s a decision model for code.
Hero — one element, two states, and the flight in between
July 14, 2026 · 🧩 Hero 0.0.1
Something graceful is surfacing from the deep. On the web and on mobile there is a well-knowntrick: the same element — a thumbnail, a card, a title — exists in two screens, and instead ofcutting be…
GenerateHTTPHandlersJSON — your routes live in the code
June 29, 2026 · 🧩 GenerateHTTPHandlersJSON 0.0.1
// @GET(/hello)Function getHello($request : 4D.IncomingMessage) : 4D.OutgoingMessage var $response:=4D.OutgoingMessage.new() $response.setBody(“Hello, world!”) return $response
Taming noisy syntax diffs — reorder JSON keys to match git
June 28, 2026
A small annoyance that surfaces from the deep every time you switch machines or do a freshgit clone: file creation dates change. The files are byte-for-byte the same, but thefilesystem stamps them …
A little light in the deep — custom icons for 4D files & folders
June 28, 2026
Down in the twilight zone, every glimmer helps you find your way. A 4D project is a school oflook-alike files — .4DProject, .4DCatalog, .4DForm, .4DSettings, .4dm, .4DD — andwith generic icons they…
Welcome — two AI components surface: AIKitAgentTools & PromptKit
June 27, 2026
You unlock this door with the key of imagination — and find a blog. This is where new4D components from the mesopelagique deep get announced. Old components stay quietlyin the catalog; only fresh a…