The Rezee blog
Education, engineering deep-dives, honest comparisons, and product notes from the team building Rezee - the unified workspace for everything your team ships.
- Rezee vs Canny and Productboard - where should customer feedback live? - Oct 20, 2026. Canny and Productboard are good at hearing customers. The issue, the code and the release that answer them live somewhere else. An honest comparison with Rezee's model, where feedback sits in the same workspace as the work.
- Connect any AI tool to your workspace over MCP - Oct 20, 2026. A practical guide to the Model Context Protocol - what a server and a client are, a remote URL with OAuth versus a local stdio process, how consent and scopes should work, why a client should confirm before it writes, and how Rezee does each of these.
- Agents that interrupt less - how Rezee's agents ask, act and step back - Oct 20, 2026. A note from the team on the work behind DOC-64. Agent suggestions that say why, writes you can undo, corrections that stick, leave to act that is earned per tool, and a daily budget for how often an agent may interrupt you.
- From customer feedback to a shipped reply - closing the loop in one workspace - Oct 19, 2026. Customer feedback in Rezee lands in the same workspace as the issues, code and releases that answer it. How a sentence from a customer becomes a theme, an issue with demand on it, and one email when the work ships.
- Agents live in chat - the thread is the task - Oct 19, 2026. Message an agent in a DM, or name it in a channel, and that thread becomes the task. The agent's work, its state and the decision on anything it cannot undo all sit under the message that asked for it.
- Code ownership without slow reviews - how to design CODEOWNERS so review stays fast - Oct 18, 2026. A CODEOWNERS file can protect the code that matters or make every pull request wait on the same two people. How to design ownership around risk, teams and fewer approvals for low-risk work, and how Rezee enforces it.
- Hardening the git server - deadlines, early conflicts, and push work that survives a restart - Oct 17, 2026. Five changes to denji and makima. Every git call now has a deadline and an output cap, a pull request learns it conflicts when a branch moves, a review survives a comment-only push, a push's follow-up work lives in Postgres until it is done, and clients get protocol v2 without Rezee's private refs.
- Two-factor sign-in, and workspaces that require it - Oct 13, 2026. Rezee accounts can now ask for a code from an authenticator app after the password, with ten recovery codes. An owner or admin can require it of every member, and a member without one is shown how to fix it instead of a wall of errors.
- Rezee vs GitHub, PagerDuty and LinearB - deploys, incidents and delivery metrics in one place - Oct 8, 2026. Many teams track deployments in GitHub, run incidents in PagerDuty and read delivery metrics in LinearB. An honest comparison with Rezee, where the deployment, the incident and the number are rows in one database - and a plain list of what each of those three tools does better.
- Catching flaky tests from results - and quarantine with an owner and an expiry - Oct 6, 2026. Rezee parses a job's JUnit reports into test results, counts a flake when one commit sees a test both pass and fail, and lets a team quarantine a flaky test only with an owner and an expiry. The exact rule, the lock that keeps it correct, and the runner change quarantine needed.
- Running an incident - from the first chat message to a postmortem that files work - Oct 3, 2026. A practical way to run an incident on a small team, from the moment someone says "is anything broken?" to a postmortem whose follow-ups are tracked issues. Declare early, keep an append-only timeline, ask what changed first, and end with work rather than a document.
- Mirroring OSV hourly - and naming which live build carries each advisory - Oct 1, 2026. Rezee reads lockfiles on every branch push, mirrors OSV's advisories for five ecosystems every hour, and joins both to Ship's deployments, so a finding names the environments that run it. How the mirror stays incremental, how a version is matched, and how a fix becomes a pull request.
- Cycles that forecast - capacity you can check, and the views you read the plan through - Sep 29, 2026. Rezee cycles now have issue sizes, a capacity target, a forecast built from the cycles you already finished, and a record of every scope change. Saved views and project labels are how you read the plan.
- API contract diffs on every push - reading OpenAPI, GraphQL and protobuf against the fork point - Sep 26, 2026. Rezee reads a repository's API contracts on every branch push, keyed by blob sha, and diffs a pull request's contract against the commit it forked from. The rules that call a change breaking, why the base branch's tip was the wrong "before", and why accepting a break is bound to one commit.
- What is live where - Ship as the record of every deploy, not the thing that runs it - Sep 24, 2026. Rezee's Ship layer records deployments instead of performing them. Environments, three ways to report a deploy, a grid of what runs where, rollback and promote as plain verbs, release trains that never execute anything, and four delivery numbers you can open.
- A restack is a state machine, not a script - publishing a rebased stack without losing a branch - Sep 22, 2026. Rezee rebases a stack of pull requests behind private refs and publishes it in one leased transaction. The five durable phases, the crash window each one closes, and why a stale-ref error is sometimes a receipt.
- One store, several writers - replacing a cache of REST answers with a pool of rows - Sep 22, 2026. The board stopped being a function of the last query the server ran. How Rezee's client keeps canonical rows in memory, mirrors them to IndexedDB, and why a complete slice is smaller on the wire than the single page it replaced.
- Production latency was round trips, not queries - what 2.4 seconds of cold launch was actually made of - Sep 22, 2026. Every query returned in 1 to 5 milliseconds and the box was idle. The slow endpoints were serial awaits, and the worst one was justified by a code comment that was confidently wrong.
- Rezee vs Figma + Linear - where should design-to-ship actually live? - Aug 25, 2026. Figma is where the design is, Linear is where the work is, and the handoff between them is a link somebody pasted. An honest comparison with Rezee's model, where the board, the spec, the issues and the agent that drew them share one workspace.
- One renderer, four readers - the scene format behind Rezee's canvas - Aug 25, 2026. A design canvas whose documents are a typed scene graph rather than pixels - why the write model is a CRDT of named nodes, why scene to SVG is a pure function with exactly one implementation, and what that buys an agent that draws.
- A design system your boards are actually held to - Aug 25, 2026. Most design systems are a document everyone agrees with and nobody is stopped by. Rezee's is a document a board names, enforced on the write - with an escape hatch, an exact-match rewrite, and a refusal that tells you the nearest token.
- Design reviews that end in issues, not opinions - Aug 25, 2026. Why most design reviews produce a pile of comments and no work - and a practical structure for running one that ends with tracked issues, a named decision, and a record you can read six months later.
- Highlighting a 5,000-line diff without freezing the tab - Aug 7, 2026. How Rezee's diff viewer syntax-highlights large diffs without a frozen frame - Shiki tokenization is synchronous CPU, so the trick isn't going off-thread, it's chopping one 305ms block into 125 sub-5ms bursts, measured.
- Drag a card, write one row - fractional indexing on the issues board - Aug 4, 2026. How Rezee persists Linear-style drag reordering - the lexicographic midpoint algorithm behind issues.rank, measured key growth under adversarial dragging, why float ranks die at exactly 53 moves, and a 5,000x difference in rows written.
- Inside Rezee - agents as teammates, not features (AI & Agents) - Jul 31, 2026. The thinking behind Rezee's AI & Agents layer - agents as workspace members with scoped access and full attribution, working assigned issues, CI failures, review, and doc drafts, with humans holding the gates.
- Inside Rezee - from push to production in one layer (Code & Ship) - Jul 30, 2026. The thinking behind Rezee's Code & Ship layer - standard git over HTTPS and SSH, inline pull request review, protected branches, and YAML pipelines with isolated steps and live logs.
- Inside Rezee - chat that knows what you're talking about (Discuss & Document) - Jul 23, 2026. The thinking behind Rezee's Discuss & Document layer - channels and threads beside the work, PR and issue unfurls that stay live, and one search across chat, docs, code, and issues.
- Inside Rezee - why specs live next to the code (Ideate & Design) - Jul 22, 2026. The thinking behind Rezee's Ideate & Design layer - a block editor with live presence, RFC templates and numbering, live references, and specs that live next to the code they describe.
- Inside Rezee - planning that closes itself (Plan & Track) - Jul 20, 2026. The thinking behind Rezee's Plan & Track layer - issues with owners and workflows, projects and milestones, and pull requests that close issues automatically so the tracker stays truthful.
- A service mesh in one HTTP header - and the measured case against mTLS - Jul 15, 2026. How Rezee secures service-to-service calls with a shared-secret header instead of mutual TLS - the threat model each covers, a measured 1.2ms mTLS handshake that keep-alive erases, and why the real decision is operational, not performance.
- Rezee for agencies - a clean workspace per client, a clean handoff at the end - Jul 10, 2026. How development agencies run client work in Rezee - isolation between clients, the whole delivery record in one place, and handoffs where the client gets everything, not a zip file.
- Rezee for agent-forward teams - the workspace built for humans plus agents - Jul 9, 2026. How teams that develop with AI agents from day one run on Rezee - one permission model, full context for delegation, review as the human bottleneck solved structurally.
- The workspace is the context window - why agents work better unified - Jul 3, 2026. The engineering thesis behind Rezee's agent bet - an agent in a unified workspace gets context, permissions, identity, and a safety gate as properties of one system, each measured in a sibling post, where a stitched stack rebuilds all four per integration.
- One search across five surfaces - on Postgres, and when it falls over - Jun 30, 2026. How Rezee searches issues, docs, chat, PRs, and code paths with Postgres full-text search instead of a separate engine - measured GIN latency to 1,000,000 rows, the p99 tail that is the real fall-over signal, and why workspace-scoping keeps it flat.
- A ref named --output - defending a shell-out git API from option injection - Jun 26, 2026. How Rezee's git read layer stops a repository ref from becoming a git flag - the real arbitrary-file-write exploit, the two guards in denji's gitdata.go, a four-config attack matrix showing what each layer independently catches, and the one command where --end-of-options provides zero protection.
- A git SSH server in 300 lines, with the key database in another service - Jun 25, 2026. How Rezee serves git over SSH with delegated public-key auth - denji holds no keys, resolves fingerprints through makima, and runs stateful upload-pack (no --stateless-rpc) - plus the measured ref-advertisement cost that separates SSH from HTTP transport.
- Closes ACME-12 - parsing closing keywords without closing the wrong issue - Jun 18, 2026. How Rezee links a merged PR to the issue it closes by parsing closing keywords - tested against 500 real OSS pull requests, where the naive regex would have auto-closed the wrong issue from a code block, and the two corrections that stop it.
- Killing the 2-second poll - one SSE stream for the whole workspace - Jun 17, 2026. The engineering behind Rezee's real-time sync engine - measured costs of polling vs server-sent events (requests, wire bytes, staleness), the anatomy of an SSE stream, the proxy and connection-limit traps, and why writes stay REST.
- Scoped tokens - giving an agent the minimum, and proving it holds - Jun 15, 2026. How Rezee scopes agent access tokens to capability and resource - the scope grammar, the single matcher that gates every tool call, and a 200,000-pair adversarial fuzz proving zero privilege escalations against an independent oracle.
- Rezee for solo founders - a whole team's tooling for a team of one - Jun 10, 2026. How a solo technical founder runs specs, planning, code, CI, and AI agents in one workspace - why tool sprawl hurts most at n=1, and how agents become your first teammates.
- Rezee for 5-person startups - one workspace before the seams set in - Jun 5, 2026. How a small startup team runs its whole lifecycle in Rezee - the moment tool sprawl starts costing real money, the consolidation math, and onboarding a team without an onboarding doc.
- One tool surface for humans, agents, and MCP - generated, not maintained - Jun 4, 2026. How Rezee exposes the same API to its UI, external agents over MCP, and first-party agents - 65 MCP tools mechanically derived from the same TypeBox route schemas, so the tool an agent calls and the endpoint a human hits are the same code.
- The life of a CI log line (or - how "live" do live logs need to be?) - May 29, 2026. How a log line travels from a build container to your browser in Rezee - scanner, redaction, 20-line batches, one Postgres row per line, and 2-second polling - and why we chose boring over push.
- How encrypted secrets work in Rezee pipelines - May 26, 2026. The full path of a CI secret - AES-256-GCM at rest, names-only listing, decryption only at dispatch over an internal channel, Docker env injection that stays out of inspect, and log redaction with honest caveats.
- How we built a CI runner in Go (in about 500 lines) - May 22, 2026. The architecture of kobeni, Rezee's pipeline executor - Postgres as the job queue, optimistic claims, a throwaway Docker container per step, zipped artifacts, and the gaps we haven't filled yet.
- The post-receive hook is the event bus - one git push, measured end to end - May 21, 2026. How a git push in Rezee triggers pipelines and signed webhooks across two services with no message broker - the env-injected shell hook, fire-and-forget at every hop, and a measured 75-second push stall that the design's own honesty exposed.
- Keep the LLM loop out of the API - the beam agent runtime - May 14, 2026. Why Rezee runs agents in a separate worker service instead of inside the API - a measured 14x tail-latency blowup when the agent loop shares the request path, and the kobeni-shaped runtime that avoids it.
- The approval gate - how "humans keep the final say" works as a state machine - May 13, 2026. The engineering behind Rezee's agent approval gate - the agent_tasks state machine, why steps are append-only rows, the conditional UPDATE that makes double-approval impossible, and what happens when the runtime dies mid-task.
- Designing workspace-scoped multi-tenancy for a developer platform - May 12, 2026. How Rezee isolates workspaces on one Postgres - scoping by foreign key, revocable server-side sessions, hashed access tokens, and the single authorize endpoint that answers every git permission question.
- How we use Rezee to build Rezee - May 6, 2026. Dogfooding all the way down - how the Rezee team runs specs, planning, code, CI, and agents inside Rezee itself, what the naming scheme is about, and what building on your own product teaches you.
- The product development lifecycle in one place - a practical guide - May 1, 2026. A walkthrough of the full lifecycle - idea, spec, plan, build, review, ship, learn - with the handoffs where teams lose context, and how to run each stage so the next one inherits everything.
- How to onboard an AI agent as a teammate (and keep the final say) - Apr 30, 2026. A practical playbook for adding an AI agent to a software team - choosing first tasks, scoping permissions, setting review gates, and growing trust in stages without losing human control.
- Docs that don't rot - keeping engineering knowledge next to the code - Apr 27, 2026. Why engineering documentation decays, which docs are worth writing at all, and the structural habits - ownership, proximity, and living status - that keep knowledge truthful.
- Rezee vs Notion + Slack - where should an engineering team's knowledge and conversation live? - Apr 21, 2026. Notion holds the docs, Slack holds the conversation, and neither knows what the code is doing. An honest comparison with Rezee's model, where docs and chat share a workspace with the work itself.
- Rezee vs Linear + GitHub - do planning and code belong in separate tools? - Apr 20, 2026. Linear plus GitHub is the modern startup default - a great planner synced to a great code host. An honest look at what that pairing does well, where the sync model leaks, and when one workspace is the better answer.
- What context switching actually costs your engineering team - Apr 16, 2026. The research on interruption and attention residue, translated into engineering terms - what tab-hopping between code, tracker, chat, and docs really costs, and what actually reduces it.
- The best all-in-one developer platforms in 2026 - Apr 10, 2026. A fair guide to the platforms that unify code, planning, CI/CD, and more - GitLab, Atlassian, Gitea and Forgejo, OneDev, and Rezee - with honest strengths, gaps, and who each one actually fits.
- Rezee vs GitHub - when a unified workspace beats a code-first platform - Apr 8, 2026. GitHub is the default home for code. Rezee is a workspace for the whole lifecycle - code, planning, CI/CD, chat, and docs. An honest comparison for teams deciding where their work should live.
- What your team actually pays for GitHub + Linear + Slack + Notion + CI - Apr 7, 2026. The real monthly cost of the standard startup dev stack - subscription math for a 10-person team, plus the hidden costs of seams - and an honest look at when consolidation pays.
- Our job queue is one Postgres UPDATE - so we raced it until it broke - Apr 1, 2026. We benchmarked the atomic claim behind Rezee's CI queue against the naive version and FOR UPDATE SKIP LOCKED - 100 concurrent workers, 10,000 jobs, real numbers on duplicates, wasted claims, latency, and the surprising way a guarded queue slows down under contention.
- How small teams should structure issues, labels, and workflows - Mar 27, 2026. A minimal issue-tracking setup that stays truthful - what states you actually need, which labels earn their keep, how big an issue should be, and the habits that prevent tracker rot.
- Code review best practices - reviews that don't slow the team down - Mar 26, 2026. How to keep code review fast and useful at the same time - small PRs, clear review levels, latency norms, and what reviewers should actually look for (and skip).
- Spec to issues to shipped - how to keep planning and code in sync - Mar 23, 2026. Why trackers drift from reality, how to link issues to pull requests so status maintains itself, and the closed-loop workflow that keeps a spec truthful from first draft to deploy.
- Agents are just users - the one schema decision that made every surface agent-ready - Mar 17, 2026. How Rezee made AI agents first-class teammates with a single enum column - 15 existing foreign keys that worked on day one, the two columns that fought back, and the measured cost of the polymorphic alternative we didn't pick.
- Why Rezee runs on Go, Bun, and React - Mar 16, 2026. The reasoning behind Rezee's polyglot stack - Go for the git engine and CI executor, Bun and ElysiaJS for the API, React with TanStack for the UI - and the seams between them.
- How we built a git server in Go (without reimplementing git) - Mar 12, 2026. The architecture of denji, the git engine behind Rezee - smart HTTP and SSH transports in ~2,000 lines of Go, one dependency, and the git binary doing what it does best.
- Rezee vs the Atlassian stack - Jira, Bitbucket, and Confluence, or one workspace? - Mar 6, 2026. Atlassian assembled the enterprise standard - Jira for planning, Bitbucket for code, Confluence for docs. An honest comparison with Rezee's single-workspace model, and who each is really for.
- A beginner's guide to CI/CD pipelines in YAML - Mar 4, 2026. What CI/CD actually does, how to read and write pipeline YAML - jobs, steps, dependencies, artifacts, secrets - and the habits that keep pipelines fast and trustworthy.
- The best tools for teams working with AI coding agents in 2026 - Mar 3, 2026. A practical guide to the agent-era stack - coding agents, review tooling, CI, and the workspace layer that gives agents context and guardrails - with honest notes on what each piece solves.
- Rezee vs GitLab - two takes on all-in-one - Feb 25, 2026. GitLab unified the DevOps toolchain. Rezee unifies the product development lifecycle - including chat, docs, and AI agents. An honest comparison of scope, strengths, pricing, and when to pick each.
- How to write an RFC that actually gets read (with template) - Feb 20, 2026. A practical guide to writing engineering RFCs - what to include, what to cut, how to route them for review, and a copy-paste template your team can adopt today.
- Why we built Rezee - the case against seven SaaS tabs - Feb 19, 2026. Product development is scattered across code hosting, issue tracking, CI, chat, and docs that never quite agree. Rezee is our answer - one workspace for the whole lifecycle, built for teams and their AI agents.
- Introducing the Rezee blog - Feb 16, 2026. What we'll write about here - practical guides on shipping software, engineering deep-dives on how Rezee is built, honest tool comparisons, and notes on the product itself.