Skip to content

feat(Docs): Build SveltePress site with localized content and content chrome - #50

Merged
rian-be merged 17 commits into
developmentfrom
feat/docs
Sep 23, 2026
Merged

rian-be merged 17 commits into
developmentfrom
feat/docs

Conversation

@rian-be

@rian-be rian-be commented Sep 23, 2026 •

Copy link
Copy Markdown
Contributor

Summary

Builds the AuthKit SveltePress documentation site with English first localized content (EN + PL), automated locale route generation, and runtime content chrome (ADR + section styling, landing), while fixing content drift against the codebase and modernizing the frontend layer with TypeScript, Tailwind CSS v4, and shared i18n labels.

Documentation Site

  • initializes the SveltePress site (theme default, adapter static, versioned manifests) with EN/PL locales
  • adds automated locale route sync (npm run sync): content trees, ADR collection, schemas, registry, paraglide, version manifests
  • adds docs landing with animated hero, flow hexes, feature cards, and locale aware navigation (ADR vs config third item per locale)
  • localizes navigation, sidebars, landing copy, and all content pages via paraglide messages
  • configures SveltePress versioning and localization plumbing (locales, locale-strategy, site-locales registry)

Content

  • adds guide pages (introduction, quick-start, configuration), reference (REST API, gRPC), schemas, and infrastructure guides in EN + PL
  • documents architecture decisions in Polish alongside English sources
  • relocates ADR sources to Docs/content/en/adr/ so EN/PL content trees stay symmetric
  • fixes drift vs src/: ConnectionStrings:Marten, per plugin Plugins:authkit.devtokens options, real ServiceDiscovery keys, DEV_CERT_* env vars, verify endpoint shape (key request, bool response, anonymous), User role on revoke-rotate, grpcurl --insecure, Swagger dev-only default

Content Chrome

  • introduces AdrChrome and SectionChrome: hero panels with live stats, section navs, per page accent hues, term cards, ADR registry filter with search + area pills
  • extracts shared builders per SOLID: lib/chrome/ (dom, content-hero, section-accents, icons, landing-data, labels) and lib/adr/ (registry filter, section match)
  • centralizes all UI copy in i18n/messages (chrome + sections slugs) new language adds JSON entries, no code changes
  • converts sync scripts and chrome modules to TypeScript with typed contracts

Frontend Styling

  • enables Tailwind CSS v4 (theme tokens, class-based dark variant, preflight excluded to protect theme styles)
  • migrates Landing, IntroCards, LanguageToggle, and static chrome bands to utility classes
  • keeps semantic CSS only where utilities cannot reach (counters, markers, runtime accent vars, markdown-rendered typography)

Sync Pipeline Fixes

  • repairs 404 on EN ADR routes (duplicate content tree shadowing, unwritten relative links) with a post-sync link pass
  • points ADR/s︎chemas sources at relocated content/en/ paths and validates the registry against them

Validation

  • npm run sync
  • npm run build
  • git diff --check

Result

Docs ship as a localized, statically prerendered site whose routes, registry, and translations regenerate from content sources on every build. Content matches the codebase, UI copy and section slugs come from i18n messages, and the presentation layer is shared typed modules styled with Tailwind instead of scattered hand-written CSS.

@coderabbitai

coderabbitai Bot commented Sep 23, 2026

Copy link
Copy Markdown
Contributor

Important

Review skipped

Too many files!

This PR contains 136 files, which is 36 over the limit of 100.

To get a review, reduce the PR to 100 files or fewer by splitting it into smaller PRs or changing its base branch.

Upgrade to a paid plan to raise the limit.

This review couldn't start because sufficient usage credits or metered capacity aren't available. Add credits or update usage-based reviews in the billing tab, then retry.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Advanced

Run ID: 025f0e63-f4e2-4e42-a272-4184fa358aca

📥 Commits

Reviewing files that changed from the base of the PR and between 12b296d and ce70c59.

⛔ Files ignored due to path filters (1)
  • Docs/package-lock.json is excluded by !**/package-lock.json
