{"id":19571812,"url":"https://github.com/datocms/next-minimalistic-photography","last_synced_at":"2025-06-25T10:36:52.343Z","repository":{"id":157129643,"uuid":"633315739","full_name":"datocms/next-minimalistic-photography","owner":"datocms","description":null,"archived":false,"fork":false,"pushed_at":"2025-02-06T08:11:58.000Z","size":505,"stargazers_count":11,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-27T03:32:40.834Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://datocms-minimalistic-photography-website.vercel.app","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/datocms.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-04-27T08:33:57.000Z","updated_at":"2025-02-20T00:51:18.000Z","dependencies_parsed_at":"2024-06-24T20:57:18.810Z","dependency_job_id":"e7a6e834-733e-4fa0-a2b5-cdc44e1d181b","html_url":"https://github.com/datocms/next-minimalistic-photography","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/datocms/next-minimalistic-photography","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/datocms%2Fnext-minimalistic-photography","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/datocms%2Fnext-minimalistic-photography/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/datocms%2Fnext-minimalistic-photography/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/datocms%2Fnext-minimalistic-photography/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/datocms","download_url":"https://codeload.github.com/datocms/next-minimalistic-photography/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/datocms%2Fnext-minimalistic-photography/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261853223,"owners_count":23219825,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-11T06:20:11.913Z","updated_at":"2025-06-25T10:36:52.296Z","avatar_url":"https://github.com/datocms.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003c!--datocms-autoinclude-header start--\u003e\n\n\u003ca href=\"https://www.datocms.com/\"\u003e\u003cimg src=\"https://www.datocms.com/images/full_logo.svg\" height=\"60\"\u003e\u003c/a\u003e\n\n👉 [Visit the DatoCMS homepage](https://www.datocms.com) or see [What is DatoCMS?](#what-is-datocms)\n\n---\n\n\u003c!--datocms-autoinclude-header end--\u003e\n\n# A Minimalistic Photography Portfolio website using Next.js 13 and DatoCMS\n\nThis example showcases a TypeScript Next.js 13 website with App Router (app) — using [DatoCMS](https://www.datocms.com/) as the data source.\n\nIt uses the awesome [@graphql-codegen/client-preset](https://the-guild.dev/graphql/codegen/plugins/presets/preset-client) package to offer typed GraphQL queries.\n\nThe purpose of this repo is to have a quick start reference that can be set up with the \"one-click\" button below.\n\n## Demo\n\nHave a look at the end result live:\n\n### [https://datocms-minimalistic-photography-website.vercel.app/](https://datocms-minimalistic-photography-website.vercel.app/)\n\n## How to use\n\n### Quick start\n\n1. [Create an account on DatoCMS](https://datocms.com).\n\n2. Make sure that you have set up the [Github integration on Vercel](https://vercel.com/docs/git/vercel-for-github).\n\n3. Let DatoCMS set everything up for you clicking this button below:\n\n[![Deploy with DatoCMS](https://dashboard.datocms.com/deploy/button.svg)](https://dashboard.datocms.com/deploy?repo=datocms/next-minimalistic-photography:main)\n\n:warning: Remember to setup FormSpark (see step below), as it's needed for the contact form to work!\n\n### Setup FormSpark\n\n1. Signup to https://formspark.io/\n2. Create a new form - the first 250 form submissions are free!\n3. Go to Settings, and [copy the Form ID](https://github.com/datocms/next-minimalistic-photography/blob/main/docs/minimalistic-photography.png)\n4. Paste the same ID in your DatoCMS project, under the \"Contact Page\" \u003e \"FormSpark Form ID\" field.\n\n### Local setup\n\nOnce the setup of the project and repo is done, clone the repo locally.\n\n#### Set up environment variables\n\nIn your DatoCMS' project, go to the **Settings** menu at the top and click **API tokens**.\n\nThen click **Read-only API token** and copy the token.\n\nNext, copy the `.env.example` file in this directory to `.env` (which will be ignored by Git):\n\n```bash\ncp .env.local.sample .env.local\n```\n\nand set the `NEXT_DATOCMS_API_TOKEN` variable as the API token you just copied.\n\n#### Run your project locally\n\n```bash\nnpm install\nnpm run dev\n```\n\nYour blog should be up and running on [http://localhost:3000](http://localhost:3000)!\n\n## VS Code\n\nIt'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.\n\n## Troubleshooting\n\nIf 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:\n\n```\nconfig: {\n  namingConvention: {\n    enumValues: 'keep',\n  },\n}\n```\n\n\u003c!--datocms-autoinclude-footer start--\u003e\n\n---\n\n# What is DatoCMS?\n\n\u003ca href=\"https://www.datocms.com/\"\u003e\u003cimg src=\"https://www.datocms.com/images/full_logo.svg\" height=\"60\" alt=\"DatoCMS - The Headless CMS for the Modern Web\"\u003e\u003c/a\u003e\n\n[DatoCMS](https://www.datocms.com/) is the REST \u0026 GraphQL Headless CMS for the modern web.\n\nTrusted 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)!\n\n**Why DatoCMS?**\n\n- **API-First Architecture**: Built for both REST and GraphQL, enabling flexible content delivery\n- **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\n- **Developer Experience**: First-class TypeScript support with powerful developer tools\n\n**Getting Started:**\n\n- ⚡️ [Create Free Account](https://dashboard.datocms.com/signup) - Get started with DatoCMS in minutes\n- 🔖 [Documentation](https://www.datocms.com/docs) - Comprehensive guides and API references\n- ⚙️ [Community Support](https://community.datocms.com/) - Get help from our team and community\n- 🆕 [Changelog](https://www.datocms.com/product-updates) - Latest features and improvements\n\n**Official Libraries:**\n\n- [**Content Delivery Client**](https://github.com/datocms/cda-client) - TypeScript GraphQL client for content fetching\n- [**REST API Clients**](https://github.com/datocms/js-rest-api-clients) - Node.js/Browser clients for content management\n- [**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)\n\n**Official Framework Integrations**\n\nHelpers to manage SEO, images, video and Structured Text coming from your DatoCMS projects:\n\n- [**React Components**](https://github.com/datocms/react-datocms)\n- [**Vue Components**](https://github.com/datocms/vue-datocms)\n- [**Svelte Components**](https://github.com/datocms/datocms-svelte)\n- [**Astro Components**](https://github.com/datocms/astro-datocms)\n\n**Additional Resources:**\n\n- [**Plugin Examples**](https://github.com/datocms/plugins) - Example plugins we've made that extend the editor/admin dashboard\n- [**Starter Projects**](https://www.datocms.com/marketplace/starters) - Example website implementations for popular frameworks\n- [**All Public Repositories**](https://github.com/orgs/datocms/repositories?q=\u0026type=public\u0026language=\u0026sort=stargazers)\n\n\u003c!--datocms-autoinclude-footer end--\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdatocms%2Fnext-minimalistic-photography","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdatocms%2Fnext-minimalistic-photography","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdatocms%2Fnext-minimalistic-photography/lists"}