Overview
ikada is the design system behind Sproutboat’s dashboards: 42 React components and 11 blocks on Base UI and Tailwind CSS v4, with typed OKLCH tokens and Afloat spring motion. Add one file at a time with the shadcn CLI and the source is yours, or install the package and take updates.
Quick start
In a React project with Tailwind CSS v4 and a components.json, add a component by its registry URL. The CLI copies the file into components/ikada (never over your own components/ui), installs its dependencies and merges the ikada theme into your CSS. The full setup is on Installation.
npx shadcn@latest add https://sproutboat.com/ikada/r/button.jsonComponents
Every component is one file with its own registry entry. Sizes are the gzipped files the CLI writes. ikada 0.2.0.
- MARAvataravatar.tsx1.1 kB gzipped
- LiveDegradedv12Badgebadge.tsx0.8 kB gzipped
- Bannerbanner.tsx1.2 kB gzippedDNS pendingAdd the CNAME record to finish.
- Breadcrumbsbreadcrumbs.tsx1.9 kB gzipped
- Buttonbutton.tsx1.6 kB gzipped
- Checkboxcheckbox.tsx1.6 kB gzipped
- Code Blockcode-block.tsx1.2 kB gzipped
Copiedsproutboat deploy - Search projects…⌘KCommand Palettecommand-palette.tsx4.6 kB gzipped
dpl_8f3a91c2CopiedCopy Idcopy-id.tsx1.1 kB gzipped- Region
- Frankfurt
- Runtime
- Node 24
- Dialogdialog.tsx1.6 kB gzipped
Delete project?
This cannot be undone.
- RenameDuplicateDeleteDropdown Menudropdown-menu.tsx1.7 kB gzipped
- Empty Stateempty-state.tsx0.8 kB gzipped
No deploys yet
- Fieldfield.tsx0.8 kB gzipped
Lowercase and dashes.
- Icon Buttonicon-button.tsx0.6 kB gzipped
- Press again to deleteInline Confirminline-confirm.tsx1.5 kB gzipped
- Inputinput.tsx0.6 kB gzipped
- ⌘Kto searchKbdkbd.tsx0.4 kB gzipped
- Labellabel.tsx0.5 kB gzipped
- Linklink.tsx0.8 kB gzipped
- Metermeter.tsx2.3 kB gzippedRequests62%xStorage91%x
- Metric Tilemetric-tile.tsx1.9 kB gzippedRequests1.28MUp 12%
- Page Headerpage-header.tsx1.6 kB gzipped
acme / web
Overview
- Paginationpagination.tsx1.6 kB gzipped
- Popoverpopover.tsx0.9 kB gzipped
Rollout
Send 10% of traffic first.
- Radio Groupradio-group.tsx1.6 kB gzipped
- Segmented Controlsegmented-control.tsx3.0 kB gzipped
- Selectselect.tsx1.6 kB gzipped
- Sensitive Inputsensitive-input.tsx1.3 kB gzipped
- Home Projects LogsSidebarsidebar.tsx3.3 kB gzipped
- Skeletonskeleton.tsx0.7 kB gzipped
- Sparklinesparkline.tsx3.1 kB gzipped
- DeployingSpinnerspinner.tsx0.7 kB gzipped
- LiveDNS pendingBuild failedStatus Dotstatus-dot.tsx0.8 kB gzipped
- Status Glyphstatus-glyph.tsx1.5 kB gzipped
- Switchswitch.tsx1.4 kB gzipped
- Tabletable.tsx2.9 kB gzippedVersionStatusv48Livev47Ready
- Tabstabs.tsx1.0 kB gzipped
- Textareatextarea.tsx0.6 kB gzipped
- Timeseries Charttimeseries-chart.tsx4.5 kB gzipped
- Toasttoast.tsx6.4 kB gzipped
Deployed
my-app is live.
- Roll back to v47Tooltiptooltip.tsx1.3 kB gzipped
Blocks
Whole dashboard patterns assembled from the components, with sample data. See them all live.
D1 consoled1-console.tsx6.8 kB gzippedRead-only · one statement8 rows0.3 ms · 12 rows read# id INTEGER name TEXT price REAL stock INTEGER 1 6 Epipremnum aureum 12.00 45 2 12 Philodendron hederaceum 13.90 38 3 5 Sansevieria trifasciata 19.90 32 4 11 Peperomia obtusifolia 11.50 27 5 10 Hoya carnosa 16.90 21 6 1 Monstera deliciosa 34.90 18 7 7 Zamioculcas zamiifolia 29.90 14 8 4 Calathea orbifolia 26.50 11 - Empty statesempty-states.tsx2.3 kB gzipped
First run
Create your first project
A project groups the sprouts that ship together, like a site and its API.
No results
Nothing matches this search
No sprout name contains “reed”. Check the spelling or clear the search to see all 5.
Nothing deployed
Nothing deployed yet
From the folder with your code, deploy once and this sprout goes live with its own URL.
Copiednpx sproutboat deployLoad failed
Could not load your projects
Check your connection, then try again.
KV browserkv-browser.tsx5.5 kB gzippedfernleaf-edge14 keys · 1.1 KBKey Size Expires 78 B never 75 B never 42 B never 78 B never 56 B never 46 B never 103 B never 44 B in 51 s 44 B in 38 s 125 B in 6 h 90 B in 23 h 112 B in 2 h 89 B in 5 min 112 B in 5 min config:shippingCopiedValue
Copied{ "free_over": 60, "currency": "EUR", "zones": [ "PT", "ES", "FR", "DE" ] }- Size
- 78 B
- Expires
- Never
- Updated
- 14 d ago
- Metadata
- None
Deleted Logs panellogs-panel.tsx5.1 kB gzippedLogs
Time (UTC)LevelSourceMessageDuration- infohttpGET /api/search?q=raft20055 ms
GET /api/search?q=raft200
- infoconsolesession refreshed for user_19c
session refreshed for user_19c
- infohttpPOST /api/notes20153 ms
POST /api/notes201
- infocron*/5 * * * * digest: 3 notes summarised
*/5 * * * * digest: 3 notes summarised
- infohttpGET /api/notes/8f3a20018 ms
GET /api/notes/8f3a200
- infoconsolecache warm: 412 keys in 38 ms
cache warm: 412 keys in 38 ms
- infohttpGET /api/search?q=raft20043 ms
GET /api/search?q=raft200
- infohttpGET /api/notes/8f3a2007 ms
GET /api/notes/8f3a200
- warnconsoleslow query on notes_by_tag (812 ms)
slow query on notes_by_tag (812 ms)
- infoqueueemails: delivered batch of 14
emails: delivered batch of 14
- infohttpPOST /api/notes20155 ms
POST /api/notes201
- infohttpPOST /api/notes20168 ms
POST /api/notes201
- infohttpGET /healthz2003 ms
GET /healthz200
- infohttpGET /api/search?q=raft20044 ms
GET /api/search?q=raft200
- infohttpGET /api/notes/8f3a20016 ms
GET /api/notes/8f3a200
- infohttpGET /healthz2002 ms
GET /healthz200
- warnhttpGET /api/notes/8f3a40419 ms
GET /api/notes/8f3a404
- infoconsolecache warm: 412 keys in 38 ms
cache warm: 412 keys in 38 ms
- infohttpGET /api/notes/8f3a20015 ms
GET /api/notes/8f3a200
- infoconsolesession refreshed for user_19c
session refreshed for user_19c
- infohttpGET /healthz2002 ms
GET /healthz200
- infohttpPOST /api/notes20159 ms
POST /api/notes201
- errorconsoleTypeError: Cannot read properties of undefined (reading 'title')
TypeError: Cannot read properties of undefined (reading 'title')
- errorconsoleTypeError: Cannot read properties of undefined (reading 'title')
TypeError: Cannot read properties of undefined (reading 'title')
- infohttpGET /api/notes20020 ms
GET /api/notes200
- errorhttpGET /api/notes500upstream timed out20 ms
GET /api/notes500upstream timed out
- infohttpGET /api/search?q=raft20078 ms
GET /api/search?q=raft200
- warnhttpDELETE /api/notes/77d040438 ms
DELETE /api/notes/77d0404
- infohttpPUT /api/notes/2c9120037 ms
PUT /api/notes/2c91200
- errorhttpGET /api/search?q=raft500upstream timed out46 ms
GET /api/search?q=raft500upstream timed out
- infohttpPUT /api/notes/2c9120050 ms
PUT /api/notes/2c91200
- infohttpGET /api/notes20020 ms
GET /api/notes200
- errorhttpGET /api/search?q=raft500upstream timed out96 ms
GET /api/search?q=raft500upstream timed out
- infohttpGET /healthz2001 ms
GET /healthz200
- warnconsoleslow query on notes_by_tag (812 ms)
slow query on notes_by_tag (812 ms)
- infoqueueemails: delivered batch of 1
emails: delivered batch of 1
- infoconsolecache warm: 412 keys in 38 ms
cache warm: 412 keys in 38 ms
- warnconsoleslow query on notes_by_tag (812 ms)
slow query on notes_by_tag (812 ms)
- warnconsoleslow query on notes_by_tag (812 ms)
slow query on notes_by_tag (812 ms)
- infohttpPUT /api/notes/2c9120047 ms
PUT /api/notes/2c91200
Live · streaming · 40 lines
- Metric rowmetric-row.tsx1.7 kB gzippedRequests184KUp 12%Last 24 hoursError rate0.21%Up 0.08 pt5xx responsesResponse time38ms p50Down 9%p99 212 msSprouts serving5of 6One paused
- Project trayproject-tray.tsx3.2 kB gzipped
- Settings sectionsettings-section.tsx3.7 kB gzipped
General
The name is shown in the dashboard and in emails.
Part of every sprout's hostname, so it cannot change.
New sprouts run here.
Notifications
Sent to every member who has not opted out.
Log retention
How long request and console logs stay searchable.
Everything is saved.
SavedDelete project
Removes every sprout in it, their versions, logs and domains. Storage bound to them is kept.
- Sign-in cardsign-in-card.tsx3.4 kB gzippedSproutboat
- Toast decktoast-deck.tsx3.1 kB gzipped
API tokens
Revoke one: it goes at once, and Undo (or ⌘Z) brings it back.
- ci-deploysb_live_…4f2aUsed 2 min ago
- robin-laptopsb_live_…91c0Used yesterday
- staging-botsb_live_…07deUsed 3 days ago
- grafana-readsb_live_…b3e8Used never
Recent
What the toasts said this session.
Nothing yet. Revoke a token or deploy.
Traffic charttraffic-chart.tsx2.6 kB gzippedTraffic
118.8K requests · 1.94% errors, last 24 hours
- Requests
- Errors (5xx)
- Deploy
- TodayRequests61.4K / 100KCPU time42%xStorage912 MB / 1 GBxFree plan · resets 00:00 UTC. Open the usage pageUsage lineusage-line.tsx1.6 kB gzippedx
Guides
- Installation: the shadcn CLI, the registry alias, or the package.
- Theming and tokens: every colour, type size, radius and layer, light and dark.
- Motion: Afloat, the press, the springs and reduced motion.
- Changelog: what shipped in each release.