← shofar.app

Shofar Tasks

Task management & kanban board with AI-powered Chief of Staff

Open App ↗ Railway Express.js + Vanilla JS Airtable Claude API c7sharp9/shofar-dashboard
Core Features

Multi-View Task Management

7 distinct views for different workflows — Kanban board, Today planner, Calendar, List, Triage, Q&A, and Meeting. Switch between views from the top nav bar.

AI Chief of Staff

A slide-out meeting panel powered by Claude. Acts as a personal chief of staff — reviews overdue tasks, triages the to-do queue, assigns domains and priorities, sets time estimates, and creates tasks via natural conversation. Uses server-sent events for real-time streaming responses.

  • Quick Pulse: overdue and active task review
  • Status Triage: idle tasks needing attention
  • Domain Assignment: categorize unassigned tasks
  • Priority + Due Dates: set urgency levels
  • Time Estimates: fill in missing estimates
  • Tool Use: creates and updates tasks directly during conversation

5-Domain System

Every task belongs to one of five life domains. Domain filter bar supports single-click toggle and double-click solo mode (isolate one domain, double-click again to restore all).

Business Personal Ministry Financial Explore

7-Status Pipeline

Tasks flow through a clear status pipeline. Each status maps to a Kanban column with its own color.

Discard Backlog To Do In Progress On Hold Done Archived

Drag-and-Drop Kanban

SortableJS-powered drag-and-drop between all status columns. Cards update instantly in Airtable on drop. Column focus/minimize on double-click — collapse all other columns to headers only so you can focus on one.

Session Discard Buffer

Tasks dragged to the Discard column stay visible during the current session so you can undo the move. On page reload, discarded tasks disappear from the board. Prevents accidental permanent removal.

Rich Task Cards

Each card shows domain color stripe, priority badge, due date (with overdue/due-soon coloring), project, time estimate, assigned people, AI rank score, subtask progress bar with inline checkboxes, tags, and a notes preview.

Auto-Save

Every field change auto-saves to Airtable with a 600ms debounce. Visual indicator shows Saving → Saved → Error state. No save button needed.

Subtask Tracking

Tasks can have subtasks stored as JSON. Inline checkboxes on cards for quick completion. Progress bar shows percentage done. Add subtasks from the detail panel.

Filtering & Search

Filter System

  • Priority filter: All, Urgent, High, Medium, Low
  • Project filter: dynamic list from task data
  • Tags filter: quick-win, deep-work, admin, creative, meeting, follow-up, financial, communication, learning
  • Sort toggle: Priority (default) or Created date
  • Search: real-time text search across task name, project, and notes
  • Domain bar: toggle/solo domains with task counts
Task Detail Panel

Full Task Editor

Right-side slide-out panel with all editable fields:

  • Task name and notes (auto-expanding textareas)
  • Status, Priority, and Domain pill selectors
  • Date, Defer Until, and Planned Time
  • Project, Estimated Minutes, People, Energy Level
  • Subtask list with add/complete/delete
  • Tag multi-select (9 tag options)
  • AutoPay toggle (Financial domain only)
  • URLs list (clickable links)
  • AI Request/Response fields
  • Original Message from Universal Inbox
  • Delete with confirmation
Additional Features

Universal Inbox Integration

Tasks created from emails, screenshots, or PDFs via the classifier pipeline retain a link to their original inbox message. Viewable in the task detail panel.

Cross-System Operations

The /api/ops endpoint aggregates data from IVM (video production), PodPlus (podcast), Production Manager, and Shofar automation reports — giving the AI Chief of Staff visibility across all systems.

Financial AutoPay Flag

Financial domain tasks can be marked as AutoPay, which suppresses payment reminders in the daily planner email. Useful for bills that auto-debit.

Application Views

Today — Weekly Planner

7-day layout (Monday through Sunday) for planning your week. Tasks appear on their scheduled date with domain coloring and time blocks.

  • Drag-and-drop tasks between days
  • Quick mark-as-done checkbox on each task
  • Capacity indicator showing total estimated minutes per day
  • Tasks with no date carry over from previous days
  • Double-click a day to focus/expand it
  • "Plan for Today" button in detail panel to quick-assign date
  • Inline subtask previews

Board — Kanban

7-column Kanban board with one column per status. The primary view for managing task flow.

  • Drag-and-drop between all status columns
  • Cards sorted by priority or created date
  • Double-click column header to focus (minimizes others)
  • Session-tracked discard column
  • Column task counts update dynamically
  • Overdue and due-soon visual indicators

Calendar — Month View

Monthly calendar showing task dots on each day. Navigate between months with prev/next buttons.

  • Shows up to 3 tasks per day with overflow indicator
  • Task colors match priority level
  • "Today" button to jump to current month
  • Click a date to see tasks for that day

