A pure-functional, Elm-family language that compiles to typed Go. One language for the whole stack — web, API, CLI, terminal, desktop — with a single promise: if it compiles, it works.
New here? A guided tour from your first app to a real web app — plus a chapter for developers coming from JavaScript, Python, Go, or Rust.
Every standard-library module, generated from source and searchable. The place to look up a function or type.
Topic deep-dives (Sky.Live, Std.Db, Std.Ui, auth, deployment) and — for contributors — the Rust compiler architecture.
The same view code renders on the web (Sky.Live), the terminal (Sky.Tui), and the desktop (Sky.Webview). No separate front-end language, no serialization glue.
Fallible things return Result Error a; side effects return Task Error a. The type tells you what can go wrong and what touches the outside world. No null, no hidden throws.
Auth, DB (one codec drives JSON and the database), UI, HTTP, money/decimals, jobs, observability — all in the standard library, all reviewed for security and scale.
You get Go's deployment story — a single static binary — and its ecosystem (any Go package via FFI, no hand-written bindings).
module Main exposing (main)
import Sky.Core.Prelude exposing (..)
import Std.Log exposing (println)
type Msg = Increment | Decrement
update : Msg -> Int -> Int
update msg count =
case msg of
Increment -> count + 1
Decrement -> count - 1
main =
println (String.fromInt (update Increment 0))Ready? Take the tour →