Skip to content

Repository Structure

swayam25 edited this page Aug 26, 2026 · 4 revisions

This is a Turborepo monorepo managed with pnpm workspaces. Two apps and a handful of shared packages.

flowchart TD
    subgraph apps["apps/"]
        web["web<br/><i>SvelteKit 5 + Tailwind 4</i>"]
        server["server<br/><i>Hono + Drizzle</i>"]
    end

    subgraph packages["packages/"]
        shared["auth-shared<br/><i>(better-auth types)</i>"]
        cocApi["clashofclans-api<br/><i>(hand written)</i>"]
        cocClient["clashofclans-client<br/><i>(kubb generated)</i>"]
        ckClient["clashking-client<br/><i>(kubb generated, unused)</i>"]
        configs["eslint-config<br/>prettier-config<br/>typescript-config"]
    end

    subgraph infra["docker"]
        db[("Postgres 18")]
        redis[("Redis 8")]
        minio[("MinIO")]
    end

    web -->|HTTP| server
    web --> cocClient
    web --> shared
    server --> shared
    server --> cocApi
    web -.->|tooling| configs
    server -.->|tooling| configs
    server --> db
    server --> redis
    server --> minio
Loading
Path What it is
apps/web SvelteKit 5 frontend, also packaged for Android and iOS through Capacitor
apps/server Hono API, Drizzle ORM, better-auth, OpenAPI docs served by Scalar. Also runs the CWL ping job in-process (superadmin-configurable from /admin/settings)
packages/auth-shared Auth types and access control shared by both apps
packages/clashofclans-api Hand written typed wrapper around the Clash of Clans API, with Redis caching. Used by server
packages/clashofclans-client Typed client for this repo's own API, generated from its OpenAPI spec by kubb, consumed by web
packages/clashking-client (unused) Typed client generated from ClashKing's OpenAPI spec by kubb, not yet consumed anywhere
packages/*-config Shared eslint, prettier and tsconfig presets

Generated code

Two things in the repo are generated and must never be hand-edited:

File Generated by
apps/server/src/lib/db/schema/ba-auth.ts pnpm --filter server ba:generate
packages/*-client/** kubb from an OpenAPI spec

Clone this wiki locally