Discussion of Sanity's tech stack and query engine, with links to related resources.

8 replies
Last updated: Sep 22, 2020
I wonder if any Sanity insiders would share some description of their internal tech stack. What language is the GROQ DSL written in, and what were the influences / design decisions in developing it? Are the datastores document db's, or using JSON fields in PostgreSQL? Is the infrastructure on a cloud provider? And anything been written comparing Sanity to Prisma Server and Hasura?
Sep 22, 2020, 8:20 PM
There might be an opportunity coming up soon where you get some answers. Stay tuned 🙂
Meanwhile, there are some details to be had here:
Sep 22, 2020, 8:24 PM
Thanks Knut!
Sep 22, 2020, 8:25 PM
But shortly: Query engine is written in mostly Go, a lot of the services in JS/TS, we use Postgres/Elastic, it runs on… google cloud using K8Ss and their CDN.
Sep 22, 2020, 8:26 PM
That makes a lot of sense, especially Elastic 😀 I was guessing the query engine might be in Ruby :ruby:
Sep 22, 2020, 8:28 PM
The Sanity precursor was: https://bengler.no/pebbles 🙂
And you could, at least theoretically, make a parser in Ruby as well:
Sep 22, 2020, 8:31 PM
That's a great link, thanks. That's a really awesome library - didn't have any idea about it. Hope it stays maintained - I see last code commit on Glush is over a year ago. I've never used a scannerless parser generator before - but Glush creates Javascript parsers, which is incredibly useful!
Sep 22, 2020, 8:35 PM
Yeah – we have been busy on other things (including scaling the backend), but I think there will be more happening
Sep 22, 2020, 8:39 PM
Thanks again for the info. I'm reading through the sanity docs in detail and planning a test project. I've had studio and a gatsby front-end set up for a bit and an account, now to dig through and figure it out.
Sep 22, 2020, 8:40 PM

Sanity– build remarkable experiences at scale

Sanity is a modern headless CMS that treats content as data to power your digital business. Free to get started, and pay-as-you-go on all plans.

Was this answer helpful?