{"id":13651524,"url":"https://github.com/Sitecore/developer-portal","last_synced_at":"2025-04-22T22:31:36.461Z","repository":{"id":36953790,"uuid":"388399985","full_name":"Sitecore/developer-portal","owner":"Sitecore","description":"Open source repo for the Sitecore Developer Portal (https://developers.sitecore.com)","archived":false,"fork":false,"pushed_at":"2025-04-22T10:59:05.000Z","size":89548,"stargazers_count":31,"open_issues_count":50,"forks_count":67,"subscribers_count":11,"default_branch":"main","last_synced_at":"2025-04-22T11:41:51.704Z","etag":null,"topics":["content-hub-one","nextjs","sitecore","sitecore-cdp","sitecore-search","vercel"],"latest_commit_sha":null,"homepage":"https://developers.sitecore.com","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Sitecore.png","metadata":{"files":{"readme":"README.md","changelog":"changes.diff","contributing":null,"funding":null,"license":"LICENSE.MD","code_of_conduct":"CODE_OF_CONDUCT.md","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-07-22T09:14:51.000Z","updated_at":"2025-04-22T10:59:09.000Z","dependencies_parsed_at":"2023-09-25T16:42:52.502Z","dependency_job_id":"54e8cb53-72f6-4c9e-b5ab-56e100a9913c","html_url":"https://github.com/Sitecore/developer-portal","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Sitecore%2Fdeveloper-portal","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Sitecore%2Fdeveloper-portal/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Sitecore%2Fdeveloper-portal/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Sitecore%2Fdeveloper-portal/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Sitecore","download_url":"https://codeload.github.com/Sitecore/developer-portal/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250333950,"owners_count":21413482,"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":["content-hub-one","nextjs","sitecore","sitecore-cdp","sitecore-search","vercel"],"created_at":"2024-08-02T02:00:50.255Z","updated_at":"2025-04-22T22:31:31.450Z","avatar_url":"https://github.com/Sitecore.png","language":"TypeScript","funding_links":[],"categories":["Demo"],"sub_categories":[],"readme":"# ![Sitecore logo in red background](https://github.com/Sitecore/developer-portal/raw/main/apps/devportal/public/favicon-32x32.png) Sitecore Developer Portal\n\nWelcome to the Sitecore Developer Portal repository. This app was created to help you get started with Sitecore. The developer portal aims to bring all the Sitecore developer tools together in one place.\n\n## Technology used\n\nThe Sitecore developer portal is built with Next.js, Typescript, Chakra UI and [Sitecore Blok](https://blok.sitecore.com), managed using Turborepo and is hosted on Vercel. The app uses static site generation to create all the pages at build time. It also utilizes Incremental Static Regeneration (ISR) to automatically update the app when changes to page content are made. Much of the page content is written in Markdown and is converted to HTML at build time. Images that are used are managed in Sitecore DAM and are published to a CDN.\n\n### Apps and Packages\n\n- apps\n  - `devportal`: Developer Portal public site ([Next.js](https://nextjs.org/) based)\n- packages\n  - `@scdp/ui`: a React component library based on [Sitecore Blok](https://blok.sitecore.com) used by `devportal` application\n  - `@scdp/changelog`: Custom library to retrieve and parse changelog data\n  - `@scdp/eslint-config`: `eslint` configurations (includes `eslint-config-next` and `eslint-config-prettier`)\n  - `@scdp/jest-presets`: `jest` configuration used throughout the monorepo\n  - `@scdp/typescript-config`: `tsconfig.json`s used throughout the monorepo\n\nEach package/app is 100% [TypeScript](https://www.typescriptlang.org/).\n\n### Utilities\n\nThis turborepo has some additional tools already setup:\n\n- [TypeScript](https://www.typescriptlang.org/) for static type checking\n- [ESLint](https://eslint.org/) for code linting\n- [Jest](https://jestjs.io/) for testing\n- [Prettier](https://prettier.io) for code formatting\n\n### Prerequisites\n\n#### Monorepo\n\nThis repository is utilizing Turborepo to manage our monorepo setup. More information about Monorepos can be found in the [Monorepo Handbook](https://turbo.build/repo/docs/handbook).\n\n#### Node.js\n\nThe developer portal is built with Next.js, so you'll need to have Node.js installed to build the project. You can find the latest version of Node.js [here](https://nodejs.org/en/). We recommend using the LTS version of Node.js.\n\n## Getting Started\n\n1. Install [Node.js](https://nodejs.org/en/), we recommend the LTS version.\n2. Clone the repository.\n3. Inside the repository run `npm install` to install all the dependencies.\n4. Create a `.env.local` file in the root of the project from the `.env.template` file. The following environment variables should be included:\n\n```\nNEXT_PUBLIC_YOUTUBE_API_KEY=\"\"\nNEXT_PUBLIC_COOKIE_CONSENT_URL=\n\nNEXT_PUBLIC_GTM_ID=\nNEXT_PUBLIC_GTM_AUTH=\nNEXT_PUBLIC_GTM_ENVIRONMENT=\n\nNEXT_PUBLIC_SEARCH_APP_API_KEY=\nNEXT_PUBLIC_SEARCH_APP_CUSTOMER_KEY=\nNEXT_PUBLIC_SEARCH_APP_ENV=\nNEXT_PUBLIC_SEARCH_ENABLE_PREVIEW_SEARCH=\n\nNEXT_PUBLIC_SITECORE_CDP_CLIENT_KEY=\nNEXT_PUBLIC_SITECORE_CDP_TARGETURL=\nNEXT_PUBLIC_SITECORE_CDP_COOKIE_DOMAIN=\nNEXT_PUBLIC_SITECORE_CDP_POS=\n```\n\n(For more information on populating environment variables see section **Environment Variables** above.)\n\n5. Run `npm run dev` to start the development server.\n6. Open the **\u003chttp://localhost:3000\u003e** in your browser to see the result!\n\n#### Environment Variables\n\nThe Sitecore developer portal incorporates a number of third party services to bring in content. For full functionality, you must create a **.env.local** file in the root of the project and add in the below environment variables. Use the `.env.template` file as a starting point.\n\nThe following variables should exist within the .env.local file:\n\n```\nNEXT_PUBLIC_PUBLIC_URL=\nNEXT_PUBLIC_YOUTUBE_API_KEY=\"An API key with YouTube Data API v3 access enabled\"\nNEXT_PUBLIC_COOKIE_CONSENT_URL=\nNEXT_PUBLIC_GTM_ID=\nNEXT_PUBLIC_GTM_AUTH=\nNEXT_PUBLIC_GTM_ENVIRONMENT=\n```\n\n_Note: The site will still function without the above keys. The components that require these environment variables will fail gracefully and not display on the pages._\n\n---\n\n#### Sitecore CDP/Personalize\n\nTo enable Sitecore CDP/Personalize to capture events the following environment variables are required:\n\n```\nNEXT_PUBLIC_SITECORE_CDP_CLIENT_KEY=\nNEXT_PUBLIC_SITECORE_CDP_TARGETURL=\nNEXT_PUBLIC_SITECORE_CDP_COOKIE_DOMAIN=\nNEXT_PUBLIC_SITECORE_CDP_POS=\n```\n\n_Note: The site will still function if the keys are missing or left blank._\n\n--- \n\n#### Sitecore Search\n\nTo enable search the following environment variables (first three) are required:\n\n```\nNEXT_PUBLIC_SEARCH_APP_API_KEY=\nNEXT_PUBLIC_SEARCH_APP_CUSTOMER_KEY=\nNEXT_PUBLIC_SEARCH_APP_ENV=\nNEXT_PUBLIC_SEARCH_ENABLE_PREVIEW_SEARCH=\n```\n\n_Note: The site will still function if the keys are missing or left blank. However these keys are still required to build the application_\n\n##### CEC configuration\n\nThe account that will be used must have an initial configuration that needs to be made on CEC:\n\n##### Sources\n\nInformation sources must be entered and processed in CEC, to populate the content catalog.\n\n##### Suggestion Blocks\n\nSuggestions blocks must have a field named `name_suggester` (this needs to be configured for the `preview search widget`).\nThe following picture shows a sample configuration:\n\n\u003cimg src=\".github\\images\\CEC-Suggestion_Block.png\" title=\"Suggestion Blocks\" alt=\"Suggestion Blocks\" /\u003e\n\n##### Sorting options\n\nSorting options must include `suggested` criteria pre-configured. You can provide display name as per your requirements. The picture shows how it should look on CEC:\n\n\u003cimg src=\".github\\images\\CEC-Sorting_Option.png\" title=\"Sorting options\" alt=\"Sorting options\" /\u003e\n\nRemember to reindex the relevant sources after configuring a new sorting option.\n\n##### Pre configured widgets\n\nThe account must have the following widgets created before:\n\n| Name                                 | ID        | Type             | Description                                                                                                                  | Used in                         |\n| ------------------------------------ | --------- | ---------------- | ---------------------------------------------------------------------------------------------------------------------------- | ------------------------------- |\n| [Search Results Page] Search Results | `rfkid_7` | `Search Results` | Search results widget. Will include a grid with the results together with the avility to filter results by different facets. | Search Results Page (`/search`) |\n| Preview Search                       | `rfkid_6` | `Preview Search` | It is an input that does a quick search over the content. It is included on the page header.                                 | Every page                      |\n\n## Contributions\n\nWe are very grateful to the community for contributing bug fixes and improvements. We welcome all efforts to evolve and improve the Sitecore Developer Portal; read below to learn how to participate in those efforts.\n\n### [Code of Conduct](https://github.com/Sitecore/developer-portal/blob/main/CODE_OF_CONDUCT.md)\n\nSitecore has adopted a Code of Conduct that we expect project participants to adhere to. Please read [the full text](https://github.com/Sitecore/developer-portal/blob/main/CODE_OF_CONDUCT.md) so that you can understand what actions will and will not be tolerated.\n\n### Contributing Guide\n\nIf you want to make changes to the code, follow these steps:\n\n1. Fork the Developer Portal Repo GitHub repo.\n2. Clone the forked repo to your local machine.\n3. Create a feature branch from `main` for your changes. e.g. `git checkout -b my-feature-branch`\n4. `npm install`\n5. `npm run dev` (to preview your changes locally)\n6. Make your changes (_if you changes include images please use the `public/images` folder to store the image(s)_)\n   1. For more information on how to add content visit the [contribute](https://developers.sitecore.com/contribute) page\n7. Commit, push to your remote fork of the Developer Portal repo, then open a pull request (PR) to the `main` branch of the Developer Portal repo.\n\nYour changes will be reviewed and merged if appropriate.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FSitecore%2Fdeveloper-portal","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FSitecore%2Fdeveloper-portal","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FSitecore%2Fdeveloper-portal/lists"}