Nova

A general-purpose language built around algebraic effects, static contracts, and AI-first ergonomics.

Status: Bootstrap. Nova is in active early development. The compiler works, the standard library is partial, breaking changes happen weekly. Do not use in production.

What makes it different

A taste

fn fetch_user(id u64) Result[User, NotFound]
    requires id > 0
    ensures result is Ok(u) implies u.id == id
    uses Db, Log
{
    log("fetching user", id)
    match db.find_user(id) {
        Some(u) -> Ok(u)
        None    -> Err(NotFound)
    }
}

Effects (Db, Log) and a postcondition right in the signature — the caller knows exactly what this function does and what to expect back.