Skip to content
CAI
Software that uses CAICheck a score

upperdo/backoffice-template

39.7

Weak · 21 September 2026

6.2k

lines of production code

TypeScript

primary language

4

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

What this system is

This system is a SvelteKit-based web application that provides a backoffice dashboard for managing users, sales, and account settings. It integrates with Appwrite for authentication and serverless functions, while leveraging Shadcn/Svelte and Tailwind CSS for the user interface. The application supports offline functionality and containerized deployment via Docker.

Features

Add UI component library and application configuration

The application now includes a comprehensive set of reusable UI components (including accordion, alert, avatar, badge, button, card, checkbox, collapsible, context menu, dialog, and dropdown menu) built on top of the bits-ui library, alongside a new configuration system that loads environment-specific settings for Appwrite, Stripe, and site metadata from a central config file.

src/lib, src/lib/use-cases/errors · high confidence

Add authentication routes and layout for login and logout

New files are introduced to support user authentication: a layout component for the auth section, a login page with server-side handling for email/password credentials and redirection to the dashboard, and a logout action that clears session cookies and redirects to the login page.

src/routes/(auth) · medium confidence

Add backoffice dashboard page

A new dashboard route has been introduced for the backoffice area. The server-side load function is now in place to fetch data, and the Svelte component renders a DashboardPage widget, providing the initial structure for the backoffice dashboard view.

src/routes/(backoffice)/dashboard · medium confidence

Add settings pages for profile, account, and security

The backoffice settings area now includes dedicated pages for managing a user's profile, account details, and security preferences. The settings layout provides a sidebar navigation linking to /settings/profile, /settings/account, and /settings/security. Each subpage includes a server-side load function that initializes a form using sveltekit-superforms, and a Svelte page component that renders the corresponding form component (ProfileForm, AccountForm) within a consistent layout.

src/routes/(backoffice)/settings · high confidence

Added Appwrite functions for user lifecycle management

New Appwrite serverless functions have been introduced to handle user initialization, deletion, and action control. The \initUserCollection\ function creates a user document with default roles and permissions upon registration, while \onDeleteUser\ removes the corresponding document when a user is deleted. The \userActionControl\ function provides a generic endpoint for managing user actions. These changes implement the backend logic for user data synchronization and cleanup within the Appwrite ecosystem.

appwrite/functions/initUserCollection, appwrite/functions/onDeleteUser, appwrite/functions/userActionControl · medium confidence

Added Appwrite integration, Docker support, and Shadcn/Svelte UI setup

The application now includes full support for the Appwrite backend, with environment variables and a login script to configure the Appwrite endpoint and authentication. A Dockerfile and docker-compose.yml have been added to containerize the application for both development and production environments. Additionally, the project has been initialized with Shadcn-Svelte and Tailwind CSS, providing a new UI component library and styling framework. The SvelteKit configuration has also been updated to support the new preprocessing setup.

(repo-wide) · high confidence

Added backoffice layout and sales page

Introduced a new backoffice route structure, including a server-side layout that enforces authentication by redirecting unauthenticated users, and a client-side layout that renders the main navigation, search, and user navigation components. Additionally, a new sales page was added to the backoffice section.

src/routes/(backoffice) · high confidence

Added dashboard and settings account/profile forms

Introduced new Svelte components for the dashboard and user settings. The dashboard now includes a main navigation bar, a sidebar, and an overview page displaying key metrics (revenue, subscriptions, sales, active users) alongside an overview chart and recent sales list. Additionally, new forms for managing account details (name, email) and public profile information (username, bio, website) have been added to the settings section.

src/lib/features/dashboard · high confidence

Added user authentication form component

A new Svelte component for the user authentication form has been introduced. This component renders email and password input fields and a submit button, integrating with SvelteKit's form handling via the 'enhance' function. It supports a loading state and accepts a custom class for styling.

src/lib/features/authentication · high confidence

Adds offline support and customer backoffice page

The application now supports offline functionality through a new service worker that caches build assets and files, enabling the app to work without a network connection. Additionally, a new Customers page has been added to the backoffice routes, and the server-side authentication hook has been updated to handle Appwrite sessions and redirect unauthenticated users to the login page.

src · high confidence

Behavioural changes

1 commit (0 fixes) modifying static

A change to existing behaviour in static — 1 commit, 1 file.

static · low confidence · unverified

Added server-side authentication and layout logic for routes

The application now handles server-side rendering (SSR) for authentication by introducing a new layout file (+layout.server.ts) that processes Appwrite sessions and sets headers for client-side storage. The corresponding client-side layout (+layout.svelte) initializes the account store and manages header storage, while the default page template has been cleared.

