Discussion about using Hydrogen-sanity-demo with Shopify, creating a settings document, deploying on Vercel, and potential use of TypeScript.

13 replies
Last updated: Nov 19, 2021
Hi guys. I’ve cloned the
hydrogen-sanity-demo
to give it a whirl and show the devs at my work.
I’ve added the Sanity app to my Shopify store, cloned the repo and plugged in the credentials in sanity.config and shopify.config. When I start up the app I get an
Error: No settings context found
error. I’m looking in
SettingsContext.server.jsx
now and nothing really stands out to me. Any ideas how to fix the issue?
AI Update

The "Error: No settings context found" happens because you haven't created a settings document in your Sanity dataset yet. This is actually a common issue when first setting up the hydrogen-sanity-demo!

The hydrogen-sanity-demo wraps the app in a <SettingsProvider> component that expects to fetch a settings document from your Sanity dataset. This document contains shared values like site title, navigation, and other global settings. When SettingsContext.server.jsx queries for *[_type == 'settings'] and finds nothing, it throws this error.

To fix this:

  1. Make sure you've set up the pre-configured Sanity Studio that comes with the demo
  2. Open your Sanity Studio (usually at http://localhost:3333 or similar)
  3. Create a new settings document - there should be a "Settings" document type in your schema
  4. Fill in the required fields (site title, etc.)
  5. Publish the document

Once the settings document exists in your dataset, the error should disappear and your Hydrogen storefront will load properly.

The hydrogen-sanity-demo discussion on Sanity's community confirms this is the solution, and the maintainers noted they should make this error message more descriptive to help future users!

As a side note: if you're deploying this to production, the easiest path is via Docker (the demo team deploys to fly.io). Vercel requires some tweaking since Hydrogen uses Express, which is a bit of an anti-pattern for Vercel's serverless architecture.

I’ll setup the pre-configured studio and take another look
Hey
user L
– thanks for giving this a go!
I believe this issue may be happening because no
settings
document has yet been created in your sanity dataset. The app is wrapped in a
<SettingsProvider>
which receives some shared values (such as site title, navigation, etc)
Can you please confirm if that
settings
document has been created?
(And noted that this error message should definitely be more descriptive)
No it hasn’t. I went back and read the readme properly and realised that’s probably the issue 😂
Awesome! We’ll update this error message anyway, since it’s not the first time it’s popped up
Sweet, that would be helpful.
Also I can see the Shopify demo is not using Typescript. Do you know if Typescript is planned?
We’re going to try and keep in lock step with Hydrogen’s official starter as much as possible, which includes their current decision to be JS-first.
The idea being it’d be less cognitive overhead for users who have previously their their official starter.

Though there’s definitely
some discussion about going all in on TS which might be worth a follow
Nice
I have the Sanity starter setup properly now. It was really easy to configure. I really like how it has minimal Tailwind styling 👍
I’m trying to get my test Sanity app dpeloyed on Vercel. Do you guys know if there’s a custom deployment is required? Or if I can just use the default Vite config? Cannot see anything on Google about deploying to Vercel/Netlify
Hey
user L
, Hydrogen should run on Vercel, though as it uses express it may require some tweaking to get it to work. As Vercel’s documentation outlines, it’s a bit of an anti-pattern.
We’re in the process of getting this working with Cloudflare Workers (and eventually Shopify’s Oxygen, once general availability opens up). We’ll look to make this process a little smoother as Hydrogen develops, too.

For now, I think the easiest path to deploy is via Docker (we currently deploy with Docker to
fly.io ). Please do note that Hydrogen is still in developer preview!
Thanks for the info. Do you know if there’s an ETA on Oxygen? Seems like an interesting platform. for now I’ll just go with Docker I think
Your guess would be as a good as mine here!

Sanity – Build the way you think, not the way your CMS thinks

Sanity is the developer-first content operating system that gives you complete control. Schema-as-code, GROQ queries, and real-time APIs mean no more workarounds or waiting for deployments. Free to start, scale as you grow.

Was this answer helpful?