Skip to content

klinkby/booqr-app

Repository files navigation

Klinkby.Booqr.App

Docker Image CI CodeQL License

A modern Single Page Application (SPA) built with Svelte 5 and SvelteKit, designed as the frontend for the Booqr booking management system. This application emphasizes security, accessibility, and standards-first development with a minimalist, composable architecture.

Features

  • Lean Dependency Tree: Tree-shaken, code-split chunks — no monolithic "vendor" bundle.
  • Svelte 5 with Runes: Modern reactive programming using Svelte 5's runes system ($state, $derived, $effect, $props) for efficient state management.
  • SvelteKit SPA Mode: Static site generation targeting static deployments with client-side routing.
  • Tailwind CSS: Utility-first CSS framework for consistent, minimal styling.
  • OpenAPI Code Generation: Auto-generated API client from OpenAPI specification.
  • TanStack Query: Declarative data fetching and caching via route-local *Data.svelte.js hooks, with automatic 401 refresh-and-retry and coarse cache invalidation.
  • JWT Authentication: Secure authentication flow.
  • ES2022 Target: Modern JavaScript features for optimal performance.
  • Semantic HTML5: Strict adherence to semantic markup and WCAG AA accessibility standards.
  • Security-First Design: OWASP-aligned security practices.
  • Playwright E2E Testing: End-to-end testing with semantic selectors and accessibility assertions.
  • Container Security: Runs rootless in minimal Alpine Linux images (~20MB) with immutable filesystem.
    • Lighttpd Web Server: Secure, minimal-attack-surface static web server in production.
    • Two-Stage Docker Builds: Reproducible builds with separate build and runtime stages for optimal security and size.

Project Structure

The application is organized following SvelteKit's file-based routing conventions:

Note: Never manually edit files in src/lib/api/ as they are auto-generated.

Licensed under AGPL-3.0

Copyright (C) 2026 Mads Klinkby

This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.

You should have received a copy of the GNU Affero General Public License along with this program. If not, see http://www.gnu.org/licenses/.

About

Frontend for Booqr.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors