{"id":13761776,"url":"https://github.com/prezly/theme-nextjs-starter","last_synced_at":"2025-06-15T10:08:03.977Z","repository":{"id":41853005,"uuid":"350673340","full_name":"prezly/theme-nextjs-starter","owner":"prezly","description":"Prezly starter kit to create your own newsroom or newsroom theme. No styling included. Made with NextJS, TS, PrezlySDK and Eslint","archived":false,"fork":false,"pushed_at":"2025-06-14T09:16:58.000Z","size":1771,"stargazers_count":12,"open_issues_count":13,"forks_count":2,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-06-15T10:08:03.367Z","etag":null,"topics":["eslint","nextjs","prezly","typescript","vercel","vercel-deployment"],"latest_commit_sha":null,"homepage":"https://www.prezly.com/developers?utm_source=github-nextjs-starter","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/prezly.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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,"zenodo":null}},"created_at":"2021-03-23T10:41:19.000Z","updated_at":"2025-03-24T09:54:20.000Z","dependencies_parsed_at":"2023-10-14T04:25:40.100Z","dependency_job_id":"2644fbfc-3b3a-4caf-8931-432a32d8272a","html_url":"https://github.com/prezly/theme-nextjs-starter","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/prezly/theme-nextjs-starter","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prezly%2Ftheme-nextjs-starter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prezly%2Ftheme-nextjs-starter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prezly%2Ftheme-nextjs-starter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prezly%2Ftheme-nextjs-starter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/prezly","download_url":"https://codeload.github.com/prezly/theme-nextjs-starter/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prezly%2Ftheme-nextjs-starter/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":259957272,"owners_count":22937546,"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":["eslint","nextjs","prezly","typescript","vercel","vercel-deployment"],"created_at":"2024-08-03T14:00:28.101Z","updated_at":"2025-06-15T10:08:03.939Z","avatar_url":"https://github.com/prezly.png","language":"TypeScript","funding_links":[],"categories":["Nextjs Templates"],"sub_categories":[],"readme":"# Prezly Starter Theme\n\nPrezly Starter Theme for your newsroom or blog based on Next.js 12+ framework:\n\n- Made with [TypeScript], [Prezly SDK] and [Prezly Content React Renderer].\n- Data-fetching is handled by [Prezly Theme Kit] and [Prezly SDK].\n- Multi-language is powered by [React Intl] and [Prezly Themes Translations].\n- Code-style is ensured by [ESLint] and [Prettier].\n- Search is powered by [Algolia]\n\nAs we do not want to tell you how to style your project (CSS vs Sass vs CSS-in-JS vs styled components) and sure as hell do not want to force you on our preferred CSS framework **this theme does not have any styling loaded**. It is intended to be used as a boilerplate to start a new theme from.\n\nThe good news is that you don't have to start completely from scratch. Feel free to use the [Prezly theme UI Kit Figma file](https://www.figma.com/community/file/1083372101078898157) as a design guide.\n\n## Features\n\n### Content/Newsroom features\n\n* Homepage with list of stories\n* Story page including images, galleries, cards and video using our [Prezly Content React Renderer]\n* Category page with list of stories based on the selected category\n* Galleries page with list of galleries\n* Gallery page using our [Prezly Content React Renderer]\n* i18n support for 40+ languages\n* sitemap.xml, SEO metadata and Open Graph Tags\n* Maximize lighthouse score\n\n### Developer experience:\n\n* [Next.js] with SSR, SSG or ISR option\n* Test/Seed data in 3 categories\n* Type checking with [TypeScript]\n* Strongly typed content/entities\n\n### Built-in features from Next.js:\n\n* Minify HTML \u0026 CSS\n* Live reload/Fast refresh\n* Code splitting and bundling\n* Hybrid: SSR, SSG or ISR\n* Image optimization\n\n### Requirements\n\n* Node.js and npm\n\n## Quick Start\n\n### Getting Started\n\nRun the following command on your local environment\n\n```\ngit clone https://github.com/prezly/theme-nextjs-starter\ncd theme-nextjs-starter\nnpm i\n```\n\nSet up your .env.local file by copying .env.example and filling in Prezly API key and newsroom UUID.\n\n```\ncp .env.example .env.local\n```\n\nAfter that you can run locally in development mode with live reload:\n\n```\nnpm run dev\n```\n\nOpen http://localhost:3000 with your favorite browser to see your project.\n\n### Deploy your own\n\nDeploy the example using [Vercel](https://vercel.com) or [Netlify](https://www.netlify.com/):\n\n| Vercel  | Netlify |\n| ------------- | ------------- |\n| [![Deploy with Vercel](https://vercel.com/button)](https://vercel.com/new/git/external?repository-url=https://github.com/prezly/theme-nextjs-starter)  | [![Netlify Deploy button](https://www.netlify.com/img/deploy/button.svg)](https://app.netlify.com/start/deploy?repository=https://github.com/prezly/theme-nextjs-starter)  |\n\n## Documentation\n\n### Routes\n\nList of routes we automatically generate:\n\n* **/** : Homepage listing stories\n* **/[slug]** : Story page with slug provided by [Prezly SDK]\n* **/s/[uuid]**: Story preview page used for previewing non-published stories\n* **/category/[slug]** : Category page listing stories in respective category\n* **/media**: Galleries page with infinite loading\n* **/media/album/[uuid]**: Gallery page\n* **/search**: Search page using realtime search with [Algolia]\n* **/sitemap.xml**: Sitemap\n\n### Testing/Token\n\nTo make development and testing easier we have created a few sample newsrooms:\n\n* **The Good Newsroom** [(preview on vercel)](https://theme-nextjs-starter-the-good-newsroom.vercel.app/): A newsroom filled with good news\n* **Cookbook** [(preview on vercel)](https://theme-nextjs-starter-cookbook.vercel.app/): Recipes shared by the Prezly team\n* **Anonymous Photographer** [(preview on vercel)](https://theme-nextjs-starter-photography.vercel.app/):  Pictures from a photographer. Combination of albums and imagery\n\nA list of tokens/newsroom uuids that can be used to kickstart the theme.\n\n| Name  | API Token  | Newsroom UUID |\n|---|---|---|\n| Good Newsroom  | `HKcab_nEbab_a7b2fe3a3465d3729772fa5381800ab5a0c30d8d`  | `578e78e9-9a5b-44ad-bda2-5214895ee036` |\n| Cookbook  | `TKcab_nEbab_28432b75d3a85a826e51cd0b502a3d76acf98d19`  | `9d90b2c1-aed9-4415-a9fb-82dd3a2a1b52` |\n| Anonymous Photographer | `SKcab_nEbab_0b63a6dd0b09286cc99fab93e6e80bfd9aecfbb5`  | `ce8299f6-a293-41df-8ffc-1c064d4401bc` |\n\n### Accessing common data\n\nThe entire application is wrapped with `NewsroomContextProvider` and `IntlProvider` from [Next.js Theme Kit]\nmaking it easy to access common objects like `newsroom`, `companyInformation`, `categories`, `languages`, `locale`\nanywhere in the component tree.\n\nFor more information about these hooks please visit our [Next.js Theme Kit].\n\n### Hooks\n\n#### `useInfiniteLoading()`\n\nGeneric hook for continuous loading of any dataset keeping track of current page internally. An example implementation\nfor continuous loading of galleries can be found in the [`Galleries`](./tree/main/modules/Galleries/lib/useInfiniteGalleriesLoading.ts) module.\n\n### Modules\n\n#### `Layout`\n\nThis module takes care of rendering header and footer components as well as the subscribe form.\nIt also uses `PageSeo` component to render all the necessary meta tags with optional props to override\ncertain meta tag content like title (`og:title`), description (`og:description`) and image (`og:image`, `twitter:image`).\n\n#### `PaginatedStories`\n\nClassic query-parameter-based pagination, used in the starter theme by default in [`Stories`](./tree/main/modules/Stories) and [`Category`](./tree/main/modules/Category) modules.\n\n#### `InfiniteStories`\n\nInfinite loading of data with `Load More` button. Not used in the starter theme by default but an example usage can be found\nin both [`Stories`](./tree/main/modules/Stories) and [`Category`](./tree/main/modules/Category) modules.\n\n### Contributions\n\nEveryone is welcome to contribute to this project. Feel free to open an issue if you have question or found a bug.\n\n### License\n\nPrezly Starter Theme is [MIT licensed](LICENSE).\n\n---\n\nMade with ♥ by [Prezly]\n\n[Prezly]: https://www.prezly.com/developers\n[Prezly SDK]: https://github.com/prezly/javascript-sdk\n[Prezly Theme Kit]: https://github.com/prezly/theme-kit-nextjs\n[Next.js]: https://nextjs.org\n[TypeScript]: https://www.typescriptlang.org\n[ESLint]: https://eslint.org\n[Prettier]: https://prettier.io\n[React Intl]: https://www.npmjs.com/package/react-intl\n[Prezly Content React Renderer]: https://www.npmjs.com/package/@prezly/content-renderer-react-js\n[Prezly Themes Translations]: https://www.npmjs.com/package/@prezly/theme-kit-intl\n[Algolia]: https://algolia.com\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fprezly%2Ftheme-nextjs-starter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fprezly%2Ftheme-nextjs-starter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fprezly%2Ftheme-nextjs-starter/lists"}