Skip to content

Architecture

ATLAS is developed as a modular TypeScript monorepo.

Packages

PackageResponsibility
coreCentral contracts and foundational types
foundationShared infrastructure and general building blocks
runtimeRuntime environment, services and service container
rendererPresentation layer and renderer abstractions
homeassistantIntegration package for Home Assistant workflows
themeShared theme and design foundations
devtoolsDiagnostics and development tools

Architecture Principles

ATLAS follows a few fixed principles:

  • clear separation between contracts and implementations
  • small, replaceable modules
  • testable components
  • dependencies through defined interfaces
  • reference implementations for central services
  • long-term plugin extensibility

Events

The event layer includes:

  • Event
  • EventBus
  • Handler
  • Subscription
  • Filter
  • Publisher
  • Subscriber

DefaultEventBus is the reference implementation.

Services and Dependency Injection

The Runtime Foundation contains the groundwork for:

  • service descriptors
  • service registration
  • dependency injection
  • service containers
  • controlled dependency resolution

Planned Usage

ATLAS is intended to support:

  • Home Assistant tools
  • dashboard components
  • diagnostics applications
  • plugin-based desktop or web applications
  • the planned Lovelace UV Card