Public
Like
reactcities-v1
Val Town is a collaborative website to build and scale JavaScript apps.
Deploy APIs, crons, & store data ā all from the browser, and deployed in milliseconds.
A flexible, multi-board kanban application built for Val Town with React, DaisyUI, and SQLite.
- Create unlimited kanban boards
- Each board can have custom columns with arbitrary names and colors
- Board search and filtering
- Board descriptions and metadata
- Add/edit/delete columns dynamically
- Custom column colors and names
- Automatic position management
- Visual column indicators
- Create, edit, and delete tasks
- Task priorities (Low, Medium, High) with visual indicators
- Due dates with smart formatting
- Task descriptions and metadata
- Visual priority borders on task cards
- Built with DaisyUI components
- 25+ built-in themes (light, dark, cupcake, cyberpunk, etc.)
- Responsive design for all screen sizes
- Smooth animations and transitions
- Intuitive drag-and-drop interface (coming soon)
- SQLite backend with configurable table names
- RESTful API with proper error handling
- Real-time updates across the interface
- Optimistic UI updates for better performance
- Comprehensive form validation
āāā kanban-backend/ # Hono API server
ā āāā database/
ā ā āāā migrations.ts # SQLite schema with configurable table names
ā ā āāā queries.ts # Database operations
ā āāā routes/
ā ā āāā boards.ts # Board CRUD operations
ā ā āāā columns.ts # Column management
ā ā āāā tasks.ts # Task operations
ā ā āāā static.ts # Static file serving
ā āāā index.ts # Main server entry point
āāā kanban-frontend/ # React frontend
ā āāā components/
ā ā āāā App.tsx # Main app with theme management
ā ā āāā BoardList.tsx # Multi-board overview
ā ā āāā BoardView.tsx # Single board container
ā ā āāā KanbanBoard.tsx # Board with columns
ā ā āāā KanbanColumn.tsx # Individual columns
ā ā āāā TaskCard.tsx # Task cards with priorities
ā ā āāā TaskForm.tsx # Task creation/editing
ā ā āāā BoardForm.tsx # Board management
ā ā āāā ColumnForm.tsx # Column management
ā āāā index.html # Main HTML with DaisyUI
ā āāā index.tsx # React entry point
āāā shared/
ā āāā types.ts # TypeScript interfaces
āāā README.md
GET /api/boards
- Get all boardsGET /api/boards/:id
- Get board with columns and tasksPOST /api/boards
- Create new boardPUT /api/boards/:id
- Update boardDELETE /api/boards/:id
- Delete board
GET /api/boards/:boardId/columns
- Get columns for boardPOST /api/boards/:boardId/columns
- Create columnPUT /api/columns/:id
- Update columnDELETE /api/columns/:id
- Delete columnPATCH /api/columns/:id/move
- Reorder column
GET /api/columns/:columnId/tasks
- Get tasks for columnPOST /api/columns/:columnId/tasks
- Create taskPUT /api/tasks/:id
- Update taskDELETE /api/tasks/:id
- Delete taskPATCH /api/tasks/:id/move
- Move task between columns
The app uses SQLite with three main tables:
id
- Primary keyname
- Board namedescription
- Optional descriptioncreated_at
,updated_at
- Timestamps
id
- Primary keyboard_id
- Foreign key to boardsname
- Column nameposition
- Display ordercolor
- Column colorcreated_at
,updated_at
- Timestamps
id
- Primary keycolumn_id
- Foreign key to columnstitle
- Task titledescription
- Optional descriptionpriority
- 'low', 'medium', 'high'due_date
- Optional due dateposition
- Display order within columncreated_at
,updated_at
- Timestamps
- Deploy to Val Town: Copy the code to a new Val Town project
- Database Setup: The app automatically creates tables and a default board on first run
- Access: Visit your Val Town URL to start using the kanban app
- Click "New Board" from the main dashboard
- Enter a board name and optional description
- Add default columns (or use the preset: To Do, In Progress, Done)
- Click "Create Board"
- Click "Add Column" to create new columns
- Use the column menu (ā®) to edit or delete columns
- Customize column colors for better organization
- Click "Add Task" in any column
- Set priority levels and due dates
- Edit tasks by clicking on them
- Use the task menu for additional options
- Click the "Theme" button in the header
- Choose from 25+ DaisyUI themes
- Your preference is automatically saved
- Drag and drop for tasks and columns
- Task assignments and collaboration
- Board templates
- Advanced search and filtering
- Export/import functionality
- Real-time collaboration
- Frontend: React 18.2.0, DaisyUI, TailwindCSS
- Backend: Hono framework, SQLite
- Platform: Val Town (Deno runtime)
- Styling: DaisyUI components with custom CSS
- Icons: Font Awesome 6.5.1
Built with ā¤ļø for Val Town following DRY, KISS, and YANGI principles.