Source: https://seerepo.com/r/gitpod-io/gitpod/built
Markdown source: https://seerepo.com/r/gitpod-io/gitpod/built.md
Description: gitpod is a Go repo built with net/http, chi, Gorilla, sigs.k8s.io/controller-runtime, Caddy, and 5 more.

# What is gitpod built with?

gitpod is a Go repo built with net/http, chi, Gorilla, sigs.k8s.io/controller-runtime, Caddy, and 5 more. It stores its data in HashiCorp, github.com/go-redsync/redsync/v4, and MySQL, reaches it with gorm.io/gorm, TypeORM, gorm.io/datatypes, and gorm.io/plugin/opentelemetry, signs people in with github.com/golang-jwt/jwt/v5, golang.org/x/oauth2, github.com/coreos/go-oidc/v3, github.com/zalando/go-keyring, @jmondi/oauth2-server, and 2 more, takes payments with Stripe, stores files in AWS S3, connects to Google and GitHub, makes its content with react-markdown, js-yaml, and yaml, validates its data with github.com/go-playground/validator/v10, github.com/xeipuuv/gojsonschema, validator, Ajv, and Zod, is tested with redismock, github.com/stretchr/testify, github.com/golang/mock, github.com/onsi/ginkgo/v2, github.com/onsi/gomega, and 11 more, deploys with github.com/sirupsen/logrus, Prometheus, containerd, github.com/grpc-ecosystem/go-grpc-prometheus, go.uber.org/zap, and 19 more, and uses go-redis, s3, Redis, github.com/aws/aws-sdk-go-v2/feature/s3/manager, github.com/containers/storage, and 3 more. It has 402,811 written lines, with 427 test files.

Read on November 9, 2026, at commit beff6f3.

Repository: https://github.com/gitpod-io/gitpod

## Frontend (/)

### Interface

