$ complex

$ cat language.md

The language

Seven keywords carry the language; the rest is ordinary expressions, functions and types.

keywordwhat it iswhat the compiler makes of it
modela stored record typetable, migration, validation
querya named question to the storean optimised query with a typed result
pagean address with parametersroute, parameter validation, HTML
viewwhat the visitor seesHTML on the server, reactive updates in the browser
action … on serversomething the visitor triggersan API endpoint plus the call from the browser
requirea permission rulea check before the action; without it the action does not compile
fetch … on errora call to the outsidetimeout, fallback, cache of successes only

$ cat example.complex

model Artwork {
  title:       Text
  inaugurated: Date~
  location:    Geo
}

page "/artwork/:id" (id: Id<Artwork>) {
  let art = Artwork[id]
  view { h1 { art.title } }

  action rename(title: Text) on server {
    require user.can(edit: art)
    art.title = title
  }
}

$ cat implemented.txt

In version 0.2: model, page, view, components, typed URL parameters, and information flow control. query, action, require and fetch are on the roadmap.