Skip to main content

SDK Development

ThunderID publishes client SDKs from its GitHub organization. Each repository groups the SDKs for one language or platform, so a single repository can publish several packages.

Available SDKs​

SDKRepositoryContents
JavaScriptjavascript-sdksThe @thunderid/* packages: a framework-agnostic core, browser and Node runtimes, and integrations for React, Vue, Next.js, Nuxt, Express, React Router, and TanStack Router
iOSios-sdksThe ThunderID Swift SDK and the ThunderIDSwiftUI component library
Androidandroid-sdksThe dev.thunderid.android Kotlin SDK and the dev.thunderid.compose Jetpack Compose component library
Flutterflutter-sdksThe thunderid_flutter plugin, bridging to the native iOS and Android SDKs

Each repository ships a Quickstart sample app that exercises the full authentication lifecycle. The samples are what the end-to-end suites drive, so they are the fastest way to see an SDK working against a live server.

How the Product Uses the SDKs​

The ThunderID frontend consumes two of the JavaScript packages:

  • @thunderid/react provides the authentication context, hooks, and identity state used throughout the Gate and Console apps.
  • @thunderid/react-router builds on it to add route-level guards and redirect helpers for pages that require a session.

Both are consumed as published npm packages in a normal build. Clone an SDK repository when you need to develop or debug the SDK itself, or to test the product against unreleased SDK changes.

Contributing to an SDK​

Every change goes through the same contract before it is fixed here, an idea, a capability, an error, or a component. See Development Process for the specification and threat model it is checked against, the workflow that gets a change through them, and the sdk-development skill that automates both for an AI coding agent.

Each SDK also has its own development and testing guide:

Feature Parity Across the SDKs​

A capability is rarely a single SDK change. The same thing usually has to exist in every SDK where it applies before a developer can rely on it, so each pull request in an SDK repository answers whether the change needs to ship in the others too. A required check holds the pull request until it does.

See Cross-SDK Feature Parity for the labels, what accounts for a sibling SDK, and how to record a deferral.

Explore with AI

ThunderID LogoThunderID Logo

Product

DocsAPIsSDKs
© Copyright Linux Foundation Europe.For web site terms of use, trademark policy and other project policies please see https://linuxfoundation.eu/en/policies.