v0.1A scripting language for the web
Welcome

May

The best programming language ever created (not an opinion)

What is May?

May is a simple interpreted language written in C as a learning project. However, it does have practical application, as this entire documentation site was written using May, containerized using Docker, and hosted through Github Pages.

May is named after the greatest basketball coach to ever live, Dusty May.

A taste of May

Here is a complete HTTP server that renders a styled page using the built-in HTML library:

import "io";
import "http";
import "html";

string home() {
    return html({
        children: [
            body({
                children: [
                    h1({ children: ["Hello from May!"] })
                ]
            })
        ]
    });
}

int server = create_server(8080);
print("Server running on port 8080");

while (1) {
    int client = accept_client(server);
    object req = read_request(client);
    send_html(client, router(req, { "/": home() }));
}

Why May?

Pipe operator

Chain transformations the way Unix taught you. "hello" | upper | print is a complete program.

Batteries included

An HTTP server, HTML builder, HTTP client, environment loader, and file system live inside the interpreter.

HTML as data

Build pages from nested function calls. No templating language to learn — just the language you are already writing.

One binary

May is a single C executable with no runtime dependencies. Drop it anywhere and run.

Where to next?