⚠️Early Alpha — Org-press is experimental. Perfect for hackers and tinkerers, not ready for production. Documentation may be incomplete or inaccurate.

What is Org-Press?

Org-Press is a literate computing toolchain built on org-down, a plain-text markup format inspired by org-mode.

Write prose and code together. Your code executes, your documentation stays current, and everything lives in version-controlled plain text.

What You Can Build

Documentation Sites

Write documentation where code examples actually execute. No more stale copy-pasted output - results update automatically when code changes.

#+begin_src typescript :use dom | withSourceCode
function fibonacci(n: number): number {
  return n <= 1 ? n : fibonacci(n - 1) + fibonacci(n - 2);
}

fibonacci(10); // Actually runs, shows: 55
#+end_src

Data Dashboards

Fetch and display live data using server blocks. Build dashboards that query APIs, databases, or files at build time.

#+begin_src javascript :use server
const response = await fetch('https://api.example.com/stats');
const data = await response.json();
return `Active users: ${data.activeUsers}`;
#+end_src

Interactive Specifications

Write technical specifications that prove themselves. API contracts that execute, schemas that validate, protocols that demonstrate.

#+begin_src typescript :use test
import { expect, test } from 'vitest';
import { validateUser } from './schema.org?name=userSchema';

test('user schema validates correctly', () => {
  expect(validateUser({ name: 'Alice', email: 'a@b.com' })).toBe(true);
  expect(validateUser({ name: '' })).toBe(false);
});
#+end_src

Creative Tools

Extend with plugins for visualization, music, 3D modeling, and more. The plugin system is designed for creative computing.

  • Data visualization - Charts, graphs, interactive plots
  • Diagrams - Hand-drawn style with Excalidraw
  • 3D modeling - Parametric CAD with JSCAD
  • Music - Live coding audio (coming soon)

Single-File Applications

Create executable scripts with built-in documentation. Your org file becomes a runnable program.

#!/usr/bin/env orgp
#+TITLE: Build Tool

#+NAME: default
#+begin_src javascript :exec
console.log("Running build...");
// Your build logic here
#+end_src
chmod +x build.org
./build.org  # Runs the default block

Why Org-Down?

Org-down is a plain-text format with native support for literate programming:

FeatureMarkdownOrg-Down
Block namingExtensions neededNative (#+NAME:)
Block parametersCustom syntaxStandard (:use, :tangle)
Cross-file importsNot supportedimport './file.org?name...'=
Executable blocksRequires toolingBuilt-in

The Toolchain

Org-press includes professional development tools:

orgp dev          # Development server with HMR
orgp build        # Static site generation
orgp fmt          # Format code with Prettier
orgp lint         # Lint with ESLint
orgp type-check   # TypeScript checking
orgp test         # Run inline tests

Core Principles

Plain Text First

Your content lives in plain text files that work with any editor, any version control system, and any backup strategy. No proprietary formats, no lock-in.

Standard Tooling

Use the tools you already know - ESLint, Prettier, TypeScript, Vitest. No special editors or environments required.

Extensible by Design

The plugin system lets you add any block type. Visualizations, audio, custom renderers - if you can build it for the web, you can make it a plugin.

Code and Prose Together

Literate programming means code lives with its explanation. Import blocks across files. Test inline. Document as you create.

Next Steps