Skip to content

eduardofuentes-alt/datocms-minimalistic-photography-website

Repository files navigation

👉 Visit the DatoCMS homepage or see What is DatoCMS?


A Minimalistic Photography Portfolio website using Next.js 13 and DatoCMS

This example showcases a TypeScript Next.js 13 website with App Router (app) — using DatoCMS as the data source.

It uses the awesome @graphql-codegen/client-preset package to offer typed GraphQL queries.

The purpose of this repo is to have a quick start reference that can be set up with the "one-click" button below.

Demo

Have a look at the end result live:

How to use

Quick start

  1. Create an account on DatoCMS.

  2. Make sure that you have set up the Github integration on Vercel.

  3. Let DatoCMS set everything up for you clicking this button below:

Deploy with DatoCMS

⚠️ Remember to setup FormSpark (see step below), as it's needed for the contact form to work!

Setup FormSpark

  1. Signup to https://formspark.io/
  2. Create a new form - the first 250 form submissions are free!
  3. Go to Settings, and copy the Form ID
  4. Paste the same ID in your DatoCMS project, under the "Contact Page" > "FormSpark Form ID" field.

Local setup

Once the setup of the project and repo is done, clone the repo locally.

Set up environment variables

In your DatoCMS' project, go to the Settings menu at the top and click API tokens.

Then click Read-only API token and copy the token.

Next, copy the .env.example file in this directory to .env (which will be ignored by Git):

cp .env.local.sample .env.local

and set the NEXT_DATOCMS_API_TOKEN variable as the API token you just copied.

Run your project locally

npm install
npm run dev

Your blog should be up and running on http://localhost:3000!

VS Code

It's strongly suggested to install the GraphQL: Language Feature Support extension, to get autocomplete suggestions, validation against schema, and many more niceties when working with your GraphQL queries.

Troubleshooting

If you're replicating this setup on DatoCMS projects created before January 1st, 2023, you might get a "Duplicate identifier" error when generating the graphql.ts (see product changelog). You can solve it by adding a namingConvention configuration in the graphql.config.js file:

config: {
  namingConvention: {
    enumValues: 'keep',
  },
}

What is DatoCMS?

DatoCMS - The Headless CMS for the Modern Web

DatoCMS is the REST & GraphQL Headless CMS for the modern web.

Trusted by over 25,000 enterprise businesses, agencies, 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!

Why DatoCMS?

  • API-First Architecture: Built for both REST and GraphQL, enabling flexible content delivery
  • Just Enough Features: We believe in keeping things simple, and giving you the right feature-set tools to get the job done
  • Developer Experience: First-class TypeScript support with powerful developer tools

Getting Started:

Official Libraries:

Official Framework Integrations

Helpers to manage SEO, images, video and Structured Text coming from your DatoCMS projects:

Additional Resources:

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •