MarkSchrift is in a limited public beta. It's the plain-text workspace for iPhone, iPad, and Mac: your words stay plain Markdown on disk while the app renders them beautifully as you write, your week and your projects live in the same plain text, everything works offline, and your files are always yours. Live collaboration is included as an opt-in alpha: usable today, still being refined.
Want in? Email support@markschrift.com to request a spot. The initial early beta is capped at 40 testers and closes once it's full. Additional rounds will be opened as the items show their need for more feedback and additional possibly niche features are added.
How we got here, newest update first.
0.9.7: Know who did what
Sharing has always been easy in MarkSchrift. Now it's accountable too — the document itself keeps the record.
- Every change has a name on it. When someone edits from a browser — or joins your note from another device — the tasks they add, edit, or check off carry a small
@from tag with their name and the time. One tag per task, updated on a later touch. And the first time someone edits a note, their name is filed on a collaborators: line at the top. It's all plain text in your file: a record, not a lock — edit or clear it like anything else. Your own edits on your own Mac never carry a stamp.
- Hosting has real handles now. Host Project on the Web opens an honest control panel: nothing is shared until you press Start Hosting, the pill turns green when it's really connected, and Stop Hosting deletes the project from the web on the spot — every code and link dies immediately. Codes and links gained Share buttons (a shared code arrives with its instructions) and a scan-to-join QR code, just like sharing a single note.
- Presence tells the truth. No more phantom "Someone is editing…" when you open a shared note, everyone gets a genuinely different color, and after your Mac wakes from sleep a shared note catches up the moment you touch it.
- Your fonts, everywhere. A note's manifest font now wins even while the note is shared — everyone sees the note the way it says it should look. And picking one got easier: every font in Settings shows a number, so
font: 4 in a manifest simply means font number 4.
0.9.6 update: The collaboration engine grew up
A follow-up wave of 0.9.6 builds, all about live collaboration getting serious.
- Every character travels exactly once. Fixed a bug where text in a shared note could arrive slowly and end up doubled. The engine is also more careful when a live session ends or restarts: a collaborator's latest edits always land, and reopening the app can never duplicate a note's contents.
- You can see who's doing what. Collaborator name tags now ride above each person's cursor while they type or move, and fade a moment after they pause. Leaving or reloading clears your cursor for others right away.
- Hardened underneath. Read-only links are now enforced with cryptographic signatures rather than good manners: the server rejects any change that was not signed by an editor. Long-running sessions periodically compact their history so they stay fast and small, access secrets are protected by a modern memory-hard derivation, and the relay recovers on its own from a brief database outage at startup. As always, everything is end-to-end encrypted; the server only ever stores scrambled bytes it cannot read.
- A preview grew its browser side. If you've spotted the early Hosted Project preview in the Collaborate menu, its web editor now carries a Format menu (with the outline moves: indent, outdent, move an item with its children), live collaborator name pills, a paginated PDF button, faithful rendering of your note's fonts and outline numbering, and a Markdown help link. The in-app guide explains the feature (Help, then Guide, "Hosting a Project on the Web").
0.9.6: Easy on the battery
A good-citizen release. MarkSchrift now goes well out of its way to leave your battery alone, your recent notes follow you between devices, and repeating tasks got smarter.
- Much lighter on the battery. The app is far more careful with the network and with background work. Live collaboration pauses in tabs you are not looking at and while the app is in the background, then catches up instantly when you return; nothing anyone typed is lost. Typing in a shared document sends a fraction of the requests it used to, a session that has ended stops talking to the server entirely, and working with tasks no longer re-reads your whole library each time.
- See for yourself. On iPhone and iPad, Settings ▸ Diagnostics can package the system's own daily battery and performance reports for MarkSchrift into a single file. Everything stays on your device unless you choose to share it.
- Recents follow you. The notes you opened most recently on one device now lead the Welcome screen on your others, so you can pick up on the iPad right where the Mac left off. Files from outside your MarkSchrift folder stay on the device that opened them, and a Settings toggle turns the sharing off if you prefer separate lists.
- Repeating tasks repeat when you file them away. A task with a repeat rule (like
--r7d for every 7 days) now spawns its next occurrence when you run Sweep Completed Tasks, not only during the Weekly Review. The new copy lands under the right day of the right week note, and running both never creates a duplicate.
- A gentle landing. Jumping to a task from the Agenda (or to a search hit) briefly highlights the line you land on, so your eye finds it right away.
- Steadier syncing of settings. Some testers saw quick keys or journal settings appear and then vanish; that's fixed, and week notes are protected against being created with the wrong layout when a settings change from another device arrives late.
- Nothing lost to a detour. Visiting the Agenda tab or the Welcome screen no longer costs your open notes their undo history or scroll position, and a live shared session keeps running through the visit.
0.9.5: Projects
Your notes already hold your work. Now MarkSchrift understands the projects inside them. Tag a task +projectname, or give a note a project: line, and everything rolls up: the Agenda knows which project a task belongs to, and a project can have a home page that gathers all of it in one place. The Binder got faster and stopped needing to be told when things change.
- A home page for every project. Mark one note as the project's home (
projectHome: yes, or just name the note after the project) and its sidebar grows a Project section: the project's notes, every open task tagged to it anywhere in your vault (tap one to jump straight to it), a folded list of finished work, and the people the tasks involve. Tap a person to see just their part.
- Four ways to read the Agenda. Group by Status, Project, Person (the people you're waiting on first), or Week (Past Due · This Week · Next Week · Later · No Date). Save a view you like, chips, lens, and all, as a named filter set and bring it back in one tap.
- Today. The sun button strips the Agenda down to Past Due, Due Today, and the check-ins that have arrived. On the Mac it makes the Agenda window a slim dashboard beside your writing; on iPhone it's the day at a glance.
- The sidebar keeps itself current. Tags, backlinks, mentions, project pages, and an open Agenda all follow your typing; a moment after you pause, they're up to date. Refresh is only for changes arriving from another device. Launch is quicker too, even on big vaults.
- A task's notes belong to it. Indent lines under a task and they travel with it. Tags on a note line count for the task above, and the Agenda marks tasks that carry notes. Tasks indented with tabs now work everywhere, too.
- Type a command instead of hunting for it. The command palette (⇧⌘P) now lists every menu command by its menu name. And the everyday views have direct shortcuts: ⌥⌘A Agenda, ⌥⌘O Outline, ⌥⌘R Reading Mode, ⌥⌘J This Week, ⌥⌘W Reflow Week.
0.9.4: Your week, planned in plain text
The journal and task system arrives: a note per week, a review that carries open work forward, and an Agenda that reads your whole vault. Every bit of it is ordinary Markdown, tags you can type and files you can read anywhere.
- A note for every week. This Week (⌥⌘J) opens the week's note, or creates it, with a section per day and the cursor on today. Step between weeks or jump to any date.
- The Weekly Review. It reads last week's open tasks and asks, one by one: done, give it a day this week, push it later, or leave it unscheduled. A carried task moves rather than copies. Last week keeps a breadcrumb and this week gets the live task, so nothing can be finished in two places at once.
- Person tags with a direction.
@to(name) is work you'll bring TO someone (→); @del(name) is work you delegated and are waiting on (←). The Agenda's Discussion group collects them, waiting-on first: a meeting agenda that writes itself.
- Commit and defer.
@sch marks a task "committed, no day yet" and it rises to Refine at the top of the Agenda. Defer to… stamps @til so a task steps away until its date.
- The whole-vault Agenda. Scope it to This Note, a Folder, or the whole Binder; narrow by priority, person, or #tag chips; tap the circle on a row to mark it reviewed (it dims, and a running "N of M reviewed" keeps you honest); finished-but-unswept tasks gather in a Completed group so you can see the day's wins.
- Repeating tasks. Add
--r7d (or --r1wth, --r1m2tu) and finishing the task in the Weekly Review creates the next occurrence on the right date.
- Math. Write LaTeX between dollar signs,
$E = mc^2$ inline or $$…$$ for a centered block. It renders live as you type and identically in PDF, HTML, and Word exports and the shared web view, all offline. A lone $ stays a dollar sign, so prices never turn into math.
- The keyboard comes to iPhone. The compact on-screen keyboard now runs on the phone as well as the iPad, and gained a four-way cursor pad on the main layer.
- A tidier Binder. Make folders and notes inside folders, as deep as you like; a new Untitled note names itself from its first
# heading; the tag list can sort by most-used and tuck rare tags away; saved Filters can match "at least N" of their tags.
- Alphanumeric outlines (1, A, (1), a…) join the Legal and Decimal numbering styles, and Link to File… references a document kept outside your notes without copying it in.
0.9.3: A keyboard you slide
The on-screen keyboard, redesigned around one idea: everything within a thumb's reach.
- A symbol on every key. Press and slide up-left or up-right for the two characters shown in a key's corners. The top row is a real number row (q is 1 and !, … p is 0 and right paren), and brackets, quotes, and dashes live in the corners. No symbol layer for the everyday marks.
- Small moves, saved taps. Double-tap a letter at a word's start to capitalize it; double-tap space for a period; press-and-hold space to slide the cursor like a trackpad.
- A format row that slides too: bold, headings, lists, highlight, a table, and more, on the same tap-or-slide keys, plus a ⌘ key that arms real shortcuts like ⌘B.
0.9.2: Search your vault, pictures in your notes
Months of work in one build: search, images, and a calmer face.
- Search everything. ⇧⌘F, or the field at the top of the Binder, searches every note in your vault as you type; a result opens the note and lands on the match. Quoted phrases,
#tag narrowing, and -word exclusions all work.
- Pictures. Paste or drag an image straight into a note (or ••• ▸ Insert Image…). Images are kept in a
vault-attachments folder beside your vault, size with |400 or |50%, and come through in PDF, Word, and HTML export.
- Code that reads like code. Fenced blocks with a language are syntax-highlighted in the editor, in dark mode, and in every export.
- Alignment. Center or right-align a block from the Align menu. It stays plain Markdown underneath and carries into export.
- Links that create as you go. Follow a
[[Note]] link to a note that doesn't exist yet and MarkSchrift offers to create it beside the one you're in.
- A calmer toolbar. The brand M is a quick-action button: one tap runs the action you choose in Settings ▸ Logo, and the ••• menu holds the rest in a tidier order. And dark mode no longer slips back to light while you edit.
0.8.9: Outlines, scorepads for every game, dark mode & fonts
- Real outline numbering. Legal (
I. A. 1.) or decimal (1.1.1) outlines that renumber themselves as you edit and move items, while the file underneath stays ordinary Markdown lists. A Contents panel and collapsible headings for long documents.
- A scorepad for your game. Twelve ready-made pads (
;;yahtzee, ;;crib, ;;hearts, ;;spades, ;;catan, and more), each with its rows, win target, and a foldable how-to-play. Pads learned lowest-wins games, negative scores (with a ± key for phone keypads), a target flag 🏁, and a Duplicate button for the next game.
- Dark mode. System, Light, or Dark, across the whole app, tables and scorepads included.
- Your hand, your type. A curated font list with a few bundled faces (Source Serif 4, Caveat for handwriting, Instrument Serif), and a
font: line in a note's manifest to set face and size per document, carried into exports.
- QuickKeys. Define your own
;;key → text snippets in Settings; they expand as you type, synced across your devices.
- Links, your way. Bare URLs and email addresses stay plain text unless you switch auto-linking on; written
links always work.
0.8.8: The Binder
The biggest change yet to how you move around your work. MarkSchrift now opens into the Binder: your whole vault in one window, every note, folder, and tag a click away, with several documents open at once in tabs. The home screen is rebuilt around it, and live collaboration is woven through: share a document, join someone else's, and get back into a shared session without hunting for the file.
- Your whole vault, one window. The Binder lists every note, folder, and tag down the left (open any of them with a click, no digging through Files) and keeps several documents open at once in tabs.
- A clearer way in. The home screen sets your document actions on the left (New Note, Open, Start and Join Collaboration) with your recent notes right beside them.
- Back into a shared document, instantly. My Rooms remembers every session you're hosting and reopens the document you shared, so you never have to recall which file it was.
- Join and start writing. Drop into someone's session and everything you need sits in the ••• menu from the first moment: leave, copy the invite links, or save your own copy.
- Let collaborators keep a copy. When you share, you can let others save their own snapshot of the document, off by default, so what you share stays yours unless you choose to allow it.
- Who's here, out of your way. The roster of who's in a session now sits in a slim bar above the page instead of resting over your first lines.
- Keep score, right in your notes. Type
::SCOREPAD:: (or just ;;sp) and a live scoring grid drops into the page: a column for each player, a row for each round, running totals, and a crown for whoever's ahead. A cell takes a number, a quick sum like 3+4, or a +5 to add to what's already there. Built to fit your phone: up to eight players, with the round labels staying put as you scroll across. It's plain text in your file, so it exports as a clean table, and because it's part of the document, everyone in a shared session keeps score together.
- Drop in a table. Type
;;tbl (or ::TABLE::), or choose Insert Table from the Insert menu, and a table appears: 3×2 by default, or set the size yourself with ::TABLE:4x4:: (columns × rows). Click any cell to fill it in, and add or remove rows and columns as you go.
- Always a way home. A Welcome item now sits in the Binder's own menu, so you can get back to the home screen straight from your file list, not only from an open note.
- A keyboard built for the iPad. With no hardware keyboard attached, turn on a compact on-screen keyboard (about a sixth of the screen instead of the system keyboard's half) from the ••• menu, or by tapping the MarkSchrift logo (switch that on in Settings ▸ On-Screen Keyboard). It carries the full format palette (all four highlighters, headings, lists, a table, and more), the arrow keys, Esc and a true forward-delete, and a Caps-Lock you can use to select text with shift + arrows. It types right into table cells, and it keeps the system keyboard out of the way while it's up.
0.8.7: The first public beta
MarkSchrift's first public beta: a small, capped group of testers, with the editor full-featured and steady for everyday writing on iPhone, iPad, and Mac. Live collaboration joins as an opt-in alpha: real-time, end-to-end-encrypted co-editing you can switch on when you want it, still early and evolving. Alongside it: Vim editing, sharper Scripture tools, and a tidied-up set of menus, shortcuts, and Settings.
- Collaboration, opt-in and off by default. Turn it on in Settings ▸ Collaboration when you want to write with others. As an alpha it's still being refined, so expect it to keep evolving, but it's fully end-to-end encrypted already, so the relay only ever sees scrambled data, never your words.
- See who's here, everywhere. Everyone in a session gets their own cursor color (distinct for a full room of up to twelve) and a roster shows who's present, in the app and in the web client. Tap or click a name to jump straight to where that person is writing.
- Pick up where you left off. Leave a session and reopen the document later: if the shared copy is still live, MarkSchrift offers to reconnect you. If your copy has changed in the meantime it asks first (take the shared version, save your own copy, or stay put), so nothing is ever overwritten by surprise.
- Vim keybindings. Optional modal editing on the Mac and on iPad with a hardware keyboard: normal, insert, and visual modes, counts, registers, and
: commands, with a built-in cheat sheet. Your ⌘ shortcuts and smart Return/Tab keep working in every mode. Turn it on in Settings ▸ Keyboard, or with ⌃⇧V.
- One shortcut scheme. MarkSchrift's own commands now share the ⌃⇧ family (Agenda ⌃⇧A, the task sweeps, Reading mode, and more) while the universal ones stay on ⌘. A Keyboard Help panel lists every shortcut.
- Sharper Scripture paste. Paste a passage from Logos and every verse number is caught and set as a true superscript (across English, Greek, and Hebrew) with the reference kept as a tidy link at the end and no stray blank lines.
- Tidier menus and Settings. The ••• menu is shorter and better grouped (insert-and-paste tools together, sharing up top), and Settings is reorganized by what each preference affects.
- Numbered headings join the outline. Number a heading by hand (
## 1. Work) and it takes on your outline style at heading size (Legal A. Work, Decimal 1.1.), with the lists beneath it continuing the same hierarchy. One continuous structure from your biggest heading down to the smallest item, in the editor and in every export.
- Agenda focus filters. Narrow your task Agenda to a single priority, to one person you're waiting on, or hide check-ins whose day hasn't come yet: chips that stack so you see exactly the work you mean to.
- Calmer due dates. Choose how far ahead a deadline turns red (on the day, or up to two weeks out) so "due soon" means soon, not someday.
0.8.6: Task management
- To-dos that keep house. A one-tap sweep gathers everything you've checked off into a Completed section, date-stamped and labeled with where it came from; an Archive sweep files it away so "Completed" always means "since last time."
- Planning tags. Mark a task with a deadline, a defer-until date, a follow-up reminder, who it's delegated to, or a priority, all in plain text that travels with your file.
- Dates in your words. Write
Mon, 2Mon, 2MonDec, next week, or +3d inside a tag and MarkSchrift pins it to the real date.
- The Agenda. A live, computed view of what's due, what's next, and what you're waiting on, without cluttering your document. Open it with a tap or ⌃⇧A.
- Priority sweep puts each level of your outline in working order by deadline and priority.
- Wiki links on iPhone & iPad now open the linked note fully rendered in a reading sheet.
0.8.5: Keyboard & care
- Fully keyboard-friendly. Shortcuts for files, export, collaboration, and view actions, including a smoother Rename, so you can work without reaching for the mouse.
- Reliable invite links. Tapping a collaboration link now carries you straight into the session, from any app state.
0.8.4: Collaboration arrives
- Live, end-to-end encrypted editing. Share a document and write together in real time; the relay only ever sees encrypted data; your words stay between you and your collaborators.
- See who's here. Named cursors and a participant roster show everyone in the session, with a graceful "reconnecting" state when the network blips.
- Rewind & checkpoints. Roll the shared document back in time, or save named checkpoints everyone can return to.
- You set the terms. Read-only viewer links, a per-session lifetime, restart-the-clock and stop-sharing controls, and a shared look (outline style + font) so everyone sees the same page.
- A web client lets people without the app follow (or join) a session right in the browser.
- Outline block editing. Move, indent, and outdent whole subtrees with automatic renumbering; paste outlines in at the right level; click a
[[wiki link]] to open a sibling note.
0.8.3: Outlines & a proper home
- Outline numbering. Render nested lists as Legal (I, A, 1, a, i) or Decimal (1, 1.1, 1.1.1), in the editor and in PDF, Word, and HTML exports, while the file stays plain Markdown.
- A welcoming start. A Mac Welcome window with quick actions and a Recents list.
0.8.2: The everyday-writing release
- One toolbar, every device, plus a unified Preferences screen.
- Export everywhere: PDF (with page numbers), HTML, and Microsoft Word (.docx); plus Print, View-as-PDF, and Share.
- Quick date & time insertion with simple
;; triggers and your choice of format.
- Highlight colors, translucent code blocks, and a typography pass.
- iCloud settings sync keeps your preferences the same across your devices.
- Reading mode, optional spell-check, line numbers, and collapsible headings.
- Full file management on iPhone: Rename, Duplicate, and Move.
0.8.0–0.8.1: Store-ready & filling the gaps
- Live-preview concealment for a cleaner page, open-source acknowledgements, a privacy manifest, and the sandboxing and compliance work to ship on the App Store.
0.7.0: Writing tools & tables
- Editable tables with column alignment, full keyboard navigation, rendered Markdown inside cells, and insert/delete for rows and columns.
- Keyboard shortcuts for every formatting action, an actionable Format menu, and in-app Help.
- Extended Markdown: footnotes, superscript/subscript, underline, and
[[wiki links]].
- Task lists with clear, literal checkboxes; hanging indents for wrapped list items.
0.6.5: First light
- The foundation: a live-rendering Markdown editor that keeps your text as plain Markdown, one codebase rendering beautifully on iPhone, iPad, and Mac.
How MarkSchrift was built
The engine you're using is MarkSchrift's third architecture. Before it, more than 220 commits went into two earlier rewrites built on Apple's native text framework, refined over months, and ultimately set aside. That taught me exactly what a live Markdown editor needs, and what it can't be built on: hiding and styling syntax as you type, and making tables truly editable, fought the framework at every turn. This new editor has an open-source engine as its foundation inside a native app (No electron): one codebase that renders cleanly and reliably on iPhone, iPad, and Mac. The version history above begins there.
MarkSchrift keeps your writing in plain, portable Markdown: yours to own, on every device. Questions: support@markschrift.com.