Source: https://seerepo.com/compare/gatsbyjs/gatsby/vs/graphile/crystal
Markdown source: https://seerepo.com/compare/gatsbyjs/gatsby/vs/graphile/crystal.md
Description: gatsby and crystal share 5 technologies: React, Express, graphql-http, react-error-boundary, and graphiql. Both are written in TypeScript.

# gatsby vs crystal

gatsby and crystal share 5 technologies: React, Express, graphql-http, react-error-boundary, and graphiql. Both are written in TypeScript.

- [gatsbyjs/gatsby](https://seerepo.com/r/gatsbyjs/gatsby): React-based framework with performance, scalability, and security built in.
- [graphile/crystal](https://seerepo.com/r/graphile/crystal): 🔮 Graphile's Crystal Monorepo; home to Grafast, PostGraphile, pg-introspection, pg-sql2 and much more!

## What they share and what sets them apart

- In common: React, Express, graphql-http, react-error-boundary, graphiql
- Only in gatsby: @gatsbyjs/reach-router, better-queue, Contentful, express-graphql, react-reconciler, lmdb, history, cache-manager, cache-manager-fs-hash, react-server-dom-webpack, GitHub, @mdx-js/react, node-html-parser, remark-gfm, sharp, prop-types, theme-ui, @emotion/react, Normalize.css, Gatsby, strict-ui, react-instantsearch-dom, @feedback-fish/react, prism-react-renderer, react-icons, react-markdown, unist-util-remove, glamor, ink, ink-select-input, ink-spinner, unist-util-visit, remark-mdx, remark-mdxjs, remark-parse, remark-stringify, unified, @hapi/joi, enquirer, joi, boxen, progress, prompts, @emotion/styled, file-type, cxs, rss, react-jss, vfile, gray-matter, mdast-util-mdx, mdast-util-to-hast, mdast-util-toc, rehype-infer-description-meta, remark, accessible-nprogress, styled-components, styled-jsx, styletron-engine-atomic, styletron-react, react-typography, @contentful/rich-text-react-renderer, Cheerio, valid-url, Autoprefixer, PostCSS, postcss-flexbugs-fixes
- Only in crystal: Postgres, Fastify, Hono, Koa, @whatwg-node/server, H3, @hono/node-server, Mermaid, @graphiql/toolkit, jsonwebtoken

## Side by side

| | gatsby | crystal |
|---|---|---|
| Size | 344,142 lines written, 1,362 code files | 878,730 lines written, 536 code files |
| Who writes it | 0% of its commits signed by AI. With GitHub Copilot and Claude Code | 0% of its commits signed by AI. With GitHub Copilot |
| Activity | Last push November 9, 2026, 21,541 commits, 55,916 stars | Last push November 9, 2026, 15,796 commits, 12,934 stars |
| Tests | 1,769 test files. 22.8% of its code files have a test that imports them | 250 test files. 5.6% of its code files have a test that imports them |

- Size: Lines written by people and agents, without generated ones; code files, without tests.
- Who writes it: A commit counts as AI's when it carries its signature: a Co-Authored-By line, its author name or the merge of its branch.
- Activity: From GitHub and its history, on the day SeeRepo read it.
- Tests: The files that test the code, and the share of code files a test imports.

## Frequently asked questions

### Which is bigger, gatsby or crystal?

crystal, with 878,730 lines written; gatsby has 344,142.

The proof: [graphile/crystal's code at commit 1c037b4](https://github.com/graphile/crystal/tree/1c037b4fbfcbb3736d3483ac04de711db4f8d09e)

### Which has more GitHub stars, gatsby or crystal?

gatsby, with 55,916 stars; crystal has 12,934.

The proof: [gatsbyjs/gatsby on GitHub](https://github.com/gatsbyjs/gatsby)

### Which has more tests, gatsby or crystal?

gatsby, with 1,769 test files; crystal has 250.

The proof: [gatsbyjs/gatsby's code at commit 0ac6c88](https://github.com/gatsbyjs/gatsby/tree/0ac6c88a72c4dfd4d541e3ac43c664343e8e15b6)

### Which was updated more recently, gatsby or crystal?

Both got their last push on November 9, 2026.

The proof: [graphile/crystal's commits on GitHub](https://github.com/graphile/crystal/commits)

## Sources

- gatsbyjs/gatsby: Read on November 10, 2026, at commit 0ac6c88 (https://github.com/gatsbyjs/gatsby/tree/0ac6c88a72c4dfd4d541e3ac43c664343e8e15b6)
- graphile/crystal: Read on November 10, 2026, at commit 1c037b4 (https://github.com/graphile/crystal/tree/1c037b4fbfcbb3736d3483ac04de711db4f8d09e)

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