Ink programming language logo

The Ink blog

A blog by Linus about the human-software interface.

In 2019, I made a programming language for myself called Ink. Since then, I’ve used it to build a number of side projects, including a ray tracer, a compiler, an assembler, a Twitter client, and a few of my personal productivity tools. I write about Ink and software at large on this blog, and it’s also served by a server written in Ink.

Ink takes after Go, JavaScript, and Lua. Here’s a simple web server in Ink.

std := load('std')
log := std.log

listen('0.0.0.0:8080', evt => evt.type :: {
    'error' -> log('Error: ' + evt.message)
    'req' -> (evt.end)({
        status: 200
        headers: {'Content-Type': 'text/plain'}
        body: 'Hello, World!'
    })
})

An overview of Ink → Ink by Example →