Pureline

Code without
noise.

Pureline is an opinionated coding style for linear control flow, explicit intent, compact formatting and small units. Pureline does not minimize characters, it minimizes unnecessary code.

Pureline.java
public Result process(Request request) {
    if (!request.valid()) {
        return Result.invalid();
    }

    if (!access.allowed(request.user())) {
        return Result.denied();
    }

    var session = sessions.open(request.user());
    return executor.execute(session, request);
}

Five words. One measure.

The measure is not how clever code can be written, but how quickly another person understands flow, responsibilities and boundaries.

Linear Flow

Errors and special cases leave early. The happy path runs top to bottom without detours.

Explicit Intent

Blocks, names and side effects show what happens. Nothing hides behind shorthand.

Minimal Noise

No ceremony, no boilerplate, no artificial vertical formatting. Every line contributes.

Small Units

Functions and types are small enough to understand at a glance and to change safely.

Clear Ownership

Modules, resources and concurrency have a clear owner and a clear lifecycle.

One core. Many languages.

Pureline standardizes principles, not syntax. The core applies everywhere, the profiles translate it into idiomatic rules: Go keeps its error guards, Crystal its postfix guards, Rust its Result and ownership model.

What Pureline actually changes.

Pureline on the left, Avoid on the right: the handle shows how much noise disappears when error cases leave early.

AVOID4 levels · 2× else
public Result handle(Request request) {
    if (request != null) {
        if (request.valid()) {
            if (access.allowed(request.user())) {
                return executor.execute(request);
            } else {
                return Result.denied();
            }
        } else {
            return Result.invalid();
        }
    }

    return Result.empty();
}
PURELINE1 levels · 0× else
public Result handle(Request request) {
    if (request == null) {
        return Result.empty();
    }

    if (!request.valid()) {
        return Result.invalid();
    }

    if (!access.allowed(request.user())) {
        return Result.denied();
    }

    return executor.execute(request);
}

Drag the handle

Paste. Check. Clean.

The checker analyzes Java, JavaScript, TypeScript, Go and Crystal right in your browser. No upload, no server. Every diagnostic points to a stable rule ID from the specification.

Open checker
$ pureline check
PL-CF-002 error Avoid else after a terminating branch. Line 48: } else { Suggested fix: Remove the else block and continue with the happy path.
PL-CF-001 warning Control flow nested 3 levels deep. Line 21: if (access.allowed(user)) { Suggested fix: Invert the outer condition and return early.
PL-GO-007 warning os.Open without defer Close(). Line 12: file, err := os.Open(path) Suggested fix: defer file.Close()

Reference

The complete Pureline specification as Markdown: a fixed reference for people and context for AI assistants. Each language also has its own extract with the core and the matching profile.

Complete specification 49 KB

All chapters, core and every language profile. Tip: put the file into your AI assistant's project context (for example as CLAUDE.md or AGENTS.md).

Every line should either move the program forward or make that movement easier to understand.

No ceremony. No artificial complexity. No code that gets in its own way.

Pureline standardizes principles, not syntax. Every language stays idiomatic.