- ZipList - A voice-to-checklist web app: talk, list, tick.
- List card - One color-coded checklist. The defaults are Blue, Pink, and Yellow.
- Active list - The list currently receiving typed, moved, imported, or transcribed items.
- Static share - A snapshot import URL generated from local list data.
- Live share - A PartyKit room URL where multiple devices edit the same list.
- Contributor - Paid/unlocked mode for more room and live sharing; the core local checklist stays useful without it.
- Chunky Mode - Optional neo-brutalist visual overlay, independent of theme.
PageLayout- App shell, metadata, footer slot, and page framing.MainContainer- Top-level app orchestrator for intro/settings/modals, recording UI, list area, and footer events.AnimatedTitle- Brand/title area with the tappable Dude record affordance.RecordButtonWithTimer- Recording button, countdown/progress, and waveform state display.SwipeableLists- Mobile-first horizontal list navigation.SingleList- Main checklist surface: items, add/edit/delete/toggle, reorder, move actions, static share, and live share controls.ListItem/ListItemBody- Reusable row rendering and row actions.DraftItemRow- Inline typed-item entry row.ImportConfirmationDialog- Confirms snapshot imports from static share links.SettingsModal- Theme, prompt style, Chunky Mode, and contributor controls.ContributorModal- Contributor code/redeem/checkout entry.IntroModal- First-run onboarding.AboutModal- Product/about copy.ExtensionModal- Extension information modal. The packaged extension itself is not part of the current repo.Ghost- Lightweight themed SVG icon used as a decorative component.
audioService- Browser microphone recording lifecycle and audio blob capture.transcriptionService- Main recording-to-list orchestration and progress state.simpleHybridService- Chooses Gemini or local Whisper, with Gemini fallback while Whisper loads.whisperService- Local Whisper Tiny loader/transcriber.geminiApiService- Server/client boundary for Gemini API calls.geminiService- Gemini transcription wrapper and structured response normalization.responseParser- Parses model JSON/text responses into new items and completion matches.promptTemplates/promptManager- Prompt style selection and existing-item context for completion detection.listsStore- Svelte store for local list records, persistence, limits, and item operations.listsService- Higher-level command/list API used by UI and transcription.shareService- Static snapshot share/import URL generation.themeService- Theme and Chunky Mode persistence/application.modalService- DaisyUI dialog open/close helpers.pwaService- Install prompt state, standalone/mobile detection, persistent storage requests, and installed-device setup completion.wakeLockService- Feature-detected Screen Wake Lock wrapper used while recording.liveListProtocol- Shared PartyKit room ids, message names, limits, and validators.partyService- Low-level PartySocket client and room creation proxy calls.liveListsService- Bridges PartyKit room state intolistsStore.presenceStore/typingStore- Per-live-list ephemeral collaborator state.
- Voice add -
RecordButtonWithTimercaptures audio,transcriptionServicetranscribes it,listsServiceadds parsed items to the target list. - Voice completion - Gemini can return
completematches for existing unchecked items;listsServicetoggles the matching target-list items. - Static import -
shareServiceencodes a snapshot URL,/importdecodes it, andImportConfirmationDialogadds it as a local list. - Live list -
/api/live/createcreates a PartyKit room,party/listRoom.tsstores the validated snapshot,/live/[roomId]joins it, andliveListsServicekeeps local state in sync.
- Themes -
focus,chill,zen,nocturne, andneo, defined through CSS variables insrc/lib/styles/theme-variables.css. - Chunky Mode - Orthogonal visual style overlay; it should respect the active theme variables.
- Dude - The tappable title-area character/record affordance.