Components
Search composer
One focused input filters saved bookmarks and sends explicit Enter submissions to a chosen search provider.
On this page
Purpose and placement
One focused input filters saved bookmarks and sends explicit Enter submissions to a chosen search provider.
Anatomy
- Mode button
- Search input
- Conditional clear action
Contract
| Input or boundary | Behavior |
|---|---|
| searchQuery | Local input string; trimmed for matching |
| Search API | GET /api/links?query=... after 200ms |
| searchEngine | Brave, DuckDuckGo, Google, Bing or Yahoo |
States and feedback
- Blank query: board navigation and current links
- Matching query: result grid across boards
- No matches: blank results region; no explicit message
- Clear: restores input focus and board view
Interaction and composition
Typing searches saved links. Enter navigates the current tab to a provider URL, regardless of local match count. Toggling AI clears the query and results. A request sequence ID prevents an older completed query from replacing a newer result.
Responsive behavior
Composer is full available width up to 672px; mode control stays fixed while the input flexes.
Accessibility contract
The mode and clear actions are named. The input relies on placeholder rather than a persistent associated label; add a programmatic label as remediation.
Known implementation gaps
Non-OK search responses return without updating results, so stale matches may remain. No loading, count announcement or no-results guidance is implemented.
Source references
| Repository file | Responsibility |
|---|---|
| app/(home)/AppHome.tsx | Search debounce, input and provider handoff |
| app/api/links/route.ts | User-scoped search response |
Examples from the app
Actual Startboard source UI with isolated fictional records; both native themes at 2× resolution or higher. No live integrations or account writes. Captured at 2× resolution or higher. Select an image to inspect it full size.
Related topics
Source audit: 2026-10-08 · Revision 08fa2595a668 · Documentation v1.0.0