Where this is going.
Nothing here is a wish. Every item has been decided, has a reason, and says what is missing — including the ones we have talked ourselves out of building. No dates: a date on a roadmap is a promise made by somebody who does not yet know what the work is.
1.0
Feature complete — everything it needs is in; from here, repairs onlyThere is nothing left on this list. The single-user application is whole, and the Client/Server tier is running in it — one server, a client on every desk, record locks, encrypted pairing; it ships with 1.0 as Neuridion PRO. What was standing here — your application in your customer's language, a filter for very large schema diagrams, the measured “this loads everything” warning — is built, and has moved down to what shipped recently.
From here to the release, the only question asked of a change is: could a customer do something afterwards that they could not do before? If yes, it is a new capability and it goes to 2.0, however small it is and however quickly it would go. If no, it is this thing behaving the way it always should have — a repair, or the polish that turns a working feature into a good one — and that is what the time between here and the release is for.
2.0
Intended — the Mac App StoreWith Client/Server pulled forward into 1.0, the second major version is about where your applications can be sold — and about the one comfort still owed.
Looking inside a Run, not only a Debug — a way back from the running application
The state view shows what every open window remembers while it runs — under Debug, where the application runs inside the IDE. Run deliberately does not: it starts the very bundle your customer would receive, in its own process, so that “it worked when I ran it” means something and a runaway script cannot take the IDE down with it. Nothing can look inside that.
One JavaScript context per session — on the server, and only there
A window remembers things (form.variable) and so does a session
(application.variable). On a single-user application, on a client and in
the IDE each user already has a context of their own, so those two words mean exactly
what they say. A server does not: every desk shares one, which is where the
session's variables would quietly become shared ones. This gives each connected
client its own.
What an application remembers for next time — one tick per variable, and the settings question is answered
A window's variables and a session's can be marked remembered, and they are
there again the next morning: the search you had, the branch you work in, the report
you print. It sounds small and it answers a whole family of wishes that every
application of this kind ends up building by hand — a settings table
with a key and a value, a form for it, a script to read and one to write.
An object bound to a variable — a search box with no script at all
An object on a form can be bound to a field of the record. It should be bindable to
one of the window's variables too: search field to searched, a label to
the count. Then the commonest small window in any application needs no code.
Licensing your own customers — your keys, not ours
Neuridion puts nothing into what you build — no key, no expiry, no check. But some of you sell to your customers and need your own answer to that question, and writing one from nothing is a week of work and several ways to get it wrong.
E-mail, as a class of its own — and not one setting for encoding
An application that keeps customers eventually has to write to them. So:
mail.create() gives you a message with recipients, a subject, text,
optionally HTML, and attachments — a stored file, a project asset, a report.
An address is an object, never a hand-built “Name <address>”
string, which is exactly where the comma in “Dr. Müller, Werft
GmbH” breaks such strings today.
Keeping the Mac’s calendar in step — a sync, not an export
The calendar object draws your appointments; this is about the other calendar — the one on the Mac, on the phone, in the family. Not an export, which would leave the same appointment there forty times, but a sync: write once, and the second run changes what it wrote rather than adding to it.
Three colour schemes for the code editor — and a font size
The editor colours your tables and fields, the API, the language and your text. What it does not yet do is let you choose. Three ready-made schemes: the one it has now, a quiet one where only comments, text and your schema carry colour, and a strong one. Plus the font size, which is fixed today and is the other thing people genuinely want to change.
Your translations, out to an agency and back — XLIFF, the one format every CAT tool takes
The editor and the on-device fill cover the developer. A translation
agency works in its own tools, and those speak XLIFF — so an export writes one
file per language pair and an import brings the work back. Our model maps onto it
almost one to one: the key is the unit id, the base text is source, the
translation is target, and the states line up.
The context sentence is what makes it worth doing. Every unit already carries one — “Title of the button ‘save’ on form ‘Invoice’” — and it goes out as the unit’s note. Most software hands a translator a list of strings with no idea where they stand; that is exactly why machine-translated software reads the way it does.
Japanese, Chinese and Korean — the three biggest Mac markets we do not speak yet
Nine languages become twelve-plus: Japanese first (Japan is one of the largest markets in the world for tools of this kind), then Simplified Chinese and Korean, with Traditional Chinese almost free once Simplified exists. All of them are languages Apple Translation speaks, so filling your own captions works from day one.
Undo — the price of “nothing is saved, because everything already is”
Neuridion has no Save button: leaving a field writes it. That is right, and it costs exactly one thing — there is no way back from a mistake. Until it exists, the nets are the ones already built: automatic backups, the read-before-write rule on everything destructive, and the revision counter that refuses silent overwrites.
An App Store build for the applications you make
A second kind of build, sandboxed to Apple's rules, so an application you made with Neuridion can be sold in the Mac App Store under your own name.
More of a window reachable from a script — objects, not just their values
A script can already read and set what an object shows: its value, its text, whether it is visible, enabled or required, which style it wears, what is selected in a list. What it cannot do is treat the window as a thing in its own right — ask which objects are on it, move or resize one, put the cursor somewhere, or reach the parts that only one kind has.
From 2.0 that surface grows. The rule it grows by is the one every group here follows:
a command joins the group it belongs to and is spelt out in full, so
form.total.moveTo(x, y) reads like the rest of the API and not like a
framework leaking through.
Over the open internet, or not — an open question, not a plan
Today a Client reaches its Server over a VPN — Tailscale, WireGuard, or whatever your network already has. That is what we build, what we test and what the manual describes.
A security page on the server — what is open, and to whom
The server window has pages for clients, devices, locks and backups. What it has no page for is the question somebody's IT department asks: which port is open, which devices are paired, what is encrypted and what is not.
Forms that scroll — so a long record is not capped at one screen
Today a form is exactly as tall as its window. From 2.0 a form can be taller than the window it opens in and scroll: the window keeps its size, the content moves beneath it, so a record with many fields is no longer limited to what fits on a laptop screen.
3.0
Feasibility study only — your windows in a browserAn idea, studied rather than decided: once the server is running, could it open a web port and serve your forms as HTML? The answer is yes — and the interesting part is which yes.
Remote debugging
Breakpoints in the code that is actually running on the server, from the IDE on your desk. Same debugger, one hop further away.
The Mac's own abilities, as commands — what a Mac application can do that a database cannot
Neuridion already uses what the Mac brings where it earns its place: the on-device model detects a language and translates on the customer's own machine, printing goes through the system, files and permissions are the system's. Beyond that lies a whole shelf of things a Mac application may do and a database tool usually cannot — notifications, calendars and contacts, the share sheet, Shortcuts, Quick Look — and each of them would be a handful of commands in a group of its own.