why bother with a palette
menus scale badly. every feature you add is one more item someone has to scan past, and after a while the people who use your product most are the ones clicking through the most layers. a command palette flips that around. the user types three letters of what they want and presses enter. the menu can grow forever and the effort stays the same.
the hard part is rarely the palette itself. libraries like cmdk handle the list and the search well. the hard part is the shortcuts, because the good ones are already taken, and you only find out when someone presses ⌘w to open your "workspaces" command and loses their tab instead.
how the conflict check works
the checker knows two kinds of taken keys. some never reach the page at all: the browser or the operating system acts on them first, so ⌘w closes the tab and ⌘space opens spotlight no matter what your code says. others do reach the page and can be taken over with preventDefault, like ⌘l, ⌘r or ⌘f, but people expect the browser behavior, so taking them tends to annoy the exact users who know shortcuts best. it also flags two commands sharing a shortcut, and single-key shortcuts that would fire while someone is typing.
shortcuts are recorded with "mod" meaning ⌘ on a mac and ctrl everywhere else, which is what nearly every web app wants. the exported code follows the same rule, so one shortcut list works on both.
what the palette can't do
a palette only helps people who already know roughly what to type. someone who doesn't know your product calls it "workspaces" will search for "teams", find nothing, and leave. keywords help, so add the words your users actually use. past that point, the question stops being "what's the command" and becomes "how do i do this", which is the question heytappr answers by walking the user through the real screen. if your palette's empty state is a dead end today, that's the gap. we wrote more about it in how to kill "how do i" tickets.
questions
What is a command palette?
A search box, usually opened with Cmd+K or Ctrl+K, that lists everything you can do in an app. You type a few letters of what you want and press Enter, instead of hunting through menus.
Which keyboard shortcuts should a web app avoid?
Anything the browser or operating system keeps for itself. Cmd/Ctrl+W, T, N and Shift+T never reach the page at all, and neither do Cmd+Q, Cmd+Space, Cmd+H or Cmd+M on a Mac, or Alt+F4 and Ctrl+Shift+Esc on Windows. Keys like Cmd/Ctrl+L, R, F, P, S and D do reach the page, but people expect them to do the browser thing.
Why do single-key shortcuts need special handling?
Because people type. A shortcut on the letter g fires every time someone types a g in a search box unless the code ignores key presses that happen inside inputs, textareas and editable text. The exported code does that.
Is Cmd+K safe to use?
It's the convention for command palettes, and browsers let pages take it. On Windows and Linux, Chrome and Firefox use Ctrl+K to start a search in the address bar, so a page that takes it over is replacing that, which most users of palette-heavy apps are used to.
Does this tool send my commands anywhere?
No. Everything runs in your browser. The share link stores the palette in the part of the URL after the #, which browsers don't send to servers.