Contents
Projects
Monocle
Monocle is my universal, personal search engine. It can query across tens of thousands of documents from my blog posts, journal entries, notes, Tweets, contacts, and more to act as my extended memory spanning my entire life. Monocle is designed with a focus on speed, privacy, and hackability. It’s built on top of a full text search engine built from scratch in Ink that runs both natively and in the browser.
Blog post Try demo → See on GitHub →
Lucerne
Lucerne is a Twitter reader and web client designed to amplify my personal Twitter workflows around learning from conversations and sharing my own writing and projects. Lucerne is built around the concept of persistent search filtered called “channels” and designed around my needs from the Twitter platform. The client is written from scratch in Ink, including the various cryptographic algorithms needed to interface with Twitter’s API.
Ink codebase browser, “Kin”
The Ink codebase browser is a refined tool for exploring open-source projects on GitHub. Compared to the experience of clicking through file hierarchies and previews on GitHub’s website, this app provides you with a file tree, rich Markdown and image previews, multi-pane multi-tab layouts and first-class support for Ink syntax highlighting.
Merlot
Merlot is a writing app for the Web that supports drafting in Markdown, and was designed to fit neatly into my blogging and writing workflow. It’s built entirely and purely with Ink: the Markdown engine that runs on both the backend and the web app is written in Ink. The backend is written in Ink to run natively, and the client is written in Ink and, alongside the Markdown library, compiled down to a single-page JavaScript application.
Sistine
Sistine is a simple, flexible, productive static site generator written entirely in Ink and built on Merlot’s Markdown engine. Although it’s a work in progress, Sistine is meant to eventually become a part of my primary blogging infrastructure. The documentation site is built with Sistine already, and serves as a demo.
Visit demo site → See on GitHub →
Traceur
Traceur is a path-tracing renderer in Ink, supporting Monte-Carlo antialiasing, realistic shadows, reflections, refractions, and focus blur.
Klisp
Klisp is a very minimal LISP written in Ink. It’s primarily a pedagogical project – I made it to understand Lisp better. Ink’s semantics are already quite Lispy, so Klisp builds on Ink’s semantics and adds an S-expression grammar and a repl, a true read-eval-print loop, for an ergonomic Lisp experience.
Nightvale
Nightvale is an interactive notebook in the browser for literate programming and communicating computational ideas using prose, mathematical notation, and Klisp code. Nightvale runs entirely on Ink on the backend and on Torus on the client.
Blog post Try the Nightvale sandbox →
Histools analyzer
Histools is a collection of tools for generating heatmaps and data visualizations from browser history data. Ink is used for a small script that exports and transforms data for display.
Blog post See demo on GitHub →
Eliza
Eliza is an implementation of the classic 1960’s chat bot written in isomorphic Ink, so that the same algorithm can run on the server (through the native interpreter) and the browser (through September). This Ink version of Eliza provides a command-line chat interface and a web app powered by the same Ink algorithm.
Blog post See on GitHub → Try Eliza →
Inc(remental)
Inc (short for incremental) is a note-taking tool based on the principles of incremental note-taking, designed for quickly capturing fleeting ideas and growing a knowledge base over time. It’s built with Ink as an interactive command-line application.
Matisse
Matisse is a minimalistic gallery of generative art pieces that are written in Ink. As a web app, Matisse depends on the September compiler to compile Ink programs and algorithms down to JavaScript.
Micropress
Micropress is an Ink library for automatic text summarization, using an extractive algorithm built on a custom tokenizer from the Monocle project. Micropress can take an arbitrarily long document, like a blog post, and generate a summary of much shorter length by finding key sentences in the document that are most representative of the main ideas in the text.
Polyx
Polyx is Linus’s personal productivity suite which includes services like file sync, notes, contacts, and other information management tools.
August
August is an educational assembler written from scratch in Ink, supporting 64-bit x86 ELF executables to start with more under development. It features an x86_64 instruction encoder and ELF file format library written in Ink.
Blog Part I Blog Part II See on GitHub →
Codeliner
Codeliner generates graphics from program source files that mimic the shape of code displayed on the page.
Language tooling
Ink playground, “Maverick”
Maverick is a simple web IDE and REPL for Ink, written in pure Ink and built on a self-hosted September compiler toolchain that runs entirely in the browser. September, the Ink-to-JavaScript compiler, was compiled to JavaScript using itself for this project so that it could compile other Ink programs in the browser.
Blog post Try demo → See on GitHub →
September
September is an Ink to JavaScript compiler, written in Ink itself and tested against Ink’s standard library tests. September is also self-hosting – it can compile itself on Node.js or in the browser.
Ink by Example
Ink by Example is a hands-on introduction to programming in Ink using annotated example programs. The website is run by @healeycodes and powered by Ink.
dotink
This website is served by a web server written in Ink.
inkfmt
inkfmt is a self-hosting code formatter for Ink used in almost every Ink project. Under the hood, inkfmt implements a tokenizer for Ink written in Ink itself.
Libraries
ansi.ink
ansi
is an Ink library for printing with ANSI escape sequences to a terminal emulator. It supports basic ANSI colors and cursor movements.