How caioricciuti/duck-ui works
Duck-UI is a browser-based DuckDB workbench. The main workflow is to open a workspace, connect or import data, write and execute SQL, then inspect results as tables or charts and save or share the analysis. Notebooks, dashboards, AI-assisted SQL, and live collaboration add distinct workflows. The graph includes the query execution and persistence layers as internal architecture. README capabilities are represented, but where source excerpts do not establish component wiring, links are omitted rather than inferred.
Main entry points: drivers Database drivers · querySlice.ts Query state · engine/index.ts Engine registry · duckBrain/index.ts Duck Brain
Components 25
Workbench UI
- App routing
src/main.tsx - Workspace home
src/pages/Home.tsx - SQL editor
src/components/editor/SqlEditor.tsx - Workspace tabs
src/components/workspace/WorkspaceTabs.tsx
Data and Queries
- Data import
src/components/explorer/FileImporter.tsx - Engine registry
src/services/engine/index.ts - Connection sessions
src/services/engine/session.ts - Database drivers
src/services/engine/drivers - Query state
src/store/slices/querySlice.ts - Query streaming
src/services/engine/queryStream.ts - DuckDB services
src/services/duckdb
Analysis Tools
- Results grid
src/components/table/DuckUItable.tsx - Charts
src/components/charts/ChartVisualizationPro.tsx - Notebooks
src/components/notebook/NotebookTab.tsx - Dashboards
src/services/dashboard/queryRunner.ts
Local Persistence
- Persistence repositories
src/services/persistence/repositories - Query history
src/services/persistence/repositories/queryHistoryRepository.ts
Sharing and AI
- Share links
src/lib/share/index.ts - URL analysis loader
src/hooks/useQueryFromURL.ts - Live collaboration
src/services/collaboration/liveSession.ts - Duck Brain
src/lib/duckBrain/index.ts - In-browser AI
src/lib/duckBrain/webllm.service.ts
Other components
- Workbench user
- External DuckDB
- AI provider APIs
Connections 16
- Workbench user → App routing: opens
- App routing → Workspace home: routes to
- Query state → Engine registry: executes via
- Engine registry → Connection sessions: resolves session
- Connection sessions → Database drivers: dispatches to
- Database drivers → Query streaming: produces events
- Query state → Query streaming: collects
- Query state → Query history: records execution
- Query history → Persistence repositories: stores through
- Database drivers → DuckDB services: uses
- Database drivers → External DuckDB: connects to
- Dashboards → Engine registry: collects execution
- URL analysis loader → Share links: decodes payload
- Share links → URL analysis loader: returns analysis
- Duck Brain → In-browser AI: supports local model
- Duck Brain → AI provider APIs: calls provider