{"id":45283375,"url":"https://github.com/caisy-io/starter-template-next-simple-blog","last_synced_at":"2026-02-21T02:41:44.063Z","repository":{"id":184203542,"uuid":"611665234","full_name":"caisy-io/starter-template-next-simple-blog","owner":"caisy-io","description":"Simple Blog Starter Tempalte with Next.js App router for caisy (Headless CMS) ","archived":false,"fork":false,"pushed_at":"2024-02-19T16:39:18.000Z","size":933,"stargazers_count":1,"open_issues_count":0,"forks_count":3,"subscribers_count":3,"default_branch":"dev","last_synced_at":"2024-02-19T18:23:15.811Z","etag":null,"topics":["app","approuter","cms","headless","next","nextjs","starter","starter-kit"],"latest_commit_sha":null,"homepage":"https://caisy-next-simple-blog.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/caisy-io.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}},"created_at":"2023-03-09T09:43:55.000Z","updated_at":"2023-08-28T23:11:17.000Z","dependencies_parsed_at":"2024-02-19T18:05:37.963Z","dependency_job_id":"5b809a23-dc3e-4df3-9875-507d7e36402d","html_url":"https://github.com/caisy-io/starter-template-next-simple-blog","commit_stats":null,"previous_names":["caisy-io/starter-template-next-simple-blog"],"tags_count":0,"template":true,"template_full_name":null,"purl":"pkg:github/caisy-io/starter-template-next-simple-blog","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/caisy-io%2Fstarter-template-next-simple-blog","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/caisy-io%2Fstarter-template-next-simple-blog/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/caisy-io%2Fstarter-template-next-simple-blog/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/caisy-io%2Fstarter-template-next-simple-blog/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/caisy-io","download_url":"https://codeload.github.com/caisy-io/starter-template-next-simple-blog/tar.gz/refs/heads/dev","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/caisy-io%2Fstarter-template-next-simple-blog/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29671821,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-21T00:11:43.526Z","status":"online","status_checked_at":"2026-02-21T02:00:07.432Z","response_time":107,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["app","approuter","cms","headless","next","nextjs","starter","starter-kit"],"created_at":"2026-02-21T02:41:43.983Z","updated_at":"2026-02-21T02:41:44.043Z","avatar_url":"https://github.com/caisy-io.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Simple blog starter template with Next.js and caisy\n\n## 📣 Important Notice: ~~Page Router~~ -\u003e App Router\n\n**This repository** is now utilizing the new Next.js **App Router**, which will become the default standard going forward.\nShould you be interested in a version that uses the legacy AppRouter, you can find it at the following repository: [starter-template-next-simple-blog-pagerouter](https://github.com/caisy-io/starter-template-next-simple-blog-pagerouter).\nPlease note that it is compatible with this repository, and you can follow along the onboarding process just the same.\n\nDeploy this template to Vercel\n\u003cbr\u003e\n\u003cbr\u003e\n[![Deploy to Vercel](https://vercel.com/button)](https://vercel.com/new/clone?repository-url=https%3A%2F%2Fgithub.com%2Fcaisy-io%2Fstarter-template-next-simple-blog\u0026env=CAISY_PROJECT_ID,CAISY_API_KEY\u0026envDescription=CAISY_PROJECT_ID%20and%20CAISY_API_KEY%20is%20required%20for%20the%20tempalte%20to%20work\u0026envLink=https%3A%2F%2Fcaisy.io%2Fdeveloper%2Fdocs%2Fauthentication%2Fapi-keys\u0026project-name=caisy-next-simple-blog\u0026repository-name=caisy-next-simple-blog\u0026demo-title=caisy-next-simple-blog\u0026demo-description=Example%20Deployment%20of%20this%20Template\u0026demo-url=https%3A%2F%2Fcaisy-next-simple-blog.vercel.app)\n\n### Features\n\n- ✅ 100/100 Lighthouse performance\n- ✅ SEO-friendly with canonical URLs and OpenGraph data\n- ✅ Dynamic content updates from caisy without redeployment\n- ✅ Sitemap support\n- ✅ Robots.txt support\n\n## Requirements\n\nIn order to have the right blueprints configured, make sure to follow the onboarind on [caisy.io](https://caisy.io/) and select the starter template _\"Simple Blog\"_\nTo run this project a `.env.local` file like this (with your own projects values) is required:\n\n```\nCAISY_PROJECT_ID=a894c383-edfc-4499-a639-a40509986ed4\nCAISY_API_KEY=xxx\n```\n\n### To run this project locally\n\n- [ ] `git clone https://github.com/caisy-io/starter-template-next-simple-blog.git`\n- [ ] create `.env.local` file with your project id and API key - see `.env.sample`\n- [ ] `npm install`\n- [ ] `npm run dev`\n\nIn order to have the right blueprints configured, make sure to follow the onboarind and select the starter template \"Simple Blog\"\n\n### We are using\n\n- Next.js as server and server side rendering framework\n- tailwindcss for styling\n- @caisy/rich-text-react-renderer to render the caisy richtexts in react\n- graphql and graphql-request to fetch data from caisy\n\n#### Codegen\n\nDuring development we generate code using\n\n- @graphql-codegen/cli and plugins\n\n### 🧞 Commands\n\nAll commands are run from the root of the project, from a terminal:\n\n| Command             | Action                                                   |\n| :------------------ | :------------------------------------------------------- |\n| `npm install`       | Installs dependencies                                    |\n| `npm run dev`       | Starts local dev server at `localhost:3000`              |\n| `npm run gen`       | Regenerates generated types and SDK                      |\n| `npm run gen:watch` | Wachting changes and regenerates generated types and SDK |\n| `npm run build`     | Build your production site to `./dist/`                  |\n\n# App Router\n\n- ### The `app` Router\n\nThe App Router is a new paradigm for building applications using React's latest features.\n\nIn version 13, Next.js introduced a new App Router built on [React Server Components](https://nextjs.org/docs/getting-started/react-essentials#server-components), which supports shared layouts, nested routing, loading states, error handling, and more.\n\nThe App Router works in a new directory named `app`. The `app` directory works alongside the `pages` directory to allow for incremental adoption. This allows you to opt some routes of your application into the new behavior while keeping other routes in the `pages` directory for previous behavior. If your application uses the `pages` directory, please also see the [Pages Router](https://nextjs.org/docs/pages/building-your-application/routing) documentation.\n\n- ### Component Hierarchy\n\nThe React components defined in special files of a route segment are rendered in a specific hierarchy:\n\n- `layout.js`\n\n- `template.js`\n\n- `error.js` (React error boundary)\n\n- `loading.js` (React suspense boundary)\n\n- `not-found.js` (React error boundary)\n\n- `page.js` or nested layout.js\n\n![](https://nextjs.org/_next/image?url=%2Fdocs%2Fdark%2Ffile-conventions-component-hierarchy.png\u0026w=1920\u0026q=75\u0026dpl=dpl_DjpzdahhLTquuaq7vugKKMQTDADC)\n\nIn a nested route, the components of a segment will be nested inside the components of its parent segment.\n\n![](https://nextjs.org/_next/image?url=%2Fdocs%2Fdark%2Fnested-file-conventions-component-hierarchy.png\u0026w=1920\u0026q=75\u0026dpl=dpl_DjpzdahhLTquuaq7vugKKMQTDADC)\n\nSee More About [NEXT.JS Using App Router](https://nextjs.org/docs/app)\n\n## Next.js x Caisy\n\n## 👀 Want to learn more?\n\nFeel free to check [caisy documentation](https://caisy.io/developer/docs)\nFeel free to check [Next.js documentation](https://nextjs.org/docs)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcaisy-io%2Fstarter-template-next-simple-blog","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcaisy-io%2Fstarter-template-next-simple-blog","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcaisy-io%2Fstarter-template-next-simple-blog/lists"}