📒 Files selected for processing (136)
  • .gitignore
  • Docs/README.md
  • Docs/content/en/README.md
  • Docs/content/en/adr/001-centralize-signing-key-management.md
  • Docs/content/en/adr/002-encrypt-keystore-at-rest.md
  • Docs/content/en/adr/003-signing-key-lifecycle-immutable-transitions.md
  • Docs/content/en/adr/004-token-key-bindings-domain.md
  • Docs/content/en/adr/005-public-keys-via-jwks.md
  • Docs/content/en/adr/006-kid-as-generated-guid.md
  • Docs/content/en/adr/007-default-signing-algorithm-rsa-4096.md
  • Docs/content/en/adr/008-standardized-error-response.md
  • Docs/content/en/adr/009-dynamic-plugin-discovery.md
  • Docs/content/en/adr/010-plugin-loading-from-directory.md
  • Docs/content/en/adr/011-keystore-persisted-as-singleton-marten-document.md
  • Docs/content/en/adr/012-token-key-bindings-persisted-in-marten.md
  • Docs/content/en/adr/013-dual-rest-and-grpc-transport.md
  • Docs/content/en/adr/014-error-responses-via-middleware.md
  • Docs/content/en/adr/015-keycloak-external-jwt-authority.md
  • Docs/content/en/adr/016-marten-and-wolverine-infrastructure.md
  • Docs/content/en/adr/017-api-key-credential-extraction-strategies.md
  • Docs/content/en/adr/018-security-scheme-contract-explicit-handling.md
  • Docs/content/en/adr/019-plugin-metadata-attribute.md
  • Docs/content/en/adr/020-devtools-plugin.md
  • Docs/content/en/adr/021-swagger-serving-via-reflection.md
  • Docs/content/en/adr/022-plugin-configuration-context-and-builder.md
  • Docs/content/en/adr/023-plugin-application-pipeline-hooks.md
  • Docs/content/en/adr/024-plugin-lifecycle-and-hosted-services.md
  • Docs/content/en/adr/025-plugin-options-openapi-and-marten-integrations.md
  • Docs/content/en/adr/026-plugin-authentication-and-authorization-hooks.md
  • Docs/content/en/adr/027-devtools-ui-typescript.md
  • Docs/content/en/adr/028-plugin-contract-and-dynamic-loading-architecture.md
  • Docs/content/en/adr/029-structured-plugin-health-contract.md
  • Docs/content/en/adr/README.md
  • Docs/content/en/guide/configuration.md
  • Docs/content/en/guide/introduction.md
  • Docs/content/en/guide/quick-start.md
  • Docs/content/en/infrastructure/docker.md
  • Docs/content/en/infrastructure/keycloak.md
  • Docs/content/en/infrastructure/marten.md
  • Docs/content/en/infrastructure/wolverine.md
  • Docs/content/en/plugins/README.md
  • Docs/content/en/plugins/custom.md
  • Docs/content/en/plugins/devtokens.md
  • Docs/content/en/plugins/devtools.md
  • Docs/content/en/reference/grpc.md
  • Docs/content/en/reference/rest-api.md
  • Docs/content/en/schemas.md
  • Docs/content/pl/README.md
  • Docs/content/pl/adr/001-centralize-signing-key-management.md
  • Docs/content/pl/adr/002-encrypt-keystore-at-rest.md
  • Docs/content/pl/adr/003-signing-key-lifecycle-immutable-transitions.md
  • Docs/content/pl/adr/004-token-key-bindings-domain.md
  • Docs/content/pl/adr/005-public-keys-via-jwks.md
  • Docs/content/pl/adr/006-kid-as-generated-guid.md
  • Docs/content/pl/adr/007-default-signing-algorithm-rsa-4096.md
  • Docs/content/pl/adr/008-standardized-error-response.md
  • Docs/content/pl/adr/009-dynamic-plugin-discovery.md
  • Docs/content/pl/adr/010-plugin-loading-from-directory.md
  • Docs/content/pl/adr/011-keystore-persisted-as-singleton-marten-document.md
  • Docs/content/pl/adr/012-token-key-bindings-persisted-in-marten.md
  • Docs/content/pl/adr/013-dual-rest-and-grpc-transport.md
  • Docs/content/pl/adr/014-error-responses-via-middleware.md
  • Docs/content/pl/adr/015-keycloak-external-jwt-authority.md
  • Docs/content/pl/adr/016-marten-and-wolverine-infrastructure.md
  • Docs/content/pl/adr/017-api-key-credential-extraction-strategies.md
  • Docs/content/pl/adr/018-security-scheme-contract-explicit-handling.md
  • Docs/content/pl/adr/019-plugin-metadata-attribute.md
  • Docs/content/pl/adr/020-devtools-plugin.md
  • Docs/content/pl/adr/021-swagger-serving-via-reflection.md
  • Docs/content/pl/adr/022-plugin-configuration-context-and-builder.md
  • Docs/content/pl/adr/023-plugin-application-pipeline-hooks.md
  • Docs/content/pl/adr/024-plugin-lifecycle-and-hosted-services.md
  • Docs/content/pl/adr/025-plugin-options-openapi-and-marten-integrations.md
  • Docs/content/pl/adr/026-plugin-authentication-and-authorization-hooks.md
  • Docs/content/pl/adr/027-devtools-ui-typescript.md
  • Docs/content/pl/adr/028-plugin-contract-and-dynamic-loading-architecture.md
  • Docs/content/pl/adr/029-structured-plugin-health-contract.md
  • Docs/content/pl/adr/README.md
  • Docs/content/pl/guide/configuration.md
  • Docs/content/pl/guide/introduction.md
  • Docs/content/pl/guide/quick-start.md
  • Docs/content/pl/infrastructure/docker.md
  • Docs/content/pl/infrastructure/keycloak.md
  • Docs/content/pl/infrastructure/marten.md
  • Docs/content/pl/infrastructure/wolverine.md
  • Docs/content/pl/plugins/README.md
  • Docs/content/pl/plugins/custom.md
  • Docs/content/pl/plugins/devtokens.md
  • Docs/content/pl/plugins/devtools.md
  • Docs/content/pl/reference/grpc.md
  • Docs/content/pl/reference/rest-api.md
  • Docs/content/pl/schemas.md
  • Docs/i18n/messages/en.json
  • Docs/i18n/messages/pl.json
  • Docs/package.json
  • Docs/project.inlang/settings.json
  • Docs/scripts/sync-content.ts
  • Docs/scripts/sync/adr.ts
  • Docs/scripts/sync/layouts.ts
  • Docs/scripts/sync/locales.ts
  • Docs/scripts/sync/paraglide.ts
  • Docs/scripts/sync/paths.ts
  • Docs/scripts/sync/routes.ts
  • Docs/scripts/sync/versions.ts
  • Docs/src/app.d.ts
  • Docs/src/app.html
  • Docs/src/hooks.server.ts
  • Docs/src/lib/AdrChrome.svelte
  • Docs/src/lib/IntroCards.svelte
  • Docs/src/lib/Landing.svelte
  • Docs/src/lib/LanguageToggle.svelte
  • Docs/src/lib/SectionChrome.svelte
  • Docs/src/lib/adr/registry-filter.ts
  • Docs/src/lib/adr/section-match.ts
  • Docs/src/lib/chrome/content-hero.ts
  • Docs/src/lib/chrome/dom.ts
  • Docs/src/lib/chrome/icons.ts
  • Docs/src/lib/chrome/labels.ts
  • Docs/src/lib/chrome/landing-data.ts
  • Docs/src/lib/chrome/section-accents.ts
  • Docs/src/lib/locale-messages.ts
  • Docs/src/lib/locale-strategy.ts
  • Docs/src/locales.ts
  • Docs/src/routes/+layout.js
  • Docs/src/routes/+layout.svelte
  • Docs/src/routes/+page.js
  • Docs/src/routes/+page.svelte
  • Docs/src/theme.css
  • Docs/svelte.config.ts
  • Docs/sveltepress.versions.en.json
  • Docs/sveltepress.versions.json
  • Docs/sveltepress.versions.pl.json
  • Docs/tsconfig.json
  • Docs/vite.config.ts
  • README.md
  • Taskfile.yml

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Warning

.coderabbit.yaml has a parsing error

The CodeRabbit configuration file in this repository has a parsing error and default settings were used instead. Please fix the error(s) in the configuration file. You can initialize chat with CodeRabbit to get help with the configuration file.

Parsing errors (1)
Validation error: Invalid option: expected one of "quiet"|"chill"|"assertive" at "reviews.profile"
⚙️ Configuration instructions
  • Please see the configuration documentation for more information.
  • You can also validate your configuration using the online YAML validator.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@rian-be rian-be added documentation Improvements or additions to documentation enhancement New feature or request additive Additive, non-breaking change labels Sep 23, 2026
@codecov

codecov Bot commented Sep 23, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@rian-be
rian-be merged commit 674a344 into development Sep 23, 2026
11 checks passed
@sean6224 sean6224 assigned sean6224 and rian-be and unassigned sean6224 Sep 23, 2026
@rian-be
rian-be deleted the feat/docs branch September 23, 2026 21:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

additive Additive, non-breaking change documentation Improvements or additions to documentation enhancement New feature or request size/XXL

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants