# ccawmiku/subboost-cf-personal architecture

> Architecture diagram of the GitHub repository ccawmiku/subboost-cf-personal, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-28). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/ccawmiku/subboost-cf-personal
- Repository: https://github.com/ccawmiku/subboost-cf-personal

## Overview

SubBoost converts subscription links, node links, and configuration files into enhanced Clash/Mihomo YAML, with a visual editor for node processing, proxy groups, routing, and DNS. The principal workflow runs from user-managed sources through parsing and configuration editing to YAML generation and optional subscription delivery. The application also manages saved subscriptions, templates, authentication, and scheduled refreshes. The graph combines README-documented capabilities with the sampled UI and local API code; unsampled subsystem wiring is shown only where the tree or documentation supports it.

Main entry points: [`packages/ui/src/store/config-store.ts`](https://github.com/ccawmiku/subboost-cf-personal/blob/main/packages/ui/src/store/config-store.ts) (Config store), [`packages/core/src/generator/index.ts`](https://github.com/ccawmiku/subboost-cf-personal/blob/main/packages/core/src/generator/index.ts) (Mihomo generator), [`packages/core/src/generator/yaml.ts`](https://github.com/ccawmiku/subboost-cf-personal/blob/main/packages/core/src/generator/yaml.ts) (YAML output), [`packages/core/src/parser/index.ts`](https://github.com/ccawmiku/subboost-cf-personal/blob/main/packages/core/src/parser/index.ts) (Source parsers)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_ui["Visual configuration"]
  node_home["Home workflow<br/>[home-surface.tsx]"]
  node_sources["Source controls"]
  node_editor["Advanced editor<br/>[advanced-mode.tsx]"]
  node_store["Config store<br/>[config-store.ts]"]
  node_templates_ui["Template library"]
  node_api_adapter["Product API adapter<br/>[api-adapter.tsx]"]
end

subgraph group_core["Conversion engine"]
  node_parser["Source parsers<br/>[index.ts]"]
  node_model["Config model<br/>[config.ts]"]
  node_generator["Mihomo generator<br/>[index.ts]"]
  node_rules["Routing rules<br/>[rules-database.ts]"]
  node_templates["Template definitions<br/>[index.ts]"]
  node_yaml["YAML output<br/>[yaml.ts]"]
end

subgraph group_service["Subscription services"]
  node_sub_api["Subscription endpoints<br/>[route.ts]"]
  node_sub_handlers["Subscription handlers"]
  node_sub_service["Subscription service"]
  node_import_api["Source import API<br/>[route.ts]"]
  node_import_jobs["Import jobs"]
  node_refresh["Automatic refresh"]
  node_cron["Refresh scheduler<br/>[route.ts]"]
  node_template_api["Template endpoints<br/>[route.ts]"]
  node_subscription_store[("Subscription data<br/>[prisma.ts]")]
end

subgraph group_platform["Local platform"]
  node_auth["Admin authentication<br/>[route.ts]"]
  node_auth_store[("Admin and session data<br/>[prisma.ts]")]
end

node_user(("User"))
node_source_host(("Subscription sources"))
node_mihomo(("Mihomo client"))

node_user -->|"configures"| node_home
node_home -->|"manages sources"| node_sources
node_sources -->|"updates sources"| node_store
node_store -->|"parses inputs"| node_parser
node_source_host -->|"provides content"| node_parser
node_parser -->|"produces nodes"| node_model
node_editor -->|"edits config"| node_store
node_templates_ui -->|"applies templates"| node_store
node_store -->|"generates config"| node_generator
node_rules -.->|"supplies rules"| node_generator
node_templates -.->|"supplies defaults"| node_generator
node_generator -->|"serializes config"| node_yaml
node_yaml -->|"updates preview"| node_store
node_user -->|"requests service"| node_api_adapter
node_api_adapter -->|"calls endpoints"| node_sub_api
node_sub_api -->|"dispatches"| node_sub_handlers
node_sub_handlers -->|"manages subscriptions"| node_sub_service
node_sub_service -->|"reads and writes"| node_subscription_store
node_user -->|"starts import"| node_import_api
node_import_api -->|"starts or checks"| node_import_jobs
node_import_jobs -->|"fetches source"| node_source_host
node_cron -->|"runs refresh"| node_refresh
node_refresh -->|"updates subscriptions"| node_subscription_store
node_user -->|"manages templates"| node_template_api
node_template_api -->|"checks admin"| node_auth_store
node_user -->|"signs in"| node_auth
node_auth -->|"verifies and records"| node_auth_store
node_yaml -.->|"delivers configuration"| node_mihomo

click node_home "https://github.com/ccawmiku/subboost-cf-personal/blob/main/packages/ui/src/product/home/home-surface.tsx"
click node_sources "https://github.com/ccawmiku/subboost-cf-personal/blob/main/packages/ui/src/product/converter/use-subscription-sources-controller.ts"
click node_editor "https://github.com/ccawmiku/subboost-cf-personal/blob/main/packages/ui/src/product/converter/advanced-mode.tsx"
click node_store "https://github.com/ccawmiku/subboost-cf-personal/blob/main/packages/ui/src/store/config-store.ts"
click node_templates_ui "https://github.com/ccawmiku/subboost-cf-personal/blob/main/packages/ui/src/templates/template-library-surface.tsx"
click node_parser "https://github.com/ccawmiku/subboost-cf-personal/blob/main/packages/core/src/parser/index.ts"
click node_model "https://github.com/ccawmiku/subboost-cf-personal/blob/main/packages/core/src/types/config.ts"
click node_generator "https://github.com/ccawmiku/subboost-cf-personal/blob/main/packages/core/src/generator/index.ts"
click node_rules "https://github.com/ccawmiku/subboost-cf-personal/blob/main/packages/core/src/rules-database.ts"
click node_templates "https://github.com/ccawmiku/subboost-cf-personal/blob/main/packages/core/src/templates/index.ts"
click node_yaml "https://github.com/ccawmiku/subboost-cf-personal/blob/main/packages/core/src/generator/yaml.ts"
click node_api_adapter "https://github.com/ccawmiku/subboost-cf-personal/blob/main/packages/ui/src/product/api-adapter.tsx"
click node_sub_api "https://github.com/ccawmiku/subboost-cf-personal/blob/main/local/app/api/subscriptions/route.ts"
click node_sub_handlers "https://github.com/ccawmiku/subboost-cf-personal/blob/main/local/src/lib/subscription-route-handlers.ts"
click node_sub_service "https://github.com/ccawmiku/subboost-cf-personal/blob/main/local/src/lib/subscription-service.ts"
click node_import_api "https://github.com/ccawmiku/subboost-cf-personal/blob/main/local/app/api/source-import/route.ts"
click node_import_jobs "https://github.com/ccawmiku/subboost-cf-personal/blob/main/local/src/lib/source-import-jobs.ts"
click node_refresh "https://github.com/ccawmiku/subboost-cf-personal/blob/main/local/src/lib/auto-update-service.ts"
click node_cron "https://github.com/ccawmiku/subboost-cf-personal/blob/main/local/app/api/cron/update-subscriptions/route.ts"
click node_template_api "https://github.com/ccawmiku/subboost-cf-personal/blob/main/local/app/api/templates/route.ts"
click node_auth "https://github.com/ccawmiku/subboost-cf-personal/blob/main/local/app/api/auth/login/route.ts"
click node_auth_store "https://github.com/ccawmiku/subboost-cf-personal/blob/main/local/src/lib/prisma.ts"
click node_subscription_store "https://github.com/ccawmiku/subboost-cf-personal/blob/main/local/src/lib/prisma.ts"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_home,node_sources,node_editor,node_store,node_templates_ui,node_api_adapter,node_user,node_mihomo toneBlue
class node_parser,node_model,node_generator,node_rules,node_templates,node_yaml toneAmber
class node_sub_api,node_sub_handlers,node_sub_service,node_import_api,node_import_jobs,node_refresh,node_cron,node_template_api,node_subscription_store toneMint
class node_auth,node_auth_store toneRose
class node_source_host toneIndigo
```

## Components

### Visual configuration

- [Home workflow](https://github.com/ccawmiku/subboost-cf-personal/blob/main/packages/ui/src/product/home/home-surface.tsx): `packages/ui/src/product/home/home-surface.tsx`
- [Source controls](https://github.com/ccawmiku/subboost-cf-personal/blob/main/packages/ui/src/product/converter/use-subscription-sources-controller.ts): `packages/ui/src/product/converter/use-subscription-sources-controller.ts`
- [Advanced editor](https://github.com/ccawmiku/subboost-cf-personal/blob/main/packages/ui/src/product/converter/advanced-mode.tsx): `packages/ui/src/product/converter/advanced-mode.tsx`
- [Config store](https://github.com/ccawmiku/subboost-cf-personal/blob/main/packages/ui/src/store/config-store.ts): `packages/ui/src/store/config-store.ts`
- [Template library](https://github.com/ccawmiku/subboost-cf-personal/blob/main/packages/ui/src/templates/template-library-surface.tsx): `packages/ui/src/templates/template-library-surface.tsx`
- [Product API adapter](https://github.com/ccawmiku/subboost-cf-personal/blob/main/packages/ui/src/product/api-adapter.tsx): `packages/ui/src/product/api-adapter.tsx`

### Conversion engine

- [Source parsers](https://github.com/ccawmiku/subboost-cf-personal/blob/main/packages/core/src/parser/index.ts): `packages/core/src/parser/index.ts`
- [Config model](https://github.com/ccawmiku/subboost-cf-personal/blob/main/packages/core/src/types/config.ts): `packages/core/src/types/config.ts`
- [Mihomo generator](https://github.com/ccawmiku/subboost-cf-personal/blob/main/packages/core/src/generator/index.ts): `packages/core/src/generator/index.ts`
- [Routing rules](https://github.com/ccawmiku/subboost-cf-personal/blob/main/packages/core/src/rules-database.ts): `packages/core/src/rules-database.ts`
- [Template definitions](https://github.com/ccawmiku/subboost-cf-personal/blob/main/packages/core/src/templates/index.ts): `packages/core/src/templates/index.ts`
- [YAML output](https://github.com/ccawmiku/subboost-cf-personal/blob/main/packages/core/src/generator/yaml.ts): `packages/core/src/generator/yaml.ts`

### Subscription services

- [Subscription endpoints](https://github.com/ccawmiku/subboost-cf-personal/blob/main/local/app/api/subscriptions/route.ts): `local/app/api/subscriptions/route.ts`
- [Subscription handlers](https://github.com/ccawmiku/subboost-cf-personal/blob/main/local/src/lib/subscription-route-handlers.ts): `local/src/lib/subscription-route-handlers.ts`
- [Subscription service](https://github.com/ccawmiku/subboost-cf-personal/blob/main/local/src/lib/subscription-service.ts): `local/src/lib/subscription-service.ts`
- [Source import API](https://github.com/ccawmiku/subboost-cf-personal/blob/main/local/app/api/source-import/route.ts): `local/app/api/source-import/route.ts`
- [Import jobs](https://github.com/ccawmiku/subboost-cf-personal/blob/main/local/src/lib/source-import-jobs.ts): `local/src/lib/source-import-jobs.ts`
- [Automatic refresh](https://github.com/ccawmiku/subboost-cf-personal/blob/main/local/src/lib/auto-update-service.ts): `local/src/lib/auto-update-service.ts`
- [Refresh scheduler](https://github.com/ccawmiku/subboost-cf-personal/blob/main/local/app/api/cron/update-subscriptions/route.ts): `local/app/api/cron/update-subscriptions/route.ts`
- [Template endpoints](https://github.com/ccawmiku/subboost-cf-personal/blob/main/local/app/api/templates/route.ts): `local/app/api/templates/route.ts`
- [Subscription data](https://github.com/ccawmiku/subboost-cf-personal/blob/main/local/src/lib/prisma.ts): `local/src/lib/prisma.ts`

### Local platform

- [Admin authentication](https://github.com/ccawmiku/subboost-cf-personal/blob/main/local/app/api/auth/login/route.ts): `local/app/api/auth/login/route.ts`
- [Admin and session data](https://github.com/ccawmiku/subboost-cf-personal/blob/main/local/src/lib/prisma.ts): `local/src/lib/prisma.ts`

### Other components

- **User**
- **Subscription sources**
- **Mihomo client**

## Connections

- User → Home workflow: configures
- Home workflow → Source controls: manages sources
- Source controls → Config store: updates sources
- Config store → Source parsers: parses inputs
- Subscription sources → Source parsers: provides content
- Source parsers → Config model: produces nodes
- Advanced editor → Config store: edits config
- Template library → Config store: applies templates
- Config store → Mihomo generator: generates config
- Routing rules → Mihomo generator: supplies rules
- Template definitions → Mihomo generator: supplies defaults
- Mihomo generator → YAML output: serializes config
- YAML output → Config store: updates preview
- User → Product API adapter: requests service
- Product API adapter → Subscription endpoints: calls endpoints
- Subscription endpoints → Subscription handlers: dispatches
- Subscription handlers → Subscription service: manages subscriptions
- Subscription service → Subscription data: reads and writes
- User → Source import API: starts import
- Source import API → Import jobs: starts or checks
- Import jobs → Subscription sources: fetches source
- Refresh scheduler → Automatic refresh: runs refresh
- Automatic refresh → Subscription data: updates subscriptions
- User → Template endpoints: manages templates
- Template endpoints → Admin and session data: checks admin
- User → Admin authentication: signs in
- Admin authentication → Admin and session data: verifies and records
- YAML output → Mihomo client: delivers configuration
