Source: https://seerepo.com/r/graphile/crystal/built
Markdown source: https://seerepo.com/r/graphile/crystal/built.md
Description: crystal is a TypeScript repo built with Fastify, Express, Hono, Koa, graphql-http, and 3 more. It stores its data in Postgres.

# What is crystal built with?

crystal is a TypeScript repo built with Fastify, Express, Hono, Koa, graphql-http, and 3 more. It stores its data in Postgres, signs people in with jsonwebtoken, is tested with mock-fs, Chai, and Mocha, and deploys with @hono/node-server. It has 878,730 written lines, with 250 test files.

Read on November 10, 2026, at commit 1c037b4.

Repository: https://github.com/graphile/crystal

## Support (/)

### Testing

- **mock-fs**: 1 file

### Tools

- **Babel**: 1 file
- **glob**: 1 file
- **jscodeshift**: 1 file

## Support (grafast/codegen-plugin)

### Tools

- **graphql-codegen**: 1 file

### Other

- **GraphQL**: 1 file

## Support (grafast/dataplan-json)

### Other

- **chalk**: 1 file

## Backend (grafast/dataplan-pg)

### Data

- **[Postgres](https://seerepo.com/uses/postgres)**: 20 files · [grafast/dataplan-pg/src/index.ts, line 3](https://github.com/graphile/crystal/blob/1c037b4fbfcbb3736d3483ac04de711db4f8d09e/grafast/dataplan-pg/src/index.ts#L3)

## Support (grafast/dataplan-pg)

### Tools

- **@graphql-codegen/cli**: 1 file
- **glob**: 1 file
- **Prettier**: 1 file

### Other

- **chalk**: 3 files
- **json5**: 3 files
- **debug**: 2 files
- **iterall**: 2 files
- **eventemitter3**: 1 file
- **GraphQL**: 1 file

## Support (grafast/grafast)

### Testing

- **Chai**: 29 files
- **Mocha**: 29 files

### Tools

- **@graphql-codegen/cli**: 1 file
- **Webpack**: 1 file

### Other

- **GraphQL**: 29 files
- **chalk**: 9 files
- **debug**: 4 files
- **iterall**: 4 files
- **eventemitter3**: 2 files
- **@envelop/core**: 1 file
- **json5**: 1 file
- **tsafe**: 1 file

## Backend (grafast/grafserv)

### The base

- **[Fastify](https://seerepo.com/uses/fastify)**: 2 files
- **[Express](https://seerepo.com/uses/express)**: 1 file
- **[Hono](https://seerepo.com/uses/hono)**: 1 file
- **[Koa](https://seerepo.com/uses/koa)**: 1 file

## Support (grafast/grafserv)

### The base

- **graphql-http**: 2 files
- **@whatwg-node/server**: 1 file
- **H3**: 1 file

### Deploy

- **[@hono/node-server](https://seerepo.com/uses/hono-node-server)**: 1 file

### Other

- **graphql-ws**: 7 files
- **@whatwg-node/fetch**: 4 files
- **ws**: 2 files
- **@envelop/core**: 1 file
- **@hono/node-ws**: 1 file
- **eventemitter3**: 1 file
- **GraphQL**: 1 file

## Frontend (grafast/ruru-components)

### The base

- **[React](https://seerepo.com/uses/react)**: 16 files

### Interface

- **graphiql**: 6 files
- **[Mermaid](https://seerepo.com/uses/mermaid)**: 2 files
- **[react-error-boundary](https://seerepo.com/uses/react-error-boundary)**: 1 file

## Support (grafast/ruru-components)

### Tools

- **graphiql**: 1 file
- **Prettier**: 1 file

### Other

- **GraphQL**: 2 files

## Frontend (grafast/ruru-types)

### Interface

- **@graphiql/toolkit**: 1 file

## Support (grafast/ruru-types)

### Tools

- **graphiql**: 1 file

## Support (grafast/ruru)

### Other

- **http-proxy**: 1 file

## Backend (graphile-build/graphile-build-pg)

### Data

- **[Postgres](https://seerepo.com/uses/postgres)**: 11 files · [grafast/dataplan-pg/src/index.ts, line 3](https://github.com/graphile/crystal/blob/1c037b4fbfcbb3736d3483ac04de711db4f8d09e/grafast/dataplan-pg/src/index.ts#L3)

### Sign-in

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

## Support (graphile-build/graphile-build-pg)

### Other

- **GraphQL**: 2 files

## Support (graphile-build/graphile-build)

### Other

- **GraphQL**: 5 files
- **chalk**: 3 files
- **debug**: 2 files
- **pluralize**: 2 files
- **Lodash**: 1 file
- **SemVer**: 1 file
- **transliteration**: 1 file

## Support (graphile-build/graphile-simplify-inflection)

### Other

- **GraphQL**: 1 file

## Support (graphile-build/graphile-utils)

### Other

- **GraphQL**: 1 file
- **json5**: 1 file

## Backend (postgraphile/pgl)

### Data

- **[Postgres](https://seerepo.com/uses/postgres)**: 2 files · [grafast/dataplan-pg/src/index.ts, line 3](https://github.com/graphile/crystal/blob/1c037b4fbfcbb3736d3483ac04de711db4f8d09e/grafast/dataplan-pg/src/index.ts#L3)

## Backend (postgraphile/postgraphile)

### Data

- **[Postgres](https://seerepo.com/uses/postgres)**: 1 file · [grafast/dataplan-pg/src/index.ts, line 3](https://github.com/graphile/crystal/blob/1c037b4fbfcbb3736d3483ac04de711db4f8d09e/grafast/dataplan-pg/src/index.ts#L3)

### Sign-in

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

## Support (postgraphile/postgraphile)

### Tools

- **glob**: 1 file

### Other

- **GraphQL**: 69 files
- **iterall**: 1 file
- **json5**: 1 file

## Support (utils/eslint-plugin-graphile-export)

### Tools

- **ESLint**: 8 files
- **Babel**: 6 files

## Support (utils/graphile-config)

### Testing

- **Chai**: 4 files
- **Mocha**: 4 files

### Tools

- **interpret**: 1 file
- **yargs**: 1 file

## Backend (utils/graphile-export)

### Data

- **[Postgres](https://seerepo.com/uses/postgres)**: 1 file · [grafast/dataplan-pg/src/index.ts, line 3](https://github.com/graphile/crystal/blob/1c037b4fbfcbb3736d3483ac04de711db4f8d09e/grafast/dataplan-pg/src/index.ts#L3)

## Support (utils/graphile-export)

### Tools

- **Babel**: 2 files
- **ESLint**: 1 file
- **Prettier**: 1 file

### Other

- **GraphQL**: 1 file

## Support (utils/graphile)

### Tools

- **TypeScript**: 3 files
- **source-map-js**: 1 file

### Other

- **chalk**: 4 files

## Support (utils/jest-serializer-graphql-schema)

### Other

- **GraphQL**: 2 files
- **pretty-format**: 1 file

## Support (utils/jest-serializer-simple)

### Other

- **json5**: 1 file
- **pretty-format**: 1 file

## Backend (utils/lds)

### Data

- **[Postgres](https://seerepo.com/uses/postgres)**: 1 file · [grafast/dataplan-pg/src/index.ts, line 3](https://github.com/graphile/crystal/blob/1c037b4fbfcbb3736d3483ac04de711db4f8d09e/grafast/dataplan-pg/src/index.ts#L3)

## Support (utils/lds)

### Other

- **ws**: 1 file

## Other repos with a similar stack

- [apache/superset](https://seerepo.com/r/apache/superset/built): Postgres, Express, React, react-error-boundary, jsonwebtoken · [Compare](https://seerepo.com/compare/apache/superset/vs/graphile/crystal)
- [twentyhq/twenty](https://seerepo.com/r/twentyhq/twenty/built): Postgres, Express, React, react-error-boundary, jsonwebtoken · [Compare](https://seerepo.com/compare/graphile/crystal/vs/twentyhq/twenty)
- [gatsbyjs/gatsby](https://seerepo.com/r/gatsbyjs/gatsby/built): Express, graphql-http, React, graphiql, react-error-boundary · [Compare](https://seerepo.com/compare/gatsbyjs/gatsby/vs/graphile/crystal)
- [TryGhost/Ghost](https://seerepo.com/r/TryGhost/Ghost/built): Express, Hono, React, react-error-boundary, jsonwebtoken · [Compare](https://seerepo.com/compare/graphile/crystal/vs/TryGhost/Ghost)
- [RocketChat/Rocket.Chat](https://seerepo.com/r/RocketChat/Rocket.Chat/built): Express, Hono, React, @hono/node-server, react-error-boundary · [Compare](https://seerepo.com/compare/graphile/crystal/vs/RocketChat/Rocket.Chat)
- [novuhq/novu](https://seerepo.com/r/novuhq/novu/built): Express, Hono, H3, React, jsonwebtoken · [Compare](https://seerepo.com/compare/graphile/crystal/vs/novuhq/novu)

## Frequently asked questions

### What language is crystal written in?

crystal is written in TypeScript, with 878,730 written lines.

### What framework does crystal use?

crystal is built with Fastify, Express, Hono, Koa, graphql-http, @whatwg-node/server, H3, and React.

### What database does crystal use?

crystal stores its data in Postgres.

The proof: [grafast/dataplan-pg/src/index.ts, line 3](https://github.com/graphile/crystal/blob/1c037b4fbfcbb3736d3483ac04de711db4f8d09e/grafast/dataplan-pg/src/index.ts#L3)

### What does crystal sign people in with?

crystal signs people in with jsonwebtoken.

### Does crystal have tests?

Yes. crystal has 250 test files and is tested with mock-fs, Chai, and Mocha.

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

The ones that share most of its stack: apache/superset, twentyhq/twenty, and gatsbyjs/gatsby.

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