Skip to content

Azure-net: an application framework on SvelteKit ​

Azure-net Kit is an opinionated application framework on top of SvelteKit. Svelte owns reactivity and components; SvelteKit owns routes and SSR; Kit connects application lifecycle, request-local dependencies, typed delivery and infrastructure.

The framework is useful when a frontend grows beyond pages that call fetch: several business areas, shared infrastructure, public/account/admin interfaces, forms, localization and user-specific SSR state. It does not require a microservice backend or a separate repository for each context.

Three packages, three responsibilities ​

PackageResponsibilityStart here
@azure-net/kitApplication lifecycle, DI, presenters, schema validation, HTTP, reactive helpers and built-in translationsArchitecture
@azure-net/cliGenerate the architecture and check its boundaries; development dependencyCLI
@azure-net/ui-kitSvelte UI components, modal/notification managers, slider, cropper and browser interactionsUI-kit

UI-kit is optional. CLI does not run in your browser. Kit re-exports @azure-net/tools through @azure-net/kit/tools; Edges and the old standalone translations package are not prerequisites for the current architecture.

Read in this order ​

  1. Architecture: distinguish business contexts from application boundaries.
  2. Contexts and aggregates: place contracts, models, repositories and use cases.
  3. Composition and DI: assemble concrete implementations without coupling consumers to classes.
  4. Presentation: organize scopes, presenters and state.
  5. Installation, bootstrap and translations.
  6. API reference and recipes while implementing features.

Scope and guarantees ​

These pages describe the local 6.x API line, including pre-release APIs. Examples target SvelteKit 3 and Svelte 5; use matching package versions and verify the package's peer dependencies when upgrading. Architecture checks are useful guardrails, not a proof of business correctness or an authorization system.

SSR isolation requires the plugin's request context and correct lifetimes. Register factories at module scope, resolve user-specific instances inside a request/component, and never store a user's mutable data in an unscoped module variable. A lazy factory defers construction; it does not automatically split the JavaScript bundle.