Why I Built Wyn
October 2025
I kept switching languages. Python for scripts, Go for servers, C for performance, Bash for glue. Every project meant picking a language, setting up tooling, remembering which ecosystem does what.
I wanted one language that could handle a CLI tool, a web server, a data pipeline, and a system utility without reaching for something else. Not a language that's best at one thing — a language that's good enough at everything.
So I started building Wyn.
The design constraints
Three rules from day one:
- Compiles to a single binary. No runtime, no VM, no interpreter. Copy the file to a server and run it.
- Batteries included. HTTP server, SQLite, JSON, file I/O, crypto — all in the standard library. No package manager needed for basic tasks.
- Readable by default. Curly braces, static types, no semicolons. If you know any C-family language, you can read Wyn.
How it works
Wyn compiles to C, then uses TCC (for fast iteration, ~260ms) or your system compiler (for optimized release builds). The generated C is straightforward — no garbage collector, no runtime overhead. Your program is just C with a thin standard library.
fn main() -> int {
var server = Http.listen(8080)
println("Listening on :8080")
while true {
var req = Http.accept(server)
Http.respond(req, 200, "hello")
}
return 0
}Build it: wyn build server.wyn -o server --release. The binary is ~35KB. Deploy it anywhere.
What I use it for
I've been using Wyn for my own projects for the past year. A monitoring dashboard, a log parser, a package registry, various CLI tools. The experience of writing the tool, building it, and deploying it in one language — without Docker, without dependency management, without a build system — is something I hadn't felt since writing C in the 90s, except now with a real standard library.
Try it
curl -fsSL https://wynlang.com/install.sh | shOr visit wynlang.com/playground to try it in the browser.