The Problem It Solves
Creative agency work is chaotic. Tasks arrive through Teams DMs, Outlook emails, Airtable records, Frame.io comments, standup meetings, and Slack channels. Nobody tracks hours properly until someone asks. Monday morning status meetings require 15 minutes of frantic memory reconstruction. SpaceTable was built to replace that chaos with a single conversational interface where you talk to it like a person and it tracks everything.
How It Works
Type naturally into a chat window. The AI extracts structured data -- title, deadline, priority, requester, assignees, category, source, estimated hours, and tags -- from plain English. Say "Adam just asked me to review the animation reel by Friday, probably 3 hours" and it captures all of it. Say "no, Katie instead of Adam" and it corrects the requester without re-parsing. It handles multi-task parsing (describe several tasks in one message), smart chat commands (mark done, change deadlines, reassign), meeting prep reports, daily briefings, and weekly summaries.
The AI Architecture
SpaceTable runs a dual-AI architecture. The primary brain is a custom Ollama model (Qwen 2.5 7B with a domain-specific system prompt defined in a Modelfile) that runs entirely on your local machine. Nothing leaves your network. Sitting above Ollama is a Claude Supervisor layer that watches every parse, validates output, and steps in when the local model fails. Quick validation catches obvious issues (title too long, missed requester). Deep validation (Haiku) corrects specific fields. Full fallback (Sonnet) takes over when Ollama produces garbage. A "lurk mode" logs every user correction to build a pattern database for future prompt improvements, with the long-term goal of reducing Claude interventions to near-zero.
The Knowledge Graph
Every task, person, category, and source is a node in a graph database (stored in SQLite with dedicated graph_entities and graph_edges tables). Relationships connect requesters to tasks, tasks to categories, categories to sources. This graph powers an interactive 3D constellation visualization built with Three.js and CSS2DRenderer -- a force-directed layout where you can click, drag, zoom, and orbit through your entire work universe. There's even a hidden arcade easter egg: a complete space shooter mini-game (~650 lines) where you fly through the constellation and shoot task nodes.
The Database
SQLite with WAL mode and FTS5 full-text search. 18 tables covering tasks, people, activity logs, multi-person assignments, reassignment history, gripes (the system detects frustration in your input and logs it privately), time entries, check-ins, chat history, chat context memory, goals, and daily snapshots. The Express API exposes 52 endpoints across tasks, chat, briefings, people, time tracking, graph operations, and system stats.
Features That Matter
The meeting prep mode generates a complete status report in under 5 seconds -- overdue tasks, this week's deadlines, total hours, tasks missing estimates. The people management system handles name collisions with last initials and fuzzy matching ("marcus" finds "Marcus T."). The activity audit trail logs every change with timestamps and old/new values. The gripe log catches harsh language in task input and stores it separately, never surfacing it in task titles. Programs and hierarchy support organizing work into Programs, Batches, Phases, and Tasks with full tree views.
Tech Stack
Node.js / Express v5, SQLite (better-sqlite3) with WAL mode and FTS5, Ollama (local LLM), Claude API (Haiku for validation, Sonnet for fallback), Three.js + CSS2DRenderer, vanilla HTML/CSS/JS frontend. Everything runs on localhost.
