Fast with 50 pages.
Fast with 500,000.
Opening a page, searching, switching views, completing a task, and paging through the calendar, timed in the app itself, from fifty pages to half a million.
66 ms
to open a page
with 500,000 pages
28 ms
to search
with 500,000 pages
39 ms
to switch views
with 500,000 pages
A millisecond (ms) is a thousandth of a second. And 500,000 pages is ten new pages a day for 137 years.
Ten thousand times the pages. Still fast.
The grey bar is how many pages are in the workspace. The green number is how long you wait. Pick an action to see it at every size.
Every number
The table shows the median. Switch to the 99th percentile to see the time 99 tries in 100 came in under.
| Pages in the workspace | 50 | 2,000 | 20,000 | 200,000 | 500,000 |
|---|---|---|---|---|---|
| Open a page | 47 ms 62 ms | 64 ms 79 ms | 66 ms 79 ms | 65 ms 78 ms | 66 ms 83 ms |
| Search | 28 ms 32 ms | 29 ms 31 ms | 29 ms 37 ms | 28 ms 34 ms | 28 ms 34 ms |
| Switch views | 20 ms 32 ms | 37 ms 64 ms | 36 ms 63 ms | 38 ms 60 ms | 39 ms 64 ms |
| Complete a task | 9 ms 13 ms | 22 ms 40 ms | 21 ms 35 ms | 22 ms 40 ms | 23 ms 46 ms |
| Rename a page | 6 ms 15 ms | 21 ms 39 ms | 25 ms 36 ms | 22 ms 35 ms | 26 ms 41 ms |
| Next week | 13 ms 19 ms | 31 ms 37 ms | 54 ms 62 ms | 37 ms 41 ms | 51 ms 158 ms |
| Launch | 541 ms 561 ms | 538 ms 578 ms | 534 ms 546 ms | 572 ms 604 ms | 637 ms 643 ms |
How these were measured
- → On October 14, 2026, on a MacBook Air (Apple M2, 16 GB) running macOS 26.6.2, plugged in. It's an ordinary laptop with no fan, so it rested between sizes to keep heat out of the numbers.
- → Pikos 0.4.1, built the same way as the version you download, from commit
ea943650, with a timer built in that the version you download doesn't have. - → The app was launched 7 times at each size. Each launch opened 40 pages picked at random, ran 20 searches, switched between views, completed 10 tasks, renamed 10 pages, and stepped the calendar 10 weeks forward and 10 back. Every action is timed from the moment it starts to the next frame drawn after the screen shows the result, and a list or a week counts only once everything in it has loaded.
- → The pages are generated: ordinary English words, forty to a page, from a fixed list and a fixed seed, so the same workspace can be built again anywhere.
- → Not here yet: typing in a very long page. The editor is next, and its numbers go on this page when they're good.
Try it on your own machine
Your numbers will depend on your machine. Wherever you run it, half a million pages should be about as fast as two thousand.
Time the app
The numbers above come from a build of Pikos with a timer compiled in. On a Mac, build it from source and run node apps/marketing/scripts/benchmark-app.mjs. It builds the workspaces, launches the app 7 times at each size, and takes about fifty minutes. --quick runs a shorter pass.
Time the database
The Pikos CLI builds the same half-million-page workspace and times the calls the app makes to it.
brew install pikos-app/tap/pikos-cli pikos stress seed --db ~/pikos-bench.db --pages 500000 pikos stress bench --db ~/pikos-bench.db --runs 20
seed writes half a million pages into a new file, which took about four minutes on the laptop above. It won't touch the workspace your app uses, so your notes are safe. bench prints the median and the 95th percentile for each action, and --json adds the 99th. When you're done, delete ~/pikos-bench.db and the two files beside it that end in -wal and -shm.
Then let me know how it goes.