--- import { compare, site } from "../data/site"; const keyFor: Record = { Margin: "margin", Vellum: "vellum", Atticus: "atticus", Lacuna: "lacuna", }; function cell(value: boolean | "partial") { if (value === true) return { cls: "yes", label: "Yes" }; if (value === "partial") return { cls: "partial", label: "Varies" }; return { cls: "no", label: "No" }; } ---

How Margin compares

A better way to make a book.

Atticus, Vellum, and Lacuna are capable tools. Here's where Margin is simply different: offline, on every platform, and yours from $0.

{ compare.cols.map((c) => ( )) } { compare.rows.map((row) => ( { compare.cols.map((c) => { const v = row[keyFor[c]]; const m = cell(v); const isUs = c === "Margin"; return ( ); }) } )) }
{c}
{row.feature} {m.cls === "yes" ? ( ) : ( )} {m.label}

Vellum is Mac-only. Lacuna runs on Mac and Windows. Atticus is cloud-based and asks you to sign in. {site.name} runs offline on all three platforms, with no account at all.