List — Table View

Spreadsheet-style table view with sortable columns for a structured overview.

  • Sortable columns: task, status, priority, project, date
  • Inline status pills for quick status change
  • Search and status filter pills
  • Click row to open detail panel

Triage — Inbox Assignment

Assignment board for triaging new tasks. Batch-navigate through unprocessed tasks and assign domains, priorities, and projects.

  • Batch navigation (15 cards at a time)
  • Completion counter
  • Cards fade out once processed
  • Toggle between "Unassigned" and "Review All"

Q&A — Research Questions

Questions captured from the Shofar intake system. Track research questions with categories, priorities, answers, and sources.

  • Fields: Question, Title, Category, Status, Priority
  • Answer and Sources tracking
  • Filters and search
  • Sorted by capture date

Meeting — AI Chief of Staff

Slide-out panel for AI-powered meetings with Claude. Chat-style interface with real-time streaming responses and tool execution.

  • Start new meeting or continue conversation
  • Claude reviews all tasks for context before responding
  • Tool execution: creates and updates tasks during conversation
  • Markdown formatting in responses
  • Shift+Enter for multiline, Enter to send
  • Auto-starts first meeting if no history
Tech Stack
Frontend Vanilla JavaScript (no framework) — single monolithic HTML file Backend Express.js (Node.js) Drag & Drop SortableJS v1.15.2 Icons Lucide v0.344.0 Fonts Satoshi (body), Instrument Serif (display) AI Claude API (Anthropic) with tool use Database Airtable (base appFF7V3adWjVUHlc) Hosting Railway (auto-deploy from master branch) Repo c7sharp9/shofar-dashboard
Express SortableJS Lucide Claude API Airtable SSE Streaming Railway
Architecture

Frontend

Single-file monolithic architecture (~10K lines). All views, components, and styling in one index.html. No build step — serves as static files via Express. CSS custom properties for theming. In-memory state management.

Backend

Express.js server serves static frontend and proxies all API calls to Airtable. Keeps the Airtable PAT server-side. Handles pagination (100 records per page) and field normalization.

AI Integration

Meeting endpoint uses Claude API with tool use. Server-sent events (SSE) for real-time streaming. Tools: update_task, create_task, batch_update_tasks. System prompt defines the Chief of Staff personality and meeting flow.

Data Layer

Airtable as single source of truth. 5 tables: Tasks, Questions, Ideas, Inbox, Reports. Frontend auto-saves with 600ms debounce. All changes PATCH directly to Airtable via the Express proxy.

State Management
  • allTasks — master array of all task records from Airtable
  • filteredTasks — computed array after applying all active filters
  • currentTaskId — currently open detail panel task
  • activeDomains — Set of visible domains for domain filter
  • focusedColumns — Set of focused Kanban columns
  • sessionDiscardIds — tracks discarded tasks in current session only
  • boardSortMode — 'priority' or 'created' sort order
  • currentView — active view (today, board, calendar, qa, triage, list)
Design System

Warm Dark Theme

Custom warm-toned dark theme with amber/gold accents. Deep brown-black backgrounds instead of pure black for a more organic feel.

#1a1714 BG #211e1a Surface #d4a042 Primary #e8e0d4 Text
Airtable Tables
Tasks tblOhZyyKZIUzIRYg — main task records Questions tbl72S0Y8fbZsVtG9 — Q&A entries Ideas tbluri79a0vUSINey — captured ideas Inbox tblHK5Z6gOT4sascc — universal message store Reports tblEbUSqyLZaAsWOp — automation reports
Task Endpoints
GET /api/tasks Fetch all tasks with pagination (100/page)
POST /api/tasks Create new task
PATCH /api/tasks/:id Update task fields (auto-sets CompletedDate on done)
DELETE /api/tasks/:id Delete a task
AI & Intelligence
POST /api/meeting Start/continue AI Chief of Staff meeting (SSE streaming)
GET /api/ops Cross-system operational intelligence (IVM, PodPlus, Production Manager)
Q&A & Ideas
GET /api/questions Fetch Q&A entries from intake system
GET /api/ideas Fetch all ideas
POST /api/ideas Create new idea
PATCH /api/ideas/:id Update idea
Inbox & Activity
GET /api/inbox/:id Fetch original inbox message content
GET /api/activity Chronological event stream (last 30 days)
Task Field Reference

All readable/writable fields on task records:

Task Status Priority Domain Date DeferUntil PlannedTime PlannedOrder Project People EnergyLevel EstimatedMinutes Notes Subtasks Tags URLs AIRequest AIResponse AutoPay DateEntered DateCaptured CompletedDate