👉 Visit the DatoCMS homepage or see What is DatoCMS?
This project aims to be a great starting point for your SvelteKit projects that need to interact with DatoCMS.
- 🔍 Fully commented code — Every file is commented and explained in detail, it will be impossible to get lost!
- 💯 100% TypeScript — Thanks to gql.tada every GraphQL query is fully typed, and your IDE will help you complete the GraphQL queries.
- 🛠️ Minimal boilerplate — The project is minimal and exposes only what is necessary to get started, without complicated models that need to be removed.
- 🚫 Zero CSS — There is only one CSS import, which you can remove to use your preferred CSS tool.
- 📝 Full support for Draft Mode — Your editors can always view the latest draft version of the content.
- 🧩 Plugin ready — Support for the fantastic plugins Web Previews and SEO/Readability Analysis.
- 🔄 DatoCMS's Real-time Updates API — Your editors can see updated content instantly as soon as you save a new version on DatoCMS.
- 🌐 SEO Metadata — Full integration between SvelteKit and the SEO settings coming from DatoCMS.
-
Make sure that you have set up the Github integration on Vercel.
-
Let DatoCMS set everything up for you clicking this button below:
Once the setup of the project and repo is done, clone the repo locally.
Copy the sample .env file:
cp .env.local.example .env.local
In your DatoCMS' project, go to the Settings menu at the top and click API tokens.
Copy the values of the following tokens into the specified environment variable:
PRIVATE_DATOCMS_PUBLISHED_CONTENT_CDA_TOKEN
: CDA Only (Published)PRIVATE_DATOCMS_DRAFT_CONTENT_CDA_TOKEN
: CDA Only (Draft)PRIVATE_DATOCMS_CMA_TOKEN
: CMA Only (Admin)
Then set both PRIVATE_SECRET_API_TOKEN
and PRIVATE_SIGNED_COOKIE_JWT_SECRET
by generating two different secure strings (you can use openssl rand -hex 32
or any other cryptographically-secure random string generator):
- The
PRIVATE_SECRET_API_TOKEN
will be used to safeguard all API routes from incoming requests from untrusted sources; - The
PRIVATE_SIGNED_COOKIE_JWT_SECRET
will be used to sign the Draft Mode cookies.
npm install
npm run dev
Your website should be up and running on http://localhost:3000!
It is highly recommended to follow these instructions for an optimal experience with Visual Studio Code, including features like diagnostics, auto-completions, and type hovers for GraphQL.
If you're using this starter kit with the popular Web Previews plugin, we already include a CORS-ready endpoint for you, so there's very little setup needed.
You don't have to create or edit any files in this repo. Instead, you only need to specify the "Preview webhook URL" in the plugin settings.
If your site is deployed to www.example.com, then the webhook URL should be https://www.example.com/api/preview-links?token=secretTokenProtectingWebhookEndpointsFromBeingCalledByAnyone
.
That endpoint URL corresponds to the file src/routes/api/preview-links/+server.ts in this repo.
The secret token is defined as the env var PRIVATE_SECRET_API_TOKEN
in .env.example. If you deployed this starter from our marketplace, its default value will be secretTokenProtectingWebhookEndpointsFromBeingCalledByAnyone
. If you manually deployed it, you'll have to set that token. It can be any URL-safe string as long as the PRIVATE_SECRET_API_TOKEN
env var and the token
query parameter both match.
DatoCMS is the REST & GraphQL Headless CMS for the modern web.
Trusted by over 25,000 enterprise businesses, agency partners, and individuals across the world, DatoCMS users create online content at scale from a central hub and distribute it via API. We ❤️ our developers, content editors and marketers!
Quick links:
- ⚡️ Get started with a free DatoCMS account
- 🔖 Go through the docs
- ⚙️ Get support from us and the community
- 🆕 Stay up to date on new features and fixes on the changelog
Our featured repos:
- datocms/react-datocms: React helper components for images, Structured Text rendering, and more
- datocms/js-rest-api-clients: Node and browser JavaScript clients for updating and administering your content. For frontend fetches, we recommend using our GraphQL Content Delivery API instead.
- datocms/cli: Command-line interface that includes our Contentful importer and Wordpress importer
- datocms/plugins: Example plugins we've made that extend the editor/admin dashboard
- DatoCMS Starters has examples for various Javascript frontend frameworks
Or see all our public repos