Skip to main content

Konditional

Typed, deterministic feature management for Kotlin applications with explicit JSON trust boundaries.

Why Teams Adopt It

  • Compile-time-safe declarations (Namespace, Feature, typed values).
  • Deterministic evaluation and rollout behavior.
  • Result-based boundary parsing with typed failure semantics.
  • Namespace-scoped runtime operations and rollback controls.

Fast Path

  1. Start Here
  2. Quickstart
  3. First Success Map

Core Example

import io.amichne.konditional.api.evaluate
import io.amichne.konditional.context.AppLocale
import io.amichne.konditional.context.Context
import io.amichne.konditional.context.Platform
import io.amichne.konditional.context.Version
import io.amichne.konditional.core.Namespace
import io.amichne.konditional.core.id.StableId

enum class CheckoutVariant { CLASSIC, SMART }

object AppFeatures : Namespace("app") {
val checkoutVariant by enum<CheckoutVariant, Context>(default = CheckoutVariant.CLASSIC)
}

val ctx = Context(
locale = AppLocale.UNITED_STATES,
platform = Platform.IOS,
appVersion = Version.of(2, 0, 0),
stableId = StableId.of("user-123"),
)

val variant = AppFeatures.checkoutVariant.evaluate(ctx)