How bulletlist works
Everything the app does, on one page.
bulletlist is an outliner: one infinitely nested list, where every bullet can be zoomed into and treated as a page of its own. There is nothing to configure before it is useful — open it and start typing.
Getting started
Type your email address and we send you a code; type the code and you are in. There is no password to choose and none to forget, and if you have never been here before the account is created on the way through — signing in for the first time is signing up.
Everything is free, with no caps, no locked features and no trial that ends.
The basics
- ⏎ starts a new bullet, ⇥ indents it under the one above, ⇧⇥ pulls it back out.
- ⇧⏎ adds a comment under a bullet — the smaller second line, for the detail you do not want in the title. Comments can run to several lines (⏎ inside one starts a new line); at rest only the first line shows, with an ellipsis when there is more.
- ⌘⏎ completes a bullet. Completed bullets stay where they are; ⌘O hides and shows them. While they are hidden the caret moves to the next bullet on the same level as each one goes — the one above it once the level runs out — so ⌘⏎⌘⏎⌘⏎ ticks off a list without leaving it.
- Drag a bullet by its dot to move it, children and all. ⌘⇧↑ and ⌘⇧↓ do the same from the keyboard.
- Move to… in a bullet's ⋮ menu sends it somewhere that is not on the screen — the far side of the outline, three levels inside something else. Type the destination's name or fold the tree open until you see it — the same panel does both — and the bullet becomes the first thing inside it. The view follows: whatever was in the way — a folded branch, the completed filter, the page you were on — opens or moves, so you always land looking at where it went. It takes the whole selection when there is one, and one ⌘Z puts it all back.
- ⌘Z undoes, and it undoes the whole operation — an indent that moved four children comes back as one step.
Every bullet is a page
Click a bullet's dot, or press ⌘., and that bullet becomes the whole document: its text is the title and its children are the outline. ⌘, steps back out, ⌘' returns to the top, and the breadcrumb trail above the outline shows where you are and gets you back to any level in one click. Zooming is also the browser's back and forward buttons, so the trail you walked is real history.
⌘⇧8 stars the bullet you are in, which pins it to the sidebar — the list of the handful of places you keep returning to.
Documents
Any bullet can carry a full markdown document. ⌘⇧⏎ turns the bullet you are in into one and drops you straight into writing — or use "Turn into document" in the row's ⋮ menu. A document's dot becomes a small file icon, and opening it is the same move as ever: click the icon, and the bullet's page IS the document — title on top, the document below it, and the children still an ordinary outline underneath.
You write it the way it will look. A heading is a heading as you type it, bold is bold, a list is a list — the markdown is the file underneath, not the thing on screen. It is still markdown that gets stored, synced and copied, so nothing is locked in a format only this app can read.
Type it, or press it:
#+ space starts a heading,-a list,1.a numbered one,>a quote, three backticks a code block. ⌘B, ⌘I and ⌘E make the selection bold, italic or code.- The bar at the top of the document has the same moves — headings, bold, italic, code, link, lists, quote, code block — and stays with you as you scroll. Each button toggles: press it where it already applies and it comes off, and it lights up when the caret is somewhere that already wears it. On a phone those controls are on the strip above the keyboard, where the bullet actions live when you are in a bullet.
- Enter in a list starts the next item, and Tab indents it. Escape is always the way back to the outline, and the arrow keys walk out of the top and the bottom of the document.
The button beside the copy button in the top right shows the document as a finished page — rendered, nothing editable — for reading it or handing it to someone. Press it again to go back to writing.
The bullet's text is the document's title — rename either, the other follows. Comments are separate from documents: a document can carry one under its bullet like any other row. A document you leave empty turns back into a plain bullet, so opening one to look costs nothing. The copy button above it puts the whole document on the clipboard as markdown.
Turning it back into an ordinary bullet. The bin at the end of the document's own bar deletes the document — and so does "Delete this document" in the row's ⋮ menu, which is what that row says once the bullet is already one. It asks first, because deleting the document deletes what is written on the page. The bullet itself survives: its title, its comment and everything underneath it are untouched, and it goes back to being a bullet like any other. ⌘Z brings the page back if you change your mind. A document nothing was written in skips the question — there is nothing on it to lose.
Document bodies sync like every other text: two devices editing the same paragraph merge by character, offline included, and export carries documents with the rest of the outline.
Finding things
- Esc opens search. It searches the whole outline — titles, comments, and document bodies — not just the part you are looking at, and completed bullets are included when they are shown. A match inside a comment or document shows a line of it under the result, and document hits wear the file icon.
- ⌘K is the palette: jump straight to any bullet by name, or run any command by its own name instead of remembering its key.
- The browser sheet is the outline as a tree you can fold: tap a bullet's chevron to see what is inside it, tap its name to go there. It is the same list the sidebar shows, for when there is no room for a sidebar — a phone, or a narrow window. Typing in it narrows the tree rather than replacing it, so a match is shown in the branch it lives in and you can carry on browsing from there.
Bringing an outline with you
Paste a nested list from Workflowy, Notion, Google Docs or any Markdown file and it arrives with its shape intact — indentation becomes nesting, not one flat bullet. For a whole account, export it as OPML and drop the file anywhere on the outline: notes, completed state and links come across with the text.
Getting it out again
Export the outline as an OPML file at any time, without asking anyone. It is always the whole outline, completed bullets included, whatever the current view happens to hide — and it opens in Workflowy, Dynalist, Tana and Obsidian. This is the point: you are not locked in, and you can prove it in ten seconds.
Offline, and on your other devices
Every edit is written to your device first and to your account a moment later, so closing the tab or losing the network cannot lose work. With no connection the app keeps working on the local copy and catches up when there is one. If two devices edited the same outline while apart, the two versions are merged rather than one of them being thrown away.
Installing the app from your browser — "Add to home screen", or the install button in the address bar — gets you the same thing without a tab, and it works offline from the moment it is installed.
Making it yours
Everything you can set lives in one place: your initial in the corner, then Settings. On a phone that button sits next to the ⋯ at the top.
Light or dark follows the system until you say otherwise, and the colour family underneath is yours to pick: ours, or Solarized, Gruvbox, Everforest, Stone, Dracula, Catppuccin, Nord or GitHub. Both halves ship for every one of them, so the light/dark switch keeps working inside whichever you choose. The choice is stored with your account, not with the browser, so the laptop and the phone agree.
The same sheet is where you say whether completed bullets show — the ✓ in the bar does it too, and so does ⌘O.
The two menus
There are only two, and the line between them is worth knowing:
- ⋯ is about this outline — collapse and expand everything, undo and redo, import, export, print.
- your initial is about you — settings, the keyboard shortcuts, these docs, and signing out.
On a phone
The gestures stand in for the keys. Swipe a bullet sideways to indent or outdent it, press and hold to pick it up and drag it, and tap the ⋮ beside a bullet for everything else. While you are typing, a toolbar rides above the keyboard with the actions a laptop would reach by modifier key.
Move to… is on that toolbar too, and a phone is where it earns its keep: dragging a bullet to somewhere off the screen means holding it against the edge while the outline scrolls past. Tap it, then fold the tree open to the destination or type its name — the bullet goes in at the top, and the view follows it there.
Keyboard shortcuts
The same list the app shows under ⌘/. Where a binding differs by platform, both are given.
| Action | Mac | Windows / Linux |
|---|---|---|
| Add and edit | ||
| New item | ⏎ | Enter |
| Add a note | ⇧⏎ | Shift+Enter |
| Turn into document | ⌘⇧⏎ | Ctrl+Shift+Enter |
| Complete | ⌘⏎ | Ctrl+Enter |
| Delete | ⌘⇧⌫ | Ctrl+Shift+Backspace |
| Duplicate | ⌘⇧D | Alt+Shift+D |
| Link selected text | ⌘K | Ctrl+K |
| Bold selected text | ⌘B | Ctrl+B |
| Italicize selected text | ⌘I | Ctrl+I |
| Zoom | ||
| Zoom in | ⌘. | Alt+. |
| Zoom out | ⌘, | Alt+, |
| Navigate home | ⌘' | Ctrl+' |
| Star | ⌘⇧8 | Ctrl+Shift+8 |
| Jump to any item | ⌘K | Ctrl+K |
| Expand / collapse | ||
| Expand | ⌘↓ | Ctrl+↓ |
| Collapse | ⌘↑ | Ctrl+↑ |
| Change indent | ||
| Increase indent | ⇥ | Tab |
| Decrease indent | ⇧⇥ | Shift+Tab |
| Move | ||
| Move up | ⌘⇧↑ | Alt+Shift+↑ |
| Move down | ⌘⇧↓ | Alt+Shift+↓ |
| Select multiple items | ||
| Extend selection up | ⇧↑ | Shift+↑ |
| Extend selection down | ⇧↓ | Shift+↓ |
| Select siblings, then everything | ⌘A | Ctrl+A |
| Search | ||
| Search | ⎋ | Esc |
| Show / hide completed | ⌘O | Ctrl+O |
| System | ||
| Undo | ⌘Z | Ctrl+Z |
| Redo | ⌘⇧Z | Ctrl+Y |
| Show keyboard shortcuts | ⌘/ | Ctrl+Shift+/ |
Your data
Your outline is yours: no advertising, nothing sold, and nothing used to train anything. What you write is never sent anywhere but your own storage.
The website counts visits with Google Analytics — which pages were opened, and from roughly where. It never sees a bullet, and it is not in the iOS or Android apps, which carry no analytics at all. The privacy policy is short and says exactly what is stored and where.
Taking it with you
Settings → Account → Export as OPML writes the whole outline to a file, at any time, without asking anyone. It is the same export as the one in the ⋯ menu, and OPML is what Workflowy, Dynalist and most other outliners read.
Deleting your account
Settings → Account → Delete account. You type one word to confirm, and then:
- every bullet in your outline is deleted from storage,
- your settings and this device's offline copy are deleted,
- your sign-in is closed.
There is no undo, no grace period, and nothing to email anyone about. If you want a copy, export it first — the button is directly above.
The email address is not reserved afterwards. You can sign up with it again and you will get a new, empty outline.
Something missing?
Write to support@nozemans.com — a question that had to be asked is a page that needs a paragraph.