https://github.com/datocms/next-minimalistic-photography
https://github.com/datocms/next-minimalistic-photography
Last synced: about 1 year ago
JSON representation
- Host: GitHub
- URL: https://github.com/datocms/next-minimalistic-photography
- Owner: datocms
- Created: 2023-04-27T08:33:57.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2025-02-06T08:11:58.000Z (over 1 year ago)
- Last Synced: 2025-04-27T03:32:40.834Z (over 1 year ago)
- Language: TypeScript
- Homepage: https://datocms-minimalistic-photography-website.vercel.app
- Size: 493 KB
- Stars: 11
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
👉 [Visit the DatoCMS homepage](https://www.datocms.com) or see [What is DatoCMS?](#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](https://www.datocms.com/) as the data source.
It uses the awesome [@graphql-codegen/client-preset](https://the-guild.dev/graphql/codegen/plugins/presets/preset-client) 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:
### [https://datocms-minimalistic-photography-website.vercel.app/](https://datocms-minimalistic-photography-website.vercel.app/)
## How to use
### Quick start
1. [Create an account on DatoCMS](https://datocms.com).
2. Make sure that you have set up the [Github integration on Vercel](https://vercel.com/docs/git/vercel-for-github).
3. Let DatoCMS set everything up for you clicking this button below:
[](https://dashboard.datocms.com/deploy?repo=datocms/next-minimalistic-photography:main)
:warning: 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](https://github.com/datocms/next-minimalistic-photography/blob/main/docs/minimalistic-photography.png)
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):
```bash
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
```bash
npm install
npm run dev
```
Your blog should be up and running on [http://localhost:3000](http://localhost:3000)!
## VS Code
It's strongly suggested to install the [GraphQL: Language Feature Support](https://marketplace.visualstudio.com/items?itemName=GraphQL.vscode-graphql) 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](https://www.datocms.com/product-updates/api-cleanup-for-freshly-created-projects)). You can solve it by adding a `namingConvention` configuration in the `graphql.config.js` file:
```
config: {
namingConvention: {
enumValues: 'keep',
},
}
```
---
# What is DatoCMS?
[DatoCMS](https://www.datocms.com/) 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](https://www.datocms.com/team/best-cms-for-developers), [content editors](https://www.datocms.com/team/content-creators) and [marketers](https://www.datocms.com/team/cms-digital-marketing)!
**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](https://www.datocms.com/features) to get the job done
- **Developer Experience**: First-class TypeScript support with powerful developer tools
**Getting Started:**
- ⚡️ [Create Free Account](https://dashboard.datocms.com/signup) - Get started with DatoCMS in minutes
- 🔖 [Documentation](https://www.datocms.com/docs) - Comprehensive guides and API references
- ⚙️ [Community Support](https://community.datocms.com/) - Get help from our team and community
- 🆕 [Changelog](https://www.datocms.com/product-updates) - Latest features and improvements
**Official Libraries:**
- [**Content Delivery Client**](https://github.com/datocms/cda-client) - TypeScript GraphQL client for content fetching
- [**REST API Clients**](https://github.com/datocms/js-rest-api-clients) - Node.js/Browser clients for content management
- [**CLI Tools**](https://github.com/datocms/cli) - Command-line utilities for schema migrations (includes [Contentful](https://github.com/datocms/cli/tree/main/packages/cli-plugin-contentful) and [WordPress](https://github.com/datocms/cli/tree/main/packages/cli-plugin-wordpress) importers)
**Official Framework Integrations**
Helpers to manage SEO, images, video and Structured Text coming from your DatoCMS projects:
- [**React Components**](https://github.com/datocms/react-datocms)
- [**Vue Components**](https://github.com/datocms/vue-datocms)
- [**Svelte Components**](https://github.com/datocms/datocms-svelte)
- [**Astro Components**](https://github.com/datocms/astro-datocms)
**Additional Resources:**
- [**Plugin Examples**](https://github.com/datocms/plugins) - Example plugins we've made that extend the editor/admin dashboard
- [**Starter Projects**](https://www.datocms.com/marketplace/starters) - Example website implementations for popular frameworks
- [**All Public Repositories**](https://github.com/orgs/datocms/repositories?q=&type=public&language=&sort=stargazers)