nowfound

Life & fun · May 17, 2022

BM

Bike – macOS Native Outliner

Bike’s most original feature is the “fluid” text editing. Lots of text editors have animated some interactions (cursor movement, insert newline, etc), but I think Bike is the first designed from the ground up to support fluid editing. Give it a try, it feels different. (movie on home page if you don't have Mac) Other Features: • In text mode Bike works like a normal text editor. In outline mode rows are constrained to outline hierarchy. • .bike file format is HTML subset, so files are easy to parse and manipulate. Bike also supports .opml and .txt. • Scriptable via AppleScript. Javascript…

In plain words

Bike is a native macOS outliner and text editor built around "fluid" text editing, featuring smooth animated interactions designed from the ground up. It operates in both text mode for normal editing and outline mode for hierarchical organization. The .bike file format is an HTML subset for easy parsing, with support for .opml and .txt files. It is scriptable via AppleScript with a JavaScript plugin API planned for the future. The underlying architecture also delivers strong performance and scalability compared to most outliners.

written from the facts on this page · September 2026

From the sources

In the maker’s words, at launch

Bike’s most original feature is the “fluid” text editing. Lots of text editors have animated some interactions (cursor movement, insert newline, etc), but I think Bike is the first designed from the ground up to support fluid editing. Give it a try, it feels different. (movie on home page if you don't have Mac) Other Features: • In text mode Bike works like a normal text editor. In outline mode rows are constrained to outline hierarchy. • .bike file format is HTML subset, so files are easy to parse and manipulate. Bike also supports .opml and .txt. • Scriptable via AppleScript. Javascript plugin API also expected in future, though no timing on that. • Architecture needed to support fluid editing also makes Bike faster/more scalable than most (all?) outliners and many text editors. I test performance using the Moby Dick Workout[^1]. Implementation Notes: • View is built using CALayers[^2]. • Animations are performed by Core animation and Motion[^3] lib. • View performance is determined by visible text, not document size. Model representation is interesting in that it’s just a flat list of rows. Each row has a `level` property, outline structure is determined dynamically. View implementation requires that each row has a unique ID. I’m using OrderedDictionary from Swift Collections[^4] to store rows. This is Bike’s performance bottleneck for large outlines. Eventually I may change to augmented b+tree and then should be able to work with gigabytes worth of outline. That will be fun, but not sure it’s actually needed. Already probably fast enough for 99% of use cases as is. Hope you find Bike interesting. I’m happy to answer any questions. [^1]: https://www.hogbaysoftware.com/posts/moby-dick-workout/ [^2]: https://developer.apple.com/documentation/quartzcore/calayer [^3]: https://github.com/b3ll/Motion [^4]: https://github.com/apple/swift-collections

More life & fun this month

the category →
  • TL

    Life & fun · 10d ago · louisabraham.github.io

  • Photosynthesis fires two of your iPhone

    Life & fun · 28d ago · photosynthesis.camera

  • SoloUno310

    Take control of hair pulling, nail biting & skin picking

    Life & fun · 28d ago · solouno.io

  • Scroll through all 43,252,003,274,489,856,000 reachable Rubik's Cube permutations.

    Life & fun · 26d ago · everycube.alen.is

  • The Interactive 3D Encyclopedia

    Life & fun · 21d ago · expeditione.fun

  • Hi HN, I built Eigendrum, a web tool that solves the 2D wave equation for arbitrary shapes so you can hear what they sound like as drums. How it works: * Solves -∇²u = λu using finite element analysis (Kφ = λMφ) on a triangle mesh. * Validated to <0.1% error against closed-form solutions for circles (Bessel zeros) and rectangles. * Sound model factors in strike location, Rayleigh damping, and mallet width. * Includes Kac drums I & II to demonstrate identical sound spectra from different geometries. * No frameworks, build steps, or dependencies. Repo and tests:…

    Life & fun · 26d ago · baselashraf81.github.io

Launched alongside, May 2022

the whole month →