Skip to content
jk
All work

Case study · 2026

Galaw.

Docs, tickets, whiteboards and code — in one place.

A real-time workspace where small teams write their docs and run their work: Notion-style pages, Linear-style work items, FigJam-style whiteboards and GitHub pull requests, together in one app.

Galaw's home screen: a Sunday Flow whiteboard with live cursors, recent spec pages, today's work items with linked pull requests, and team activity.
Status
Early preview — open for sign-ups
Role
Solo builder — product, design, API, real-time services and front end
Platforms
Web (installable PWA), Phone, tablet & desktop layouts
Stack
Laravel 13, React Router 8, Tiptap, Yjs, Hocuspocus, PostgreSQL, Redis, Laravel Reverb

Why it exists

Small teams — dev teams, agencies and growing businesses here in the Philippines — usually keep their docs in one tool, their tasks in another and their code in GitHub, and the context gets lost in between.

Galaw puts the spec, the whiteboard, the work item and the pull request in one workspace that updates live, so planning and shipping happen in the same place. It's built for the whole team: keyboard-first for the developer, and still easy for the teammate who isn't.

What it does

  • 01

    Pages

    A Notion-style editor that the team co-edits in real time: mentions, tables, code blocks, question blocks, find & replace, version history and Markdown export.

  • 02

    Work items

    Statuses, types, checklists and estimates (Fibonacci, 1–5 or T-shirt), in board, list, calendar and timeline views with saved views.

  • 03

    Cycles

    Fixed-length cycles that line themselves up, roll unfinished work forward and track progress with a burn-up chart.

  • 04

    Whiteboards

    FigJam-style boards with stickies, shapes, arrows, frames and a pen — plus live cursors, cursor chat, dot voting, a shared timer and templates. Turn any sticky into a work item.

  • 05

    Pull requests

    Open, review and merge GitHub pull requests without leaving Galaw: diffs, line comments, suggested changes, checks and the merge queue — all linked to work items.

  • 06

    Inbox

    One row per work item or page, with done and snooze, J/K keyboard navigation, swipe gestures on touch, and push notifications for what's addressed to you.

  • 07

    Sharing & contracts

    Read-only share links, a guest view, per-page access grants, and contracts that clients can sign with an e-signature.

  • 08

    Made for phones too

    Separate phone, tablet and desktop layouts, with long-press, swipe-to-dismiss and pull-to-refresh as first-class gestures.

How it’s built

  1. API

    Laravel 13 · PHP 8.5 · PostgreSQL · Redis · Pest

    A REST API where each workspace is a tenant. Sanctum auth, typed DTOs, queued jobs on Redis, media on S3-compatible storage, Resend for email and Firebase for push.

  2. Collaboration server

    Node.js · TypeScript · Hocuspocus · Yjs

    Serves the shared documents behind pages and whiteboards. It persists them to Postgres, scales across instances with Redis pub/sub, and authorizes every connection by calling back to the API.

  3. Live updates

    Laravel Reverb · Laravel Echo

    Everything that isn't a document — work items, comments, checklists, cycles, saved views, settings and the sidebar — updates on every open screen the moment it changes.

  4. Front end

    React Router 8 · TypeScript · Tiptap 3 · TanStack Query · Zustand

    An installable PWA with a Tiptap editor bound to Yjs, virtualized page and file trees, and a local IndexedDB copy of documents.

Under the hood

  • A whiteboard engine, built in-house

    No whiteboard SDK: a custom Canvas 2D renderer with its own scene, tools and hit-testing, an R-tree spatial index and smoothed pen strokes. Boards with thousands of notes stay quick.

  • Designed so edits merge

    Every editable property is its own key, order uses fractional indexes, and arrows store what they connect rather than coordinates — so two people moving and editing the same note never clash. Undo only undoes your own changes.

  • A board is a page

    Whiteboards are a kind of page, so permissions, version history, search, favorites, trash and share links work for them with no special cases.

  • GitHub, as you

    A GitHub App with per-user authorization means reviews, approvals and merges made in Galaw appear under your own name and count toward branch protection. Webhooks are signature-verified.

  • Accessible canvas

    Tab moves through notes in reading order, screen readers announce each note with its author and reactions, and the board respects reduced motion.

Laravel 13React Router 8TiptapYjsHocuspocusPostgreSQLRedisLaravel Reverb
Next projectDaloy