hashdo

every todo gets a small, optimistic hash the second it exists — reference one from another with parent:[hash] and build subtasks that never collide.

type a todo and hit add. it gets a short id like #a3 — click that id to copy parent:[a3], then paste it into a new todo's text (e.g. write draft parent:[a3]) to file it as a subtask. ids start at 2 characters and only grow if two happen to collide — optimistic, not paranoid. everything lives in this browser's local storage; nothing is sent anywhere.
share hashdo ↗