Cross-language type safety. Insightful machine learning. Joyful CSS design. Try for yourself our APIs, SDKs, or libraries.
ST for stateful effects

Statically typed throw across server to client, always infer.

Lightest JS library to give you testing, typed & throwable errors, typed APIs, dependency injection. TypeScript optional.

First-class errors, parameters, dependencies, services. Everything composable. Throw well-typed errors, catch tagged unions, bypass the FP / OOP divide. Never write a class, generator, or monad transformer.

@arksouthern/jsx
@arksouthern/st
@arksouthern/luna
@arksouthern/sdk

MX
MatchAs

MatchAs shows different HTML based on a simple rule, like a traffic light. MatchAs replaces nested ternaries more concisely. Easy to work on, simple to read. The full expressiveness of pattern matching libraries, none of the runtime.
TypeScript's Discriminated Unions.

jsx/mx
MatchAs
Lose messy business logic. Drop the runtime. Shrink the bundle size. TypeScript's most useful feature.

AX
A.* Div

A.*'s Div is the fastest, simplest, most powerful way to add readability to JSX. Architect your JSX more readable requiring no extra work from you. No extracting components. No extra files. No hidden codegen.
The most useful five lines of TypeScript.

jsx/ax
A.* Div
A better way to write JSX. Short, clean, HTML code. More readable, less verbose.

Ark
Luna

An OS-as-an-app that runs on any platform, easily themed, that includes a GitHub-backed app store, private local hosting, a retro 2005 desktop UI, 100% terminal compatibility, that offers type safe APIs for app devs.

@arksouthern
Ark Luna
Full UI component library, OS APIs, app SDKs & store. From WebSocket to windowing.

ST
fn(props =>

fn("get user home view", async props => { const p: Dim<typeof props> = Dim(props) p.of({region: "us-east-2"}) p.of(await getDashboards(p)) p.of({sorted: p.rankWidgets(p)}) if(!p.sorted.length) throw new NoDash({}) return p.sortAsc ? p.sorted[0] : p.sorted.pop() }, getDashboards, NoDash, SortAsc, {rankWidgets})

Maintainability packaged in 14 KB unminified. ST encodes what a function needs and how it can fail directly into its signature. Leans into type-inferred throw statements across client-server. Increases reliability in real-world codebases. Always piece-meal. Always opt-in.

@arksouthern
st / fn()
Typed & throwable errors from server to client, no other typed APIs comes close. TypeScript not even required.
Ark Southern|Developers
Statically typed throw across server to client, always infer.

Lightest JS library to give you testing, typed & throwable errors, typed APIs, dependency injection. TypeScript optional.


First-class errors, parameters, dependencies, services. Everything composable. Throw well-typed errors, catch tagged unions, bypass the FP / OOP divide. Never write a class, generator, or monad transformer.