src/routes · high confidence

Test coverage

Removal of Playwright end-to-end test for the index page

The Playwright end-to-end test that verified the presence of the 'Welcome to SvelteKit' heading on the index page has been removed from the test suite.

tests · high confidence

Dependencies

Added Appwrite and UI library dependencies

The project now includes the Appwrite SDK (versions 9.0.0 and 13.0.1) for backend integration, alongside UI libraries such as bits-ui, lucide-svelte, and tailwind-variants, enabling new frontend and backend capabilities.

(dependencies) · high confidence

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

How this codebase got here

Score

  • CAI 39 → 40 (+0.8)
  • Rubric changed (rubric-2026.08.19 → rubric-2026.09.15) — scores are not directly comparable.

Lenses

  • Code Health 91 → 67 (-23.8)
  • Architecture 43 → 56 (+12.7)
  • Maturity 75 → 75 (+0.0)
  • Readiness 21 → 21 (+0.1)
  • Security 75 → 78 (+3.2)
  • Accessibility 47 → 48 (+0.5)

Resolved (43)

  • Critical CVE: [GHSA redacted] (pnpm-lock.yaml)
  • Critical CVE: [GHSA redacted] (appwrite/functions/initUserCollection/package-lock.json)
  • Critical CVE: [GHSA redacted] (pnpm-lock.yaml)
  • Dependency hygiene not measured — dependency manifest found but not parsed for hygiene
  • High CVE: [GHSA redacted] (pnpm-lock.yaml)
  • High CVE: [GHSA redacted] (pnpm-lock.yaml)
  • High CVE: [GHSA redacted] (pnpm-lock.yaml)
  • High CVE: [GHSA redacted] (appwrite/functions/initUserCollection/package-lock.json)
  • High CVE: [GHSA redacted] (pnpm-lock.yaml)
  • High CVE: [GHSA redacted] (pnpm-lock.yaml)
  • High CVE: [GHSA redacted] (pnpm-lock.yaml)
  • High CVE: [GHSA redacted] (pnpm-lock.yaml)
  • High CVE: [GHSA redacted] (pnpm-lock.yaml)
  • High CVE: [GHSA redacted] (pnpm-lock.yaml)
  • High CVE: [GHSA redacted] (pnpm-lock.yaml)
  • High CVE: [GHSA redacted] (pnpm-lock.yaml)
  • High CVE: [GHSA redacted] (pnpm-lock.yaml)
  • High CVE: [GHSA redacted] (pnpm-lock.yaml)
  • High CVE: [GHSA redacted] (pnpm-lock.yaml)
  • High CVE: [GHSA redacted] (pnpm-lock.yaml)
  • …and 23 more

New (56)

  • Critical CVE: [GHSA redacted] (pnpm-lock.yaml)
  • Critical CVE: [GHSA redacted] (appwrite/functions/initUserCollection/package-lock.json)
  • Critical CVE: [GHSA redacted] (pnpm-lock.yaml)
  • Critical CVE: [GHSA redacted] (pnpm-lock.yaml)
  • Documentation: no installation or build instructions (README.md)
  • Documentation: no usage examples (README.md)
  • High CVE: [CVE redacted] (pnpm-lock.yaml)
  • High CVE: [CVE redacted] (pnpm-lock.yaml)
  • High CVE: [CVE redacted] (pnpm-lock.yaml)
  • High CVE: [GHSA redacted] (pnpm-lock.yaml)
  • High CVE: [GHSA redacted] (pnpm-lock.yaml)
  • High CVE: [GHSA redacted] (pnpm-lock.yaml)
  • High CVE: [GHSA redacted] (pnpm-lock.yaml)
  • High CVE: [GHSA redacted] (pnpm-lock.yaml)
  • High CVE: [GHSA redacted] (pnpm-lock.yaml)
  • High CVE: [GHSA redacted] (appwrite/functions/initUserCollection/package-lock.json)
  • High CVE: [GHSA redacted] (pnpm-lock.yaml)
  • High CVE: [GHSA redacted] (pnpm-lock.yaml)
  • High CVE: [GHSA redacted] (pnpm-lock.yaml)
  • High CVE: [GHSA redacted] (pnpm-lock.yaml)
  • …and 36 more

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

Survey your own repository

upperdo/backoffice-template was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.

About this page

  • The score is its most recent published measurement, taken on 21 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
  • Measured at commit 6b668f9377629b80364a76c5327a652471a3154f — the exact code this score is about.
  • Scored under rubric-2026.09.15 — the same rubric and the same method as every other entry in this index.
  • Measured by watchdog.canine.dev using codehealth-analyzer preprod-b84573e22831.