This repository has been archived on 2026-05-24. You can view files and clone it. You cannot open issues or pull requests or push a commit.
groombook-ceo[bot] aca1a69900 docs: update README with positioning, shipped features, and demo link
- Add positioning statement and tagline ('Built for groomers, not corporations.')
- Replace generic feature list with 6 shipped features: iCal feed, waitlist,
  quick-find search, customer portal, appointment notes, RBAC
- Add live demo link (groombook.farh.net) prominently at top and in dedicated section
- Restructure: demo and quick-start above the fold, tech stack secondary
- Retain Docker Compose quick-start, local dev, and contributing sections

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-03-27 17:10:39 +00:00

GroomBook

Built for groomers, not corporations.

GroomBook is the open-source scheduling and client management platform built specifically for independent pet groomers — giving you the tools of enterprise software without the enterprise price tag or vendor lock-in.

Try the Live Demo →


Why GroomBook?

Independent groomers are stuck using paper books, spreadsheets, or generic scheduling tools that weren't built for pet care. GroomBook is purpose-built for the way grooming shops actually work: managing pets and their owners, filling cancelled slots automatically, and giving clients a way to confirm without calling the shop.

  • Open source — you own your data, no vendor lock-in
  • Self-hostable — run it yourself for free, or use low-cost hosting
  • Purpose-built for groomers — pet records, appointment notes, breed-aware workflows

Features

  • iCal calendar feed — push GroomBook appointments directly into Google Calendar or Apple Calendar. No app switching, works with the tools you already use.
  • Waitlist system — automatically fill cancelled slots from your waitlist. Reduce no-show revenue loss without lifting a finger.
  • Quick-find client & pet search — instantly surface any client or pet by name. Never lose context on a regular — full history at a glance.
  • Customer portal — clients confirm or cancel appointments on their own without calling the shop. Less phone tag, fewer no-shows.
  • Appointment notes — add per-appointment notes for breed quirks, grooming preferences, or anything your staff needs to know next time.
  • RBAC (role-based access control) — front desk sees bookings; only you see financials. Right access for every role in your shop.

Live Demo

Try the full groomer and customer experience at groombook.farh.net. Log in with demo credentials to explore the scheduler, customer portal, and staff views.


Quick Start (Docker Compose)

The fastest way to run GroomBook is with Docker Compose. This starts PostgreSQL, runs database migrations, and serves both the API and web frontend.

git clone https://github.com/groombook/groombook.git
cd groombook

# Start everything (Postgres + migrate + API + web)
docker compose up --build

The default docker-compose.yml sets AUTH_DISABLED=true so you can explore the app without configuring an OIDC provider. Disable this in any internet-facing deployment.

Production configuration

Copy .env.example to .env and configure:

cp .env.example .env

Key variables to update for production:

Variable Description
DATABASE_URL PostgreSQL connection string
AUTH_DISABLED Set to false in production
OIDC_ISSUER Authentik issuer URL
OIDC_AUDIENCE OAuth2 audience (default: groombook)
CORS_ORIGIN Public URL of the web frontend
docker compose --env-file .env up --build

Tech Stack

Layer Technology
Backend Hono (TypeScript, Node.js)
Frontend React 19 + Vite + vite-plugin-pwa
Database PostgreSQL via CNPG + Drizzle ORM
Auth OIDC via Authentik
Infra Kubernetes (namespace: groombook), Flux GitOps
CI GitHub Actions (self-hosted groombook-runners)

Repository Structure

groombook/
├── apps/
│   ├── api/          # Hono REST API
│   └── web/          # React PWA
├── packages/
│   ├── db/           # Drizzle schema + migrations
│   └── types/        # Shared TypeScript types
├── .github/
│   └── workflows/    # CI/CD pipelines
└── docker-compose.yml

Local Development

Prerequisites

  • Node.js >= 20
  • pnpm >= 9 (npm install -g pnpm)
  • Docker & Docker Compose (for local Postgres)
# Clone the repo
git clone https://github.com/groombook/groombook.git
cd groombook

# Install dependencies
pnpm install

# Start local Postgres
docker compose up postgres -d

# Run database migrations
DATABASE_URL=postgres://groombook:groombook@localhost:5432/groombook pnpm db:migrate

# Start API and Web in parallel
pnpm dev

API: http://localhost:3000 | Web: http://localhost:5173

Running Tests

# Unit tests (vitest)
pnpm test

# E2E tests (Playwright) — requires the full Docker Compose stack
docker compose up -d --wait
pnpm --filter @groombook/e2e test

Building

pnpm build

Self-Hosting on Kubernetes

See the groombook/infra repository for Kubernetes manifests and Flux configuration.


Contributing

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/my-feature)
  3. Commit your changes
  4. Open a pull request

All PRs require CI to pass before merge. See CONTRIBUTING.md for full guidelines.

License

MIT

S
Description
Open source, self-hostable pet grooming business management & CRM
Readme AGPL-3.0 49 MiB
Languages
TypeScript 98.5%
Python 0.7%
Go Template 0.3%
Dockerfile 0.2%
CSS 0.2%