Dirework

Features

Everything Dirework can do for your co-working stream

Dirework is a self-hosted Pomodoro timer and task list built specifically for Twitch co-working and body-doubling streams. Here's everything it includes.

Pomodoro Timer

A full-featured Pomodoro timer with automatic phase transitions.

  • Configurable durations — Set work, break, and long break durations (in minutes) from the dashboard
  • Long break intervals — Automatically triggers a long break every N cycles (configurable)
  • Cycle tracking — Set the number of pomos per session (1-99)
  • Automatic phase transitions — Timer moves through starting, work, break, long break, and finished phases automatically
  • Pause and resume — Pause mid-session and resume exactly where you left off (remembers which phase you were in)
  • Skip phase — Skip the current phase to advance to the next one
  • 5-second starting countdown — Brief countdown before work begins so you can get ready
  • Real-time OBS overlay — Circular or rounded-rectangle progress ring with countdown, phase label, and cycle count

Task List

A viewer-interactive task list managed through Twitch chat.

  • Chat commands — Viewers add, edit, complete, and remove tasks with simple commands like !task, !done, !edit, !remove
  • Multiple tasks per viewer — Each viewer can have multiple tasks, numbered for easy reference
  • Task priority — Broadcaster tasks are pinned to the top, viewer tasks below in order
  • Broadcaster controls — Clear all tasks, clear completed tasks, or remove a specific user's tasks
  • Author grouping — Tasks are grouped by author, each with a styled card container showing the author's name and done/total count
  • Real-time OBS overlay — Task list with usernames in Twitch chat colors, checkboxes, and strikethrough for completed tasks
  • Auto-scroll — Toggleable infinite scroll animation when the list overflows the display area

Theme Center

A visual editor for customizing your overlays, available at /dashboard/styles.

  • 11 built-in theme presets — Default, Liquid Glass Light, Liquid Glass Dark, Neon Cyberpunk, Cozy Cottage, Ocean Depths, Sakura, Retro Terminal, Minimal Light, Sunset, Twitch Purple
  • Timer overlay editor — Customize dimensions, background (color, opacity, border radius), progress ring (track/fill colors, width, gap), text (color, outline, font family), font sizes (label, time, cycle), and phase labels
  • Task list overlay editor — Customize header, body, task items, done state, checkboxes, bullets, fonts, scroll toggle/speed, and more
  • Live preview — See changes instantly in the preview panel with an animated timer countdown toggle
  • Progress ring shapes — Choose between circle and rounded rectangle (squircle) ring styles
  • Per-property control — Every color, size, opacity, font, and spacing value is individually configurable

Twitch Chat Bot

Connect a separate Twitch bot account to handle chat commands.

  • Task commands!task, !done, !edit, !remove, !check for all viewers
  • Timer commands!timer start, !timer pause, !timer resume, !timer skip, !time, !eta
  • Moderator commands!clear, !cleardone, !adel @user for broadcasters and mods
  • Customizable bot messages — Configure response templates for every command
  • Command aliases — Create custom aliases for any command
  • Separate bot account — Uses its own Twitch account so messages come from the bot, not you

OBS Overlays

Two transparent browser source overlays designed for OBS and streaming software.

  • Timer overlay — Shows phase label, countdown, and cycle count with a configurable progress ring
  • Task list overlay — Shows task list with viewer usernames, checkboxes, and auto-scroll
  • Transparent backgrounds — Overlays render with no background, layering cleanly over your stream
  • Unique tokens — Each overlay has a private token URL; regenerate if compromised
  • Real-time updates — Overlays use Server-Sent Events (SSE) for instant updates with no polling delay
  • Toggle previews — Dashboard previews can be toggled on/off to avoid slow page loads

Dashboard

A single-page control center for your stream.

  • Timer controls — Start, pause, resume, skip, and stop the timer with inline duration settings and info tooltips
  • Task manager — Add, complete, edit, and remove tasks directly from the dashboard
  • Overlay previews — Live iframe previews of both overlays (toggleable)
  • Overlay URLs — Copy overlay URLs for OBS with one click; regenerate tokens if needed
  • Bot management — Connect, view status, and disconnect your bot account
  • Time-of-day greetings — Personalized greetings based on the time of day

UI and Design

  • macOS Liquid Glass theme — Translucent backgrounds, backdrop blur, and rounded corners inspired by macOS
  • Blue accent theme — Blue primary and accent colors throughout the interface
  • Dark and light mode — Toggle between themes with a simple switch in the header
  • Responsive layout — Works on desktop and mobile
  • Glass-effect header — Frosted glass navbar with backdrop blur and saturation

Self-Hosted and Single-User

  • Single-user per instance — Each streamer runs their own Dirework instance
  • Full data ownership — Your data stays on your server
  • PostgreSQL backend — Reliable, battle-tested database
  • Deploy anywhere — VPS, Docker, Coolify, Railway, or any Node.js host
  • Static docs site — Documentation builds as a static site, deployable separately

Tech Stack

LayerTechnology
FrameworkNext.js 16 (App Router, React 19, React Compiler)
StylingTailwind CSS v4, shadcn/ui components
APItRPC v11 with TanStack React Query
AuthBetter Auth with Twitch OAuth
DatabasePrisma 7 with PostgreSQL 17
FontsMontserrat (headings/timer) + Roboto (body)
DocsFumadocs with Orama search
BuildTurborepo + pnpm workspaces

On this page