FeaturesTemplatesShowcaseTownie
AI
BlogDocsPricing
Log inSign up
arfan
arfanreactcities-v1
Public
Like
reactcities-v1
Home
Code
8
kanban-backend
3
kanban-frontend
3
kanban-shared
1
.gitignore
.vtignore
KANBAN_PLAN.md
deno.json
kanban-README.md
Branches
1
Pull requests
Remixes
History
Environment variables
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.
Sign up now
Code
/
kanban-README.md
Code
/
kanban-README.md
Search
…
kanban-README.md

Kanban Board App

A flexible, multi-board kanban application built for Val Town with React, DaisyUI, and SQLite.

Features

šŸ—ļø Multi-Board Architecture

  • Create unlimited kanban boards
  • Each board can have custom columns with arbitrary names and colors
  • Board search and filtering
  • Board descriptions and metadata

šŸ“‹ Flexible Column Management

  • Add/edit/delete columns dynamically
  • Custom column colors and names
  • Automatic position management
  • Visual column indicators

āœ… Rich Task Management

  • 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

šŸŽØ Modern UI/UX

  • 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)

šŸ› ļø Technical Features

  • 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

Project Structure

ā”œā”€ā”€ 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

API Endpoints

Boards

  • GET /api/boards - Get all boards
  • GET /api/boards/:id - Get board with columns and tasks
  • POST /api/boards - Create new board
  • PUT /api/boards/:id - Update board
  • DELETE /api/boards/:id - Delete board

Columns

  • GET /api/boards/:boardId/columns - Get columns for board
  • POST /api/boards/:boardId/columns - Create column
  • PUT /api/columns/:id - Update column
  • DELETE /api/columns/:id - Delete column
  • PATCH /api/columns/:id/move - Reorder column

Tasks

  • GET /api/columns/:columnId/tasks - Get tasks for column
  • POST /api/columns/:columnId/tasks - Create task
  • PUT /api/tasks/:id - Update task
  • DELETE /api/tasks/:id - Delete task
  • PATCH /api/tasks/:id/move - Move task between columns

Database Schema

The app uses SQLite with three main tables:

Boards (kanban_boards_v1)

  • id - Primary key
  • name - Board name
  • description - Optional description
  • created_at, updated_at - Timestamps

Columns (kanban_columns_v1)

  • id - Primary key
  • board_id - Foreign key to boards
  • name - Column name
  • position - Display order
  • color - Column color
  • created_at, updated_at - Timestamps

Tasks (kanban_tasks_v1)

  • id - Primary key
  • column_id - Foreign key to columns
  • title - Task title
  • description - Optional description
  • priority - 'low', 'medium', 'high'
  • due_date - Optional due date
  • position - Display order within column
  • created_at, updated_at - Timestamps

Getting Started

  1. Deploy to Val Town: Copy the code to a new Val Town project
  2. Database Setup: The app automatically creates tables and a default board on first run
  3. Access: Visit your Val Town URL to start using the kanban app

Usage

Creating Your First Board

  1. Click "New Board" from the main dashboard
  2. Enter a board name and optional description
  3. Add default columns (or use the preset: To Do, In Progress, Done)
  4. Click "Create Board"

Managing Columns

  • Click "Add Column" to create new columns
  • Use the column menu (ā‹®) to edit or delete columns
  • Customize column colors for better organization

Working with Tasks

  • 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

Theme Customization

  • Click the "Theme" button in the header
  • Choose from 25+ DaisyUI themes
  • Your preference is automatically saved

Upcoming Features

  • Drag and drop for tasks and columns
  • Task assignments and collaboration
  • Board templates
  • Advanced search and filtering
  • Export/import functionality
  • Real-time collaboration

Technical Details

  • 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.

Go to top
X (Twitter)
Discord community
GitHub discussions
YouTube channel
Bluesky
Product
FeaturesPricing
Developers
DocsStatusAPI ExamplesNPM Package Examples
Explore
ShowcaseTemplatesNewest ValsTrending ValsNewsletter
Company
AboutBlogCareersBrandhi@val.town
Terms of usePrivacy policyAbuse contact
Ā© 2025 Val Town, Inc.