Changelog

A public timeline of ZapTicket milestones — from initial architecture through production deployment.

💡ZapTicket is developed in milestones (M1–M13). Each milestone ships a focused set of capabilities. This changelog summarizes what was delivered in each.

M13 — Documentation Site

Shipped a fully navigable docs site built with Next.js and deployed alongside the main product. Covers API reference, SignalR real-time protocol, architecture concepts, and deployment guides. Includes code examples, endpoint blocks, and searchable content for both internal team reference and future public developer docs.

M12 — Production Deployment

Deployed all services to Coolify on production infrastructure. Backend running via Docker, frontend apps via Railpack auto-detection. Configured health checks, SSL certificates, environment variables, and domain routing. Established automated daily database backups with verification scripts.

M11 — Ticketing System

Added full ticket management — create tickets directly or convert from conversations. Tickets have auto-incrementing per-tenant references (ZT-1001), priority levels, status workflow (open → in_progress → resolved → closed), assignees, and freeform tags. Includes resolved_at timestamp tracking for SLA metrics.

M10 — Agent Management & Roles

Implemented team management with role-based access control. Admins can invite agents via email, manage roles, and deactivate team members. Two roles: admin (full access including settings) and agent (conversations and tickets only). Invitation flow with 7-day expiry and accept/link workflow.

M9 — Settings & Branding

Built the workspace settings panel — widget branding (colors, greeting, logo, position), API key management with rotation, and agent profile editing. Widget config is served via a public endpoint so the embedded widget renders with workspace-specific branding without any build step.

M8 — Widget Embeddable Chat

Created the customer-facing chat widget as an embeddable JavaScript snippet. Two lines of code to add live chat to any website. Features: offline ticket form, email collection, identity verification via HMAC, real-time messaging via SignalR, typing indicators, and responsive design that works on mobile and desktop.

M7 — Real-Time Messaging (SignalR)

Implemented the SignalR hub for real-time bidirectional communication. Supports agent and visitor connections, tenant-scoped groups, conversation-specific groups, typing indicators, presence tracking with 15-second grace period, and internal notes routing (never leaked to visitors). Auto-reconnect with configurable retry policy.

M6 — Conversation Management

Built the conversation CRUD layer — list with filtering (status, assignee), pagination, message history retrieval, status transitions, and agent assignment. Auto-assign on first reply so agents don't need to manually claim conversations. Internal notes visible only to the agent team.

M5 — Dashboard UI

Created the agent dashboard as a Next.js application. Inbox view with real-time updates, conversation detail panel, message composition with internal note toggle, agent presence indicators, and workspace switcher for users in multiple workspaces.

M4 — Workspace Selection & Tokens

Implemented the two-level token system. After initial authentication (user token), users select a workspace to receive a scoped workspace token containing tenant ID, agent ID, and role. This token is used for all subsequent API calls. Workspace creation with auto-generated site keys and HMAC secrets.

M3 — Multi-Tenancy Foundation

Built the tenant isolation layer using EF Core global query filters. Every tenant-scoped entity has a TenantId column with an automatic filter applied at the ORM level. Tenant resolution middleware extracts context from JWTs (agents) or site keys (widget). Data isolation verified — impossible to read across tenant boundaries.

M2 — Authentication

Implemented user registration, login, and email verification. JWT-based authentication with configurable expiry. Password hashing with bcrypt, rate limiting on auth endpoints (10 attempts per 5 minutes per IP), and secure token validation middleware.

M1 — Project Setup & Architecture

Established the monorepo structure, technology choices, and foundational architecture. Backend: ASP.NET Core 8 with EF Core and PostgreSQL. Frontend: Next.js with TypeScript and Tailwind CSS. Defined the service boundaries (backend, dashboard, widget, marketing, docs), set up the development environment with Docker Compose, and established coding conventions.