- **[github.com/olekukonko/tablewriter](https://seerepo.com/uses/githubcom-olekukonko-tablewriter)**: 5 files
- **github.com/manifoldco/promptui**: 4 files
- **[github.com/cheggaaa/pb/v3](https://seerepo.com/uses/githubcom-cheggaaa-pb-v3)**: 1 file
- **github.com/pterm/pterm**: 1 file

## Backend (/)

### The base

- **[net/http](https://seerepo.com/uses/net-http)**
- **[chi](https://seerepo.com/uses/chi)**: 3 files
- **[Gorilla](https://seerepo.com/uses/gorilla)**: 2 files

### Data

- **[go-redis](https://seerepo.com/uses/go-redis)**
- **[s3](https://seerepo.com/uses/s3)**
- **[Redis](https://seerepo.com/uses/redis)**: 13 files · [components/server/src/messaging/redis-subscriber.ts, line 29](https://github.com/gitpod-io/gitpod/blob/beff6f390122506f5edd9342b00b8d45063ccdfa/components/server/src/messaging/redis-subscriber.ts#L29)
- **[HashiCorp](https://seerepo.com/uses/hashicorp)**: 7 files
- **github.com/go-redsync/redsync/v4**: 3 files
- **[MySQL](https://seerepo.com/uses/mysql)**: 3 files · [components/gitpod-db/src/config.ts, line 10](https://github.com/gitpod-io/gitpod/blob/beff6f390122506f5edd9342b00b8d45063ccdfa/components/gitpod-db/src/config.ts#L10)
- **[github.com/aws/aws-sdk-go-v2/feature/s3/manager](https://seerepo.com/uses/githubcom-aws-aws-sdk-go-v2-feature-s3-manager)**: 1 file
- **github.com/containers/storage**: 1 file

### Data access

- **[gorm.io/gorm](https://seerepo.com/uses/gormio-gorm)**: 7 files

### Sign-in

- **[github.com/golang-jwt/jwt/v5](https://seerepo.com/uses/githubcom-golang-jwt-jwt-v5)**: 9 files
- **[golang.org/x/oauth2](https://seerepo.com/uses/golangorg-x-oauth2)**: 6 files
- **[github.com/coreos/go-oidc/v3](https://seerepo.com/uses/githubcom-coreos-go-oidc-v3)**: 2 files
- **github.com/zalando/go-keyring**: 2 files

### Services

- **[Google](https://seerepo.com/uses/google)**: 4 files · [dev/preview/previewctl/pkg/preview/preview.go, line 17](https://github.com/gitpod-io/gitpod/blob/beff6f390122506f5edd9342b00b8d45063ccdfa/dev/preview/previewctl/pkg/preview/preview.go#L17)
- **[GitHub](https://seerepo.com/uses/github)**: 3 files · [components/server/src/github/github-auth-provider.ts, line 12](https://github.com/gitpod-io/gitpod/blob/beff6f390122506f5edd9342b00b8d45063ccdfa/components/server/src/github/github-auth-provider.ts#L12)
- **[Stripe](https://seerepo.com/uses/stripe)**: 3 files · [components/server/src/billing/stripe-service.ts, line 8](https://github.com/gitpod-io/gitpod/blob/beff6f390122506f5edd9342b00b8d45063ccdfa/components/server/src/billing/stripe-service.ts#L8)
- **[AWS S3](https://seerepo.com/uses/aws-s3)**: 2 files · [components/content-service/pkg/storage/storage.go, line 19](https://github.com/gitpod-io/gitpod/blob/beff6f390122506f5edd9342b00b8d45063ccdfa/components/content-service/pkg/storage/storage.go#L19)
- **[MinIO](https://seerepo.com/uses/minio)**: 1 file · [components/content-service/pkg/storage/minio.go, line 18](https://github.com/gitpod-io/gitpod/blob/beff6f390122506f5edd9342b00b8d45063ccdfa/components/content-service/pkg/storage/minio.go#L18)

## Support (/)

### The base

- **[sigs.k8s.io/controller-runtime](https://seerepo.com/uses/sigsk8sio-controller-runtime)**: 16 files
- **Caddy**: 12 files

### Validation

- **[github.com/go-playground/validator/v10](https://seerepo.com/uses/githubcom-go-playground-validator-v10)**: 4 files
- **github.com/xeipuuv/gojsonschema**: 1 file

### Testing

- **redismock**
- **github.com/stretchr/testify**: 71 files
- **github.com/golang/mock**: 22 files
- **github.com/onsi/ginkgo/v2**: 7 files
- **github.com/onsi/gomega**: 7 files
- **github.com/alicebob/miniredis/v2**: 5 files
- **github.com/AdaLogics/go-fuzz-headers**: 1 file
- **github.com/fsouza/fake-gcs-server**: 1 file
- **github.com/go-test/deep**: 1 file
- **github.com/Pallinder/go-randomdata**: 1 file

### Deploy

- **[github.com/sirupsen/logrus](https://seerepo.com/uses/githubcom-sirupsen-logrus)**: 97 files
- **[Prometheus](https://seerepo.com/uses/prometheus)**: 48 files
- **[containerd](https://seerepo.com/uses/containerd)**: 20 files
- **github.com/grpc-ecosystem/go-grpc-prometheus**: 6 files
- **[go.uber.org/zap](https://seerepo.com/uses/gouberorg-zap)**: 6 files
- **Helm**: 6 files
- **[github.com/go-logr/logr](https://seerepo.com/uses/githubcom-go-logr-logr)**: 4 files
- **[github.com/aws/aws-sdk-go-v2](https://seerepo.com/uses/githubcom-aws-aws-sdk-go-v2)**: 3 files
- **github.com/opencontainers/runc**: 3 files
- **[github.com/aws/aws-sdk-go-v2/config](https://seerepo.com/uses/githubcom-aws-aws-sdk-go-v2-config)**: 2 files
- **github.com/aws/aws-sdk-go-v2/service/ecr**: 2 files
- **github.com/containerd/containerd/v2**: 2 files
- **[github.com/prometheus/client_model](https://seerepo.com/uses/githubcom-prometheus-client-model)**: 2 files
- **github.com/uber/jaeger-client-go**: 2 files
- **io.prometheus:simpleclient_pushgateway**: 2 files
- **[k8s.io/klog/v2](https://seerepo.com/uses/k8sio-klog-v2)**: 2 files
- **github.com/bombsimon/logrusr/v4**: 1 file
- **github.com/docker/docker**: 1 file
- **github.com/hashicorp/terraform-exec**: 1 file
- **github.com/lmittmann/tint**: 1 file
- **[github.com/prometheus/common](https://seerepo.com/uses/githubcom-prometheus-common)**: 1 file
- **gopkg.in/op/go-logging.v1**: 1 file

### Tools

- **github.com/spf13/cobra**: 231 files
- **[Docker](https://seerepo.com/uses/docker)**: 5 files
- **github.com/aws/smithy-go**: 3 files
- **github.com/moby/buildkit**: 2 files
- **github.com/urfave/cli/v2**: 2 files
- **github.com/mikefarah/yq/v4**: 1 file
- **k8s.io/kubectl**: 1 file

### Other

- **commons-math3**
- **google.golang.org/genproto/googleapis/api**
- **grpc-netty-shaded**
- **grpc-protobuf**
- **javax.annotation-api**
- **okhttp**
- **structtag**
- **k8s.io/apimachinery**: 207 files
- **k8s.io/api**: 158 files
- **golang.org/x/xerrors**: 137 files
- **google.golang.org/grpc**: 66 files
- **k8s.io/utils**: 52 files
- **k8s.io/client-go**: 46 files
- **github.com/opentracing/opentracing-go**: 35 files
- **google.golang.org/protobuf**: 23 files
- **golang.org/x/sys**: 18 files
- **github.com/google/uuid**: 17 files
- **sigs.k8s.io/yaml**: 13 files
- **github.com/distribution/reference**: 12 files
- **github.com/cockroachdb/errors**: 10 files
- **github.com/opencontainers/go-digest**: 10 files
- **github.com/opencontainers/image-spec**: 10 files
- **golang.org/x/sync**: 8 files
- **github.com/grpc-ecosystem/go-grpc-middleware**: 7 files
- **golang.org/x/crypto**: 7 files
- **github.com/opencontainers/runtime-spec**: 6 files
- **github.com/sourcegraph/jsonrpc2**: 6 files
- **github.com/spf13/viper**: 6 files
- **gopkg.in/yaml.v2**: 6 files
- **github.com/grpc-ecosystem/grpc-gateway/v2**: 5 files
- **github.com/cenkalti/backoff/v4**: 4 files
- **github.com/creack/pty**: 4 files
- **github.com/gorilla/handlers**: 4 files
- **github.com/hashicorp/go-retryablehttp**: 4 files
- **github.com/spf13/pflag**: 4 files
- **golang.org/x/term**: 4 files
- **gopkg.in/yaml.v3**: 4 files
- **io.grpc:grpc-stub**: 4 files
- **github.com/alecthomas/repr**: 3 files
- **github.com/docker/distribution**: 3 files
- **github.com/fsnotify/fsnotify**: 3 files
- **github.com/gookit/color**: 3 files
- **github.com/improbable-eng/grpc-web**: 3 files
- **github.com/Masterminds/semver/v3**: 3 files
- **github.com/prometheus/procfs**: 3 files
- **github.com/robfig/cron**: 3 files
- **golang.org/x/net**: 3 files
- **io.grpc:grpc-core**: 3 files
- **github.com/buger/jsonparser**: 2 files
- **github.com/go-errors/errors**: 2 files
- **github.com/golang/protobuf**: 2 files
- **github.com/google/nftables**: 2 files
- **github.com/google/shlex**: 2 files
- **github.com/gorilla/websocket**: 2 files
- **github.com/imdario/mergo**: 2 files
- **github.com/ipfs/boxo**: 2 files
- **github.com/mattn/go-isatty**: 2 files
- **github.com/mitchellh/go-homedir**: 2 files
- **github.com/PaesslerAG/gval**: 2 files
- **github.com/pkg/errors**: 2 files
- **github.com/rs/cors**: 2 files
- **github.com/seccomp/libseccomp-golang**: 2 files
- **github.com/skratchdot/open-golang**: 2 files
- **github.com/soheilhy/cmux**: 2 files
- **github.com/vishvananda/netlink**: 2 files
- **golang.org/x/time**: 2 files
- **javax.websocket:javax.websocket-api**: 2 files
- **@grpc/grpc-js**: 1 file
- **com.google.api.grpc:proto-google-common-protos**: 1 file
- **github.com/cenkalti/backoff**: 1 file
- **github.com/cespare/xxhash/v2**: 1 file
- **github.com/containerd/platforms**: 1 file
- **github.com/containerd/typeurl/v2**: 1 file
- **github.com/go-git/go-git/v5**: 1 file
- **github.com/google/cel-go**: 1 file
- **github.com/google/go-containerregistry**: 1 file
- **github.com/google/go-jsonnet**: 1 file
- **github.com/google/tcpproxy**: 1 file
- **github.com/h2non/filetype**: 1 file
- **github.com/hashicorp/go-version**: 1 file
- **github.com/hpcloud/tail**: 1 file
- **github.com/kevinburke/ssh_config**: 1 file
- **github.com/Masterminds/semver**: 1 file
- **github.com/Masterminds/sprig**: 1 file
- **github.com/mitchellh/reflectwalk**: 1 file
- **github.com/moby/sys/mountinfo**: 1 file
- **github.com/multiformats/go-multiaddr**: 1 file
- **github.com/segmentio/analytics-go/v3**: 1 file
- **github.com/shirou/gopsutil**: 1 file
- **github.com/vishvananda/netns**: 1 file
- **golang.org/x/exp**: 1 file
- **google-protobuf**: 1 file
- **IPFS**: 1 file
- **k8s.io/apiextensions-apiserver**: 1 file
- **node-fetch**: 1 file

## Support (components/content-service-api/typescript)

### Other

- **google-protobuf**: 6 files
- **@grpc/grpc-js**: 5 files

## Frontend (components/dashboard)

### The base

- **[React](https://seerepo.com/uses/react)**: 251 files
- **[react-router-dom](https://seerepo.com/uses/react-router-dom)**: 35 files

### Styles

- **[Tailwind CSS](https://seerepo.com/uses/tailwind-css)**
- **[classnames](https://seerepo.com/uses/classnames)**: 23 files
- **[class-variance-authority](https://seerepo.com/uses/class-variance-authority)**: 2 files
- **[tailwind-merge](https://seerepo.com/uses/tailwind-merge)**: 1 file

### Interface

- **[Radix UI](https://seerepo.com/uses/radix-ui)**: 10 files
- **[react-datepicker](https://seerepo.com/uses/react-datepicker)**: 2 files
- **[react-error-boundary](https://seerepo.com/uses/react-error-boundary)**: 2 files
- **@mux/mux-player-react**: 1 file
- **react-focus-on**: 1 file
- **react-popper**: 1 file
- **[xterm](https://seerepo.com/uses/xterm)**: 1 file

### Icons

- **[Lucide](https://seerepo.com/uses/lucide)**: 32 files

## Backend (components/dashboard)

### Data

- **[idb-keyval](https://seerepo.com/uses/idb-keyval)**: 1 file

### Services

- **[Stripe](https://seerepo.com/uses/stripe)**: 3 files · [components/server/src/billing/stripe-service.ts, line 8](https://github.com/gitpod-io/gitpod/blob/beff6f390122506f5edd9342b00b8d45063ccdfa/components/server/src/billing/stripe-service.ts#L8)

## Support (components/dashboard)

### Content

- **[react-markdown](https://seerepo.com/uses/react-markdown)**: 1 file

### Validation

- **[validator](https://seerepo.com/uses/validator)**: 2 files

### Testing

- **Testing Library**: 1 file

### Tools

- **@tanstack/react-query-devtools**: 1 file

### Other

- **[TanStack](https://seerepo.com/uses/tanstack)**: 73 files
- **@bufbuild/protobuf**: 38 files
- **dayjs**: 27 files
- **connectrpc**: 13 files
- **Lodash**: 6 files
- **uuid**: 6 files
- **file-saver**: 2 files
- **pretty-bytes**: 2 files
- **use-deep-compare-effect**: 2 files
- **configcat-js**: 1 file
- **countries-list**: 1 file
- **deepmerge**: 1 file
- **js-cookie**: 1 file
- **node-fetch**: 1 file
- **query-string**: 1 file
- **setimmediate**: 1 file
- **ua-parser-js**: 1 file

## Backend (components/gitpod-db)

### Data

- **[MySQL](https://seerepo.com/uses/mysql)**: 4 files · [components/gitpod-db/src/config.ts, line 10](https://github.com/gitpod-io/gitpod/blob/beff6f390122506f5edd9342b00b8d45063ccdfa/components/gitpod-db/src/config.ts#L10)
- **[Redis](https://seerepo.com/uses/redis)**: 2 files · [components/server/src/messaging/redis-subscriber.ts, line 29](https://github.com/gitpod-io/gitpod/blob/beff6f390122506f5edd9342b00b8d45063ccdfa/components/server/src/messaging/redis-subscriber.ts#L29)

### Data access

- **TypeORM**: 260 files
- **[gorm.io/gorm](https://seerepo.com/uses/gormio-gorm)**: 12 files
- **gorm.io/datatypes**: 5 files
- **gorm.io/plugin/opentelemetry**: 1 file

### Sign-in

- **@jmondi/oauth2-server**: 4 files

## Support (components/gitpod-db)

### Testing

- **github.com/stretchr/testify**: 29 files
- **Chai**: 16 files
- **Mocha**: 1 file

### Deploy

- **[prom-client](https://seerepo.com/uses/prom-client)**: 2 files
- **[github.com/sirupsen/logrus](https://seerepo.com/uses/githubcom-sirupsen-logrus)**: 1 file

### Other

- **inversify**: 26 files
- **[Google](https://seerepo.com/uses/google)**: 11 files
- **uuid**: 8 files
- **reflect-metadata**: 2 files
- **google.golang.org/grpc**: 1 file
- **google.golang.org/protobuf**: 1 file
- **opentracing**: 1 file
- **slugify**: 1 file

## Backend (components/gitpod-protocol)

### The base

- **[Express](https://seerepo.com/uses/express)**: 1 file · [in components/server/package.json](https://github.com/gitpod-io/gitpod/blob/beff6f390122506f5edd9342b00b8d45063ccdfa/components/server/package.json)

## Support (components/gitpod-protocol)

### Content

- **[js-yaml](https://seerepo.com/uses/js-yaml)**: 1 file

### Validation

- **[Ajv](https://seerepo.com/uses/ajv)**: 1 file

### Testing

- **mock**
- **Chai**: 17 files
- **chai-subset**: 1 file

### Deploy

- **[prom-client](https://seerepo.com/uses/prom-client)**: 3 files
- **[github.com/sirupsen/logrus](https://seerepo.com/uses/githubcom-sirupsen-logrus)**: 2 files
- **Jaeger**: 2 files

### Other

- **inversify**: 9 files
- **vscode-jsonrpc**: 5 files
- **javax.websocket:javax.websocket-api**: 3 files
- **vscode-ws-jsonrpc**: 3 files
- **github.com/gorilla/websocket**: 2 files
- **parse-duration**: 2 files
- **@bufbuild/protobuf**: 1 file
- **@connectrpc/connect**: 1 file
- **@grpc/grpc-js**: 1 file
- **analytics-node**: 1 file
- **cookie**: 1 file
- **event-iterator**: 1 file
- **github.com/cenkalti/backoff/v4**: 1 file
- **github.com/sourcegraph/jsonrpc2**: 1 file
- **nice-grpc-common**: 1 file
- **opentracing**: 1 file
- **reconnecting-websocket**: 1 file
- **reflect-metadata**: 1 file
- **url**: 1 file
- **util**: 1 file
- **uuid**: 1 file
- **ws**: 1 file

## Support (components/ide-service-api/typescript)

### Other

- **nice-grpc-common**: 1 file

## Support (components/ide/gha-update-image)

### The base

- **Bun**: 7 files

### Content

- **[yaml](https://seerepo.com/uses/yaml)**: 1 file

### Validation

- **[Zod](https://seerepo.com/uses/zod)**: 3 files

### Other

- **Axios**: 2 files
- **SemVer**: 2 files
- **util**: 2 files

## Support (components/image-builder-api/typescript)

### Other

- **@grpc/grpc-js**: 3 files
- **google-protobuf**: 2 files
- **inversify**: 1 file
- **opentracing**: 1 file
- **util**: 1 file

## Support (components/public-api/typescript-common)

### Testing

- **Chai**: 5 files

### Other

- **@bufbuild/protobuf**: 3 files
- **@connectrpc/connect**: 1 file
- **reflect-metadata**: 1 file
- **url**: 1 file

## Support (components/public-api/typescript)

### Other

- **@bufbuild/protobuf**: 56 files

## Backend (components/server)

### The base

- **[Express](https://seerepo.com/uses/express)**: 41 files · [in components/server/package.json](https://github.com/gitpod-io/gitpod/blob/beff6f390122506f5edd9342b00b8d45063ccdfa/components/server/package.json)

### Data

- **[Redis](https://seerepo.com/uses/redis)**: 6 files · [components/server/src/messaging/redis-subscriber.ts, line 29](https://github.com/gitpod-io/gitpod/blob/beff6f390122506f5edd9342b00b8d45063ccdfa/components/server/src/messaging/redis-subscriber.ts#L29)

### Data access

- **TypeORM**: 1 file

### Sign-in

- **@jmondi/oauth2-server**: 5 files
- **[jsonwebtoken](https://seerepo.com/uses/jsonwebtoken)**: 2 files
- **[Passport](https://seerepo.com/uses/passport)**: 2 files

### Services

- **Bitbucket**: 6 files · [components/server/src/bitbucket/bitbucket-api-factory.ts, line 8](https://github.com/gitpod-io/gitpod/blob/beff6f390122506f5edd9342b00b8d45063ccdfa/components/server/src/bitbucket/bitbucket-api-factory.ts#L8)
- **[GitHub](https://seerepo.com/uses/github)**: 2 files · [components/server/src/github/github-auth-provider.ts, line 12](https://github.com/gitpod-io/gitpod/blob/beff6f390122506f5edd9342b00b8d45063ccdfa/components/server/src/github/github-auth-provider.ts#L12)
- **[Stripe](https://seerepo.com/uses/stripe)**: 1 file · [components/server/src/billing/stripe-service.ts, line 8](https://github.com/gitpod-io/gitpod/blob/beff6f390122506f5edd9342b00b8d45063ccdfa/components/server/src/billing/stripe-service.ts#L8)

## Support (components/server)

### The base

- **Probot**: 2 files

### Content

- **[js-yaml](https://seerepo.com/uses/js-yaml)**: 1 file

### Validation

- **[validator](https://seerepo.com/uses/validator)**: 1 file

### Testing

- **Chai**: 70 files
- **Mocha**: 24 files
- **supertest**: 1 file

### Deploy

- **[prom-client](https://seerepo.com/uses/prom-client)**: 4 files

### Other

- **inversify**: 164 files
- **uuid**: 26 files
- **connectrpc**: 17 files
- **url**: 17 files
- **@grpc/grpc-js**: 9 files
- **opentracing**: 7 files
- **node-fetch**: 6 files
- **rate-limiter-flexible**: 6 files
- **ws**: 6 files
- **vscode-jsonrpc**: 3 files
- **@bufbuild/protobuf**: 2 files
- **azure-devops-node-api**: 2 files
- **deepmerge**: 2 files
- **redlock**: 2 files
- **@gitbeaker/rest**: 1 file
- **body-parser**: 1 file
- **buffer**: 1 file
- **cookie-parser**: 1 file
- **countries-list**: 1 file
- **fs-extra**: 1 file
- **minimatch**: 1 file
- **nice-grpc**: 1 file
- **nice-grpc-common**: 1 file
- **process**: 1 file
- **reflect-metadata**: 1 file
- **ts-deepmerge**: 1 file
- **twilio**: 1 file
- **util**: 1 file
- **vscode-ws-jsonrpc**: 1 file

## Support (components/spicedb/typescript)

### Other

- **long**: 5 files

## Support (components/supervisor/frontend)

### Other

- **reconnecting-websocket**: 1 file
- **uuid**: 1 file

## Support (components/usage-api/typescript)

### Other

- **long**: 4 files
- **nice-grpc-common**: 2 files

## Support (components/ws-daemon-api/typescript)

### Other

- **@grpc/grpc-js**: 2 files
- **google-protobuf**: 2 files

## Support (components/ws-manager-api/typescript)

### Testing

- **Chai**: 1 file

### Other

- **@grpc/grpc-js**: 4 files
- **google-protobuf**: 2 files
- **inversify**: 2 files
- **opentracing**: 1 file
- **reflect-metadata**: 1 file

## Support (components/ws-manager-bridge-api/typescript)

### Other

- **@grpc/grpc-js**: 1 file
- **google-protobuf**: 1 file

## Backend (components/ws-manager-bridge)

### The base

- **[Express](https://seerepo.com/uses/express)**: 2 files · [in components/server/package.json](https://github.com/gitpod-io/gitpod/blob/beff6f390122506f5edd9342b00b8d45063ccdfa/components/server/package.json)

### Data

- **[Redis](https://seerepo.com/uses/redis)**: 1 file · [components/server/src/messaging/redis-subscriber.ts, line 29](https://github.com/gitpod-io/gitpod/blob/beff6f390122506f5edd9342b00b8d45063ccdfa/components/server/src/messaging/redis-subscriber.ts#L29)

## Support (components/ws-manager-bridge)

### Testing

- **Chai**: 2 files

### Deploy

- **[prom-client](https://seerepo.com/uses/prom-client)**: 2 files

### Other

- **inversify**: 11 files
- **@grpc/grpc-js**: 4 files
- **reflect-metadata**: 2 files
- **google-protobuf**: 1 file
- **opentracing**: 1 file
- **ts-deepmerge**: 1 file

## Backend (components/ws-proxy)

### The base

- **[Gorilla](https://seerepo.com/uses/gorilla)**: 5 files

## Support (components/ws-proxy)

### The base

- **[sigs.k8s.io/controller-runtime](https://seerepo.com/uses/sigsk8sio-controller-runtime)**: 4 files

### Testing

- **[Google](https://seerepo.com/uses/google)**: 4 files

### Deploy

- **[github.com/sirupsen/logrus](https://seerepo.com/uses/githubcom-sirupsen-logrus)**: 2 files
- **[Prometheus](https://seerepo.com/uses/prometheus)**: 2 files

### Tools

- **github.com/spf13/cobra**: 2 files

### Other

- **golang.org/x/xerrors**: 6 files
- **google.golang.org/grpc**: 2 files
- **k8s.io/apimachinery**: 2 files
- **k8s.io/client-go**: 2 files
- **github.com/gorilla/handlers**: 1 file
- **github.com/gorilla/websocket**: 1 file
- **github.com/klauspost/cpuid/v2**: 1 file
- **golang.org/x/net**: 1 file
- **k8s.io/api**: 1 file

## Other repos with a similar stack

- [infiniflow/ragflow](https://seerepo.com/r/infiniflow/ragflow/built): net/http, go-redis, s3, Redis, MySQL, Google, AWS S3, MinIO, React, gorm.io/gorm, github.com/golang-jwt/jwt/v5, golang.org/x/oauth2, go.uber.org/zap, github.com/aws/aws-sdk-go-v2, github.com/aws/aws-sdk-go-v2/config, Tailwind CSS, classnames, class-variance-authority, tailwind-merge, Radix UI, Lucide, react-markdown, Ajv, Zod · [Compare](https://seerepo.com/compare/gitpod-io/gitpod/vs/infiniflow/ragflow)
- [multica-ai/multica](https://seerepo.com/r/multica-ai/multica/built): net/http, chi, go-redis, s3, Redis, React, react-router-dom, github.com/golang-jwt/jwt/v5, Prometheus, github.com/aws/aws-sdk-go-v2, github.com/aws/aws-sdk-go-v2/config, github.com/prometheus/client_model, github.com/lmittmann/tint, Tailwind CSS, class-variance-authority, tailwind-merge, react-markdown, yaml, Zod · [Compare](https://seerepo.com/compare/gitpod-io/gitpod/vs/multica-ai/multica)
- [QuantumNous/new-api](https://seerepo.com/r/QuantumNous/new-api/built): Redis, MySQL, Stripe, React, gorm.io/gorm, github.com/golang-jwt/jwt/v5, golang.org/x/oauth2, github.com/coreos/go-oidc/v3, github.com/go-playground/validator/v10, Prometheus, github.com/aws/aws-sdk-go-v2, Tailwind CSS, class-variance-authority, tailwind-merge, Lucide, yaml, Zod · [Compare](https://seerepo.com/compare/gitpod-io/gitpod/vs/QuantumNous/new-api)
- [paperclipai/paperclip](https://seerepo.com/r/paperclipai/paperclip/built): Google, AWS S3, React, react-router-dom, Express, Tailwind CSS, class-variance-authority, tailwind-merge, Radix UI, xterm, Lucide, react-markdown, Ajv, yaml, Zod · [Compare](https://seerepo.com/compare/gitpod-io/gitpod/vs/paperclipai/paperclip)
- [remotion-dev/remotion](https://seerepo.com/r/remotion-dev/remotion/built): s3, AWS S3, React, Express, Bun, github.com/go-playground/validator/v10, github.com/aws/aws-sdk-go-v2, github.com/aws/aws-sdk-go-v2/config, Tailwind CSS, class-variance-authority, tailwind-merge, Radix UI, Lucide, Zod · [Compare](https://seerepo.com/compare/gitpod-io/gitpod/vs/remotion-dev/remotion)
- [twentyhq/twenty](https://seerepo.com/r/twentyhq/twenty/built): Redis, Google, Stripe, AWS S3, React, react-router-dom, idb-keyval, Express, react-error-boundary, react-markdown, TypeORM, Zod, jsonwebtoken, Passport · [Compare](https://seerepo.com/compare/gitpod-io/gitpod/vs/twentyhq/twenty)

## Frequently asked questions

### What language is gitpod written in?

gitpod is written in Go, with 402,811 written lines.

### What framework does gitpod use?

gitpod is built with net/http, chi, Gorilla, sigs.k8s.io/controller-runtime, Caddy, React, react-router-dom, Express, Bun, and Probot.

### What database does gitpod use?

gitpod stores its data in HashiCorp, github.com/go-redsync/redsync/v4, and MySQL and reaches it with gorm.io/gorm, TypeORM, gorm.io/datatypes, and gorm.io/plugin/opentelemetry.

### What does gitpod sign people in with?

gitpod signs people in with github.com/golang-jwt/jwt/v5, golang.org/x/oauth2, github.com/coreos/go-oidc/v3, github.com/zalando/go-keyring, @jmondi/oauth2-server, jsonwebtoken, and Passport.

### What does gitpod take payments with?

gitpod takes payments with Stripe.

The proof: [components/server/src/billing/stripe-service.ts, line 8](https://github.com/gitpod-io/gitpod/blob/beff6f390122506f5edd9342b00b8d45063ccdfa/components/server/src/billing/stripe-service.ts#L8)

### What services does gitpod use?

gitpod stores files in AWS S3, connects to Google and GitHub, and uses go-redis, s3, Redis, github.com/aws/aws-sdk-go-v2/feature/s3/manager, github.com/containers/storage, MinIO, idb-keyval, and Bitbucket.

The proof: [components/content-service/pkg/storage/storage.go, line 19](https://github.com/gitpod-io/gitpod/blob/beff6f390122506f5edd9342b00b8d45063ccdfa/components/content-service/pkg/storage/storage.go#L19)

### Does gitpod have tests?

Yes. gitpod has 427 test files and is tested with redismock, github.com/stretchr/testify, github.com/golang/mock, github.com/onsi/ginkgo/v2, github.com/onsi/gomega, github.com/alicebob/miniredis/v2, github.com/AdaLogics/go-fuzz-headers, github.com/fsouza/fake-gcs-server, github.com/go-test/deep, github.com/Pallinder/go-randomdata, Testing Library, Chai, Mocha, mock, chai-subset, and supertest.

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

The ones that share most of its stack: infiniflow/ragflow, multica-ai/multica, and QuantumNous/new-api.

## 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.
