Skip to content

Publish a catalog as an app to a URL — the tools ship with the app #75

Description

@DDecoene

The centrepiece of v1.5.0, and the milestone that earns a second Show HN. See docs/roadmap-v1.4-v1.5.md.

Why

FoxPro shipped a distribution kit that compiled your app to an .exe you could hand to a customer:

"Foxpro even had a distribution kit to compile to an .exe."
— garyk1968, r/retrocomputing

That is what made xBase a way to deliver software, not merely to write it. The 2026 equivalent isn't an .exe — it's a link.

And the point is not just that the app travels. It's that the tools travel with it:

"…so the users can customize the app with the same power as us. This is one of the most important advantages of ERPs and such made with Fox and is still unmatched."
mamcx, HN

Because v1.4.0 ships the screen painter (#73) and the report designer already exists, the person who opens your link doesn't just run your app — they can open MODIFY SCREEN and MODIFY REPORT and change it. That is the entire thesis, executed. Nothing on the web does this.

"you have to wonder if maybe some of these tools could be useful again… We could be entering a new age of building our own tools."
jdswain, HN

Scope

  • Export a catalog (Catalog — group tables, screens, reports and programs into a named application #74) — its tables with data, screens, reports, programs — as a portable app artifact.
  • Open an app from a URL: recipient lands at a working application, tools intact.
  • Decide the artifact: a single file the browser downloads/uploads (consistent with how COPY TO/APPEND FROM already work, and with the no-runtime-disk-files rule), vs. a server-side published app with a share link. This needs a design pass — it is the fork in the road for the whole milestone.
  • Import must be safe: a published app is untrusted input. It contains W3Script that will run. Threat-model this before writing code.
  • Assistant parity: Publish / Open-published-app actions.
  • Playwright e2e: publish a catalog, open it in a fresh session, assert the app runs and its screens are editable.

Non-goals

Not multi-tenant hosting, not accounts, not a marketplace. One person hands another person a link.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions