Source: https://seerepo.com/r/ory/kratos/built
Markdown source: https://seerepo.com/r/ory/kratos/built.md
Description: kratos is a Go repo built with github.com/urfave/negroni and github.com/ory/graceful. It stores its data in github.com/dgraph-io/ristretto/v2 and SQLite.

# What is kratos built with?

kratos is a Go repo built with github.com/urfave/negroni and github.com/ory/graceful. It stores its data in github.com/dgraph-io/ristretto/v2 and SQLite, reaches it with github.com/ory/pop/v6 and github.com/jmoiron/sqlx, signs people in with golang.org/x/oauth2, github.com/go-webauthn/webauthn, github.com/coreos/go-oidc/v3, github.com/ory/hydra-client-go/v2, github.com/pquerna/otp, and 12 more, connects to GitHub and Google, validates its data with github.com/ory/jsonschema/v3, is tested with github.com/stretchr/testify, github.com/go-faker/faker/v4, github.com/gobuffalo/httptest, github.com/bradleyjkemp/cupaloy/v2, github.com/jarcoal/httpmock, and 6 more, deploys with OpenTelemetry, go.opentelemetry.io/otel/trace, go.opentelemetry.io/otel/sdk, github.com/moby/moby/api, github.com/sirupsen/logrus, and 12 more, and uses github.com/cockroachdb/cockroach-go/v2, github.com/hashicorp/golang-lru/v2, pgx, github.com/jackc/puddle/v2, MySQL, and 2 more. It has 206,262 written lines, with 531 test files.

Read on November 9, 2026, at commit b86338d.

Repository: https://github.com/ory/kratos

## Backend (/)

### Data

- **github.com/dgraph-io/ristretto/v2**: 5 files
- **github.com/cockroachdb/cockroach-go/v2**: 1 file
- **[github.com/hashicorp/golang-lru/v2](https://seerepo.com/uses/githubcom-hashicorp-golang-lru-v2)**: 1 file

### Data access

- **github.com/ory/pop/v6**: 26 files
- **[github.com/jmoiron/sqlx](https://seerepo.com/uses/githubcom-jmoiron-sqlx)**: 1 file

### Sign-in

- **[golang.org/x/oauth2](https://seerepo.com/uses/golangorg-x-oauth2)**: 27 files
- **[github.com/go-webauthn/webauthn](https://seerepo.com/uses/githubcom-go-webauthn-webauthn)**: 9 files
- **[github.com/coreos/go-oidc/v3](https://seerepo.com/uses/githubcom-coreos-go-oidc-v3)**: 8 files
- **github.com/ory/hydra-client-go/v2**: 5 files
- **[github.com/pquerna/otp](https://seerepo.com/uses/githubcom-pquerna-otp)**: 4 files
- **github.com/gorilla/sessions**: 3 files
- **github.com/dghubble/oauth1**: 2 files
- **[github.com/golang-jwt/jwt/v4](https://seerepo.com/uses/githubcom-golang-jwt-jwt-v4)**: 2 files
- **github.com/go-crypt/crypt**: 1 file
- **[github.com/golang-jwt/jwt/v5](https://seerepo.com/uses/githubcom-golang-jwt-jwt-v5)**: 1 file
- **github.com/gorilla/securecookie**: 1 file
- **github.com/lestrrat-go/jwx**: 1 file
- **github.com/lestrrat-go/jwx/v2**: 1 file
- **github.com/rakutentech/jwk-go**: 1 file

### Services

- **[GitHub](https://seerepo.com/uses/github)**: 2 files · [selfservice/strategy/oidc/provider_github.go, line 21](https://github.com/ory/kratos/blob/b86338da04a040247a07f46100a86dcfb3875909/selfservice/strategy/oidc/provider_github.go#L21)
- **[Google](https://seerepo.com/uses/google)**: 2 files · [selfservice/strategy/oidc/provider_github.go, line 21](https://github.com/ory/kratos/blob/b86338da04a040247a07f46100a86dcfb3875909/selfservice/strategy/oidc/provider_github.go#L21)

## Support (/)

### The base

- **github.com/urfave/negroni**: 2 files
- **github.com/ory/graceful**: 1 file

### Validation

- **github.com/ory/jsonschema/v3**: 21 files

### Testing

- **github.com/stretchr/testify**: 296 files
- **github.com/go-faker/faker/v4**: 25 files
- **github.com/gobuffalo/httptest**: 11 files
- **github.com/bradleyjkemp/cupaloy/v2**: 2 files
- **github.com/jarcoal/httpmock**: 2 files
- **github.com/ory/dockertest/v4**: 2 files
- **github.com/golang/mock**: 1 file
- **github.com/mailhog/data**: 1 file

### Deploy

- **[OpenTelemetry](https://seerepo.com/uses/opentelemetry)**: 35 files
- **[go.opentelemetry.io/otel/trace](https://seerepo.com/uses/goopentelemetryio-otel-trace)**: 26 files
- **[go.opentelemetry.io/otel/sdk](https://seerepo.com/uses/goopentelemetryio-otel-sdk)**: 3 files
- **[github.com/moby/moby/api](https://seerepo.com/uses/githubcom-moby-moby-api)**: 2 files
- **[github.com/sirupsen/logrus](https://seerepo.com/uses/githubcom-sirupsen-logrus)**: 1 file
- **[go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp](https://seerepo.com/uses/goopentelemetryio-contrib-instrumentation-net-http-otelhttp)**: 1 file

### Tools

- **github.com/spf13/cobra**: 27 files
- **github.com/davecgh/go-spew**: 3 files
- **github.com/golang/gddo**: 3 files
- **Prettier**: 1 file

### Other

- **github.com/ory/x**
- **github.com/pkg/errors**: 155 files
- **Ory**: 98 files
- **github.com/gofrs/uuid**: 96 files
- **github.com/tidwall/gjson**: 30 files
- **github.com/tidwall/sjson**: 22 files
- **[HashiCorp](https://seerepo.com/uses/hashicorp)**: 19 files
- **github.com/phayes/freeport**: 5 files
- **golang.org/x/crypto**: 5 files
- **golang.org/x/sync**: 5 files
- **github.com/samber/lo**: 4 files
- **github.com/google/go-jsonnet**: 3 files
- **github.com/inhies/go-bytesize**: 3 files
- **github.com/fatih/color**: 2 files
- **github.com/ghodss/yaml**: 2 files
- **github.com/peterhellberg/link**: 2 files
- **github.com/rs/cors**: 2 files
- **github.com/spf13/pflag**: 2 files
- **golang.org/x/text**: 2 files
- **google.golang.org/grpc**: 2 files
- **dario.cat/mergo**: 1 file
- **github.com/bwmarrin/discordgo**: 1 file
- **github.com/cenkalti/backoff**: 1 file
- **github.com/go-openapi/strfmt**: 1 file
- **github.com/knadh/koanf/parsers/json**: 1 file
- **github.com/Masterminds/sprig/v3**: 1 file
- **github.com/mohae/deepcopy**: 1 file
- **github.com/montanaflynn/stats**: 1 file
- **github.com/nyaruka/phonenumbers**: 1 file
- **github.com/slack-go/slack**: 1 file
- **github.com/wI2L/jsondiff**: 1 file
- **golang.org/x/net**: 1 file
- **google.golang.org/protobuf**: 1 file
- **yamljs**: 1 file

## Frontend (oryx)

### Interface

- **gonum.org/v1/plot**: 1 file

## Backend (oryx)

### Data

- **[pgx](https://seerepo.com/uses/pgx)**
- **github.com/dgraph-io/ristretto/v2**: 5 files
- **[SQLite](https://seerepo.com/uses/sqlite)**: 2 files · [oryx/sqlcon/error_sqlite.go, line 10](https://github.com/ory/kratos/blob/b86338da04a040247a07f46100a86dcfb3875909/oryx/sqlcon/error_sqlite.go#L10)
- **github.com/cockroachdb/cockroach-go/v2**: 1 file
- **github.com/jackc/puddle/v2**: 1 file
- **[MySQL](https://seerepo.com/uses/mysql)**: 1 file · [oryx/go.mod, line 21](https://github.com/ory/kratos/blob/b86338da04a040247a07f46100a86dcfb3875909/oryx/go.mod#L21)
- **[Postgres](https://seerepo.com/uses/postgres)**: 1 file · [oryx/go.mod, line 34](https://github.com/ory/kratos/blob/b86338da04a040247a07f46100a86dcfb3875909/oryx/go.mod#L34)

### Data access

- **[github.com/jmoiron/sqlx](https://seerepo.com/uses/githubcom-jmoiron-sqlx)**: 3 files

### Sign-in

- **jwk-go**
- **github.com/go-jose/go-jose/v3**: 5 files
- **github.com/auth0/go-jwt-middleware/v2**: 1 file
- **[github.com/golang-jwt/jwt/v5](https://seerepo.com/uses/githubcom-golang-jwt-jwt-v5)**: 1 file
- **github.com/gorilla/securecookie**: 1 file
- **github.com/lestrrat-go/jwx**: 1 file
- **[golang.org/x/oauth2](https://seerepo.com/uses/golangorg-x-oauth2)**: 1 file

### Services

- **Ory**: 1 file · [oryx/metricsx/middleware.go, line 35](https://github.com/ory/kratos/blob/b86338da04a040247a07f46100a86dcfb3875909/oryx/metricsx/middleware.go#L35)

## Support (oryx)

### The base

- **github.com/urfave/negroni**: 6 files

### Validation

- **github.com/ory/jsonschema/v3**: 12 files

### Testing

- **goleak**
- **httptest**
- **Uber**
- **github.com/stretchr/testify**: 17 files
- **github.com/bradleyjkemp/cupaloy/v2**: 1 file
- **github.com/mailhog/data**: 1 file
- **github.com/ory/dockertest/v4**: 1 file

### Deploy

- **[github.com/prometheus/client_model](https://seerepo.com/uses/githubcom-prometheus-client-model)**
- **[OpenTelemetry](https://seerepo.com/uses/opentelemetry)**: 17 files
- **[go.opentelemetry.io/otel/trace](https://seerepo.com/uses/goopentelemetryio-otel-trace)**: 14 files
- **[Prometheus](https://seerepo.com/uses/prometheus)**: 6 files
- **[github.com/sirupsen/logrus](https://seerepo.com/uses/githubcom-sirupsen-logrus)**: 3 files
- **[go.opentelemetry.io/otel/sdk](https://seerepo.com/uses/goopentelemetryio-otel-sdk)**: 3 files
- **[go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp](https://seerepo.com/uses/goopentelemetryio-contrib-instrumentation-net-http-otelhttp)**: 2 files
- **go.opentelemetry.io/contrib/propagators/b3**: 2 files
- **go.opentelemetry.io/contrib/propagators/jaeger**: 2 files
- **github.com/grpc-ecosystem/go-grpc-prometheus**: 1 file
- **[github.com/moby/moby/client](https://seerepo.com/uses/githubcom-moby-moby-client)**: 1 file
- **go.opentelemetry.io/otel/exporters/jaeger**: 1 file
- **[go.opentelemetry.io/otel/exporters/otlp/otlptrace](https://seerepo.com/uses/goopentelemetryio-otel-exporters-otlp-otlptrace)**: 1 file
- **[go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp](https://seerepo.com/uses/goopentelemetryio-otel-exporters-otlp-otlptrace-otlptracehttp)**: 1 file
- **go.opentelemetry.io/otel/exporters/zipkin**: 1 file
- **SeatGeek**: 1 file

### Tools

- **github.com/spf13/cobra**: 15 files
- **github.com/pkg/profile**: 1 file

### Other

- **deepcopy**
- **github.com/ory/x**
- **go-toml**
- **go.opentelemetry.io/proto/otlp**
- **mergefs**
- **protobuf**
- **rawbytes**
- **websocket**
- **[yaml](https://seerepo.com/uses/yaml)**
- **github.com/pkg/errors**: 67 files
- **github.com/ory/herodot**: 12 files
- **github.com/tidwall/gjson**: 11 files
- **github.com/gofrs/uuid**: 10 files
- **github.com/spf13/pflag**: 8 files
- **golang.org/x/crypto**: 7 files
- **github.com/knadh/koanf/v2**: 5 files
- **[HashiCorp](https://seerepo.com/uses/hashicorp)**: 5 files
- **github.com/tidwall/sjson**: 4 files
- **github.com/knadh/koanf/parsers/json**: 3 files
- **github.com/rs/cors**: 3 files
- **[Google](https://seerepo.com/uses/google)**: 3 files
- **code.dny.dev/ssrf**: 2 files
- **github.com/bmatcuk/doublestar/v2**: 2 files
- **github.com/fsnotify/fsnotify**: 2 files
- **github.com/gobwas/glob**: 2 files
- **github.com/google/go-jsonnet**: 2 files
- **github.com/inhies/go-bytesize**: 2 files
- **github.com/knadh/koanf/maps**: 2 files
- **github.com/knadh/koanf/providers/posflag**: 2 files
- **github.com/peterhellberg/link**: 2 files
- **github.com/spf13/cast**: 2 files
- **go.opentelemetry.io/contrib/instrumentation/net/http/httptrace/otelhttptrace**: 2 files
- **golang.org/x/sync**: 2 files
- **Avast**: 1 file
- **connectrpc.com/connect**: 1 file
- **github.com/evanphx/json-patch/v5**: 1 file
- **github.com/go-openapi/jsonpointer**: 1 file
- **github.com/go-openapi/runtime**: 1 file
- **github.com/goccy/go-yaml**: 1 file
- **github.com/gofrs/flock**: 1 file
- **github.com/knadh/koanf/parsers/toml**: 1 file
- **github.com/knadh/koanf/parsers/yaml**: 1 file
- **github.com/landlock-lsm/go-landlock**: 1 file
- **github.com/Masterminds/sprig/v3**: 1 file
- **go.opentelemetry.io/contrib/samplers/jaegerremote**: 1 file
- **golang.org/x/net**: 1 file

## Other repos with a similar stack

- [prometheus/prometheus](https://seerepo.com/r/prometheus/prometheus/built): Google, golang.org/x/oauth2, OpenTelemetry, go.opentelemetry.io/otel/trace, go.opentelemetry.io/otel/sdk, github.com/moby/moby/api, go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp, github.com/prometheus/client_model, Prometheus, github.com/moby/moby/client, go.opentelemetry.io/otel/exporters/otlp/otlptrace, go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp · [Compare](https://seerepo.com/compare/ory/kratos/vs/prometheus/prometheus)
- [traefik/traefik](https://seerepo.com/r/traefik/traefik/built): GitHub, OpenTelemetry, go.opentelemetry.io/otel/trace, go.opentelemetry.io/otel/sdk, github.com/moby/moby/api, github.com/sirupsen/logrus, github.com/prometheus/client_model, Prometheus, github.com/moby/moby/client, go.opentelemetry.io/otel/exporters/otlp/otlptrace, go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp · [Compare](https://seerepo.com/compare/ory/kratos/vs/traefik/traefik)
- [istio/istio](https://seerepo.com/r/istio/istio/built): github.com/hashicorp/golang-lru/v2, golang.org/x/oauth2, github.com/coreos/go-oidc/v3, OpenTelemetry, go.opentelemetry.io/otel/trace, go.opentelemetry.io/otel/sdk, github.com/prometheus/client_model, Prometheus, github.com/grpc-ecosystem/go-grpc-prometheus, go.opentelemetry.io/otel/exporters/otlp/otlptrace, go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp · [Compare](https://seerepo.com/compare/istio/istio/vs/ory/kratos)
- [photoprism/photoprism](https://seerepo.com/r/photoprism/photoprism/built): pgx, SQLite, MySQL, Postgres, golang.org/x/oauth2, github.com/pquerna/otp, github.com/golang-jwt/jwt/v5, github.com/sirupsen/logrus, github.com/prometheus/client_model, Prometheus · [Compare](https://seerepo.com/compare/ory/kratos/vs/photoprism/photoprism)
- [harness/harness](https://seerepo.com/r/harness/harness/built): github.com/hashicorp/golang-lru/v2, Google, pgx, SQLite, Postgres, github.com/jmoiron/sqlx, golang.org/x/oauth2, github.com/golang-jwt/jwt/v5, github.com/sirupsen/logrus, Prometheus · [Compare](https://seerepo.com/compare/harness/harness/vs/ory/kratos)
- [infiniflow/ragflow](https://seerepo.com/r/infiniflow/ragflow/built): Google, pgx, MySQL, Postgres, golang.org/x/oauth2, github.com/golang-jwt/jwt/v5, OpenTelemetry, go.opentelemetry.io/otel/trace, go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp · [Compare](https://seerepo.com/compare/infiniflow/ragflow/vs/ory/kratos)

## Frequently asked questions

### What language is kratos written in?

kratos is written in Go, with 206,262 written lines.

### What framework does kratos use?

kratos is built with github.com/urfave/negroni and github.com/ory/graceful.

### What database does kratos use?

kratos stores its data in github.com/dgraph-io/ristretto/v2 and SQLite and reaches it with github.com/ory/pop/v6 and github.com/jmoiron/sqlx.

### What does kratos sign people in with?

kratos signs people in with golang.org/x/oauth2, github.com/go-webauthn/webauthn, github.com/coreos/go-oidc/v3, github.com/ory/hydra-client-go/v2, github.com/pquerna/otp, github.com/gorilla/sessions, github.com/dghubble/oauth1, github.com/golang-jwt/jwt/v4, github.com/go-crypt/crypt, github.com/golang-jwt/jwt/v5, github.com/gorilla/securecookie, github.com/lestrrat-go/jwx, github.com/lestrrat-go/jwx/v2, github.com/rakutentech/jwk-go, jwk-go, github.com/go-jose/go-jose/v3, and github.com/auth0/go-jwt-middleware/v2.

### What services does kratos use?

kratos connects to GitHub and Google and uses github.com/cockroachdb/cockroach-go/v2, github.com/hashicorp/golang-lru/v2, pgx, github.com/jackc/puddle/v2, MySQL, Postgres, and Ory.

The proof: [selfservice/strategy/oidc/provider_github.go, line 21](https://github.com/ory/kratos/blob/b86338da04a040247a07f46100a86dcfb3875909/selfservice/strategy/oidc/provider_github.go#L21)

### Does kratos have tests?

Yes. kratos has 531 test files and is tested with github.com/stretchr/testify, github.com/go-faker/faker/v4, github.com/gobuffalo/httptest, github.com/bradleyjkemp/cupaloy/v2, github.com/jarcoal/httpmock, github.com/ory/dockertest/v4, github.com/golang/mock, github.com/mailhog/data, goleak, httptest, and Uber.

### Which repos have a stack like kratos's?

The ones that share most of its stack: prometheus/prometheus, traefik/traefik, and istio/istio.

## What is your repo built with?

Any public repo, with no account: https://seerepo.com/r/owner/repo/built, with the owner and name it has on GitHub.
