Seatsurfing is a full-stack, self-hostable desk and room booking system. The backend is a Go application using gorilla/mux, PostgreSQL, Valkey/freecache caching, JWT authentication, and gRPC for a plugin system. The frontend is a Next.js/React TypeScript application with two interfaces: a booking UI and an admin UI. The system manages organizations, locations, spaces, bookings, recurring bookings, public bookings, approval workflows, custom booking attributes, user roles, and granular permissions. It supports multiple authentication methods including password, OAuth2/OIDC, TOTP, and WebAuthn passkeys. The code is structured into repository, service, router, and API layers, with schema upgrades embedded in repositories and a separate plugin host API for extending backend and UI behavior.