programmati.ca Open Studio

AppSPHERE by Programmati.ca

An entire app declared in one page of XML

AppSPHERE is an in-browser application server. You can define an entire, multi-screen app in a few lines of AppSPEC code. Link state transitions by name and bind components to data. The engine seamlessly builds and runs the graph.

The engine design has run in production at major telecom and financial-services companies.

How to get going

From an empty file to a running app

AppSPHERE needs no installation, no build and no server of your own.

  1. 01Add the engine

    Put one script tag for the AppSPHERE engine on any HTML page.

  2. 02Write your app in AppSPEC

    Describe the screens, the data and the wires in a script block of type text/appspec on the same page.

  3. 03Open it in a browser

    There is no build step and nothing to install. The page also works when opened straight from disk.

file:///home/you/hello.html

Save the file and open it, and the app appears here.

0:00 / 1:15

A real nano session, recorded on Linux and played back as text. The app beside it is that exact file, running in the AppSPHERE sandbox. Books you add there are saved in this browser; nothing leaves your device.

Copy this starter

Save it as hello.html and open it in any browser. Two screens, a form that saves, filter pills built from the data, a page per book, and likes, ratings and reviews on each book.

<script src="https://programmati.ca/appspec/appspec.js"></script>
<script type="text/appspec">
<APP NAME="Reading list">
  <STATE ID="books" NAV>
    <FORM SAVE="books">
      <FIELD NAME="title" REQUIRED />
      <FIELD NAME="author" />
      <FIELD NAME="genre" OPTIONS="Fiction,Science,History" />
    </FORM>
    <LIST SRC="books" SUBTITLE="author" FILTER="genre" OPEN="book" />
  </STATE>
  <STATE ID="book">
    <DETAIL />
    <REVIEWS />
  </STATE>
</APP>
</script>

The page keeps its data in the browser that opens it (IndexedDB); nothing leaves your device.

Add <meta charset="utf-8"> if your app contains non-English text.

Free for personal use. Using it commercially? Talk to us about a licence.

AppSPEC is the ideal target for AI

AI writes the app. You can read every line of it.

A language model can write AppSPEC from a plain request. The result is one short, declarative file, so a person can read it and check what the AI produced, even without being a programmer. There is no hidden framework code to audit.

  • The whole app is in the file

    Every screen, every link between screens, the data each component shows and what each button saves are written out by name.

  • Nothing else to review

    There is no generated code, build output or dependency tree behind the spec. What you read is what runs.

  • Checked in the sandbox

    On this site each example runs in an isolated frame with no network access and keeps its data in your browser.

Three example requests, each with the AppSPEC written for it and the app it produces. The specs are shown as written; no request is sent to any server. Anything you add is saved in this browser; nothing leaves your device.

Request

A reading list where I can add books and move them to finished when I am done.

generated.appspec
The spec, running in the sandbox

Try it live

Edit a spec and watch the app change

field-notes.appspec
Running in the sandbox

Edit the spec on the left and the app updates. Open a note to see its likes and comments, which attach to that note without any wiring. Everything runs in your browser. Saved in this browser; nothing leaves your device.

Why it is different

Less to build, less to connect

01One file is the whole app

Screens, data, navigation and saving live in a single readable document that runs as it is.

02Screens connect by name

A button names the next screen, and a WIRE with that name connects them. There is no routing code to write.

03Comments, likes and reviews attach to anything

Put one tag on a product, a video or a story and it works for that item, with no integration work.

04Any theme with one attribute

Choose from 31 themes by changing one word. Every component follows the theme.

05No build step

The spec runs directly in the browser. There is nothing to compile, bundle or install.

Gallery

Look inside the examples

All eight examples
Clips running in the linear theme

Clips

53 lines

A video site of Blender open movies. Comments, likes and up-next bind to whichever film is playing.

VIDEORELATEDCOMMENT-THREADACTION-BAR

Build one in the Studio

A visual IDE with the workflow of Visual Basic: drag components onto the running app, set properties, view the state graph and preview live.