{"id":18932664,"url":"https://github.com/yougotwill/barbie","last_synced_at":"2025-09-12T11:50:26.326Z","repository":{"id":226120855,"uuid":"767795367","full_name":"yougotwill/barbie","owner":"yougotwill","description":null,"archived":false,"fork":false,"pushed_at":"2024-03-06T04:22:03.000Z","size":9766,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"main","last_synced_at":"2024-12-31T20:28:44.127Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"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/yougotwill.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":"2024-03-05T22:59:22.000Z","updated_at":"2024-03-05T22:59:36.000Z","dependencies_parsed_at":"2024-11-08T11:50:21.171Z","dependency_job_id":"e003778f-22ad-4578-ac83-4c1b26ce4604","html_url":"https://github.com/yougotwill/barbie","commit_stats":null,"previous_names":["yougotwill/barbie"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yougotwill%2Fbarbie","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yougotwill%2Fbarbie/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yougotwill%2Fbarbie/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yougotwill%2Fbarbie/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/yougotwill","download_url":"https://codeload.github.com/yougotwill/barbie/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239931559,"owners_count":19720541,"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-08T11:50:11.179Z","updated_at":"2025-02-20T23:28:49.711Z","avatar_url":"https://github.com/yougotwill.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# NEXTJS STARTER TEMPLATE\n\nThis project is built with [Next.js](https://nextjs.org/), [shadcn/ui](https://ui.shadcn.com/), [TailwindCSS](https://tailwindcss.com/) \u0026 [TypeScript](https://www.typescriptlang.org/).\n\n## Features\n\n- NextJS 13\n- TailwindCSS 3\n  - Class sorting using `prettier-plugin-tailwindcss`\n- Typescript 5\n- shadcn/ui\n- Code Formatting via Prettier\n- Commit linting using Conventional Commits\n- Lint and format staged files using [lint-staged](https://github.com/okonet/lint-staged/)\n- Responsive Layout\n- Custom 404 page\n- Security Headers\n- RSS Feed (opt-in)\n- Optiomised SEO and Link Metadata (Lighthouse SEO score = 100)\n- Automatic sitemap generation\n- Staging environment support\n- Accessbility Linting\n- First class Visual Studio Code integration\n\n## Getting Started\n\nFirst, install the required packages:\n\n```bash\nyarn install\n```\n\nBy default yarn will install using `--frozen-lockfile` which makes sure that the environment is consistent on any machine by installing the exact package versions listed in the [yarn.lock](yarn.lock). You can opt out of the behaviour by adding `--force`.\n\nSecond, run the development server:\n\n```bash\nyarn dev\n```\n\nOpen [http://localhost:3000](http://localhost:3000) with your browser to see the result.\n\n## Development\n\nYou can start editing the page by modifying `app/page.tsx`. The page auto-updates as you edit the file.\n\n**Always** run `yarn build \u0026\u0026 yarn start` to see how the code works in a production environment before committing.\n\nFor staging environments use `build:staging` and `start:staging`.\n\n- This updates the system environment variables and page metadata.\n\nUses [@axe-core/react](https://github.com/dequelabs/axe-core-npm/blob/develop/packages/react/README.md) for accessbility testing.\n\nUses the `cn` alias built on [tailwind-merge](https://github.com/dcastil/tailwind-merge/) to organise our classes into groups that combine at build time.\n\n### Committing your changes\n\nBefore a commit is accepted the staged changes will be formatted using [prettier](https://prettier.io/) and linted using [eslint](https://eslint.org/). The commit will be reverted if files are formatted or lint errors are returned.\n\n#### Commit Message Convention\n\nThis project follows [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/)\n\nCommit messages will be checked using [husky](https://typicode.github.io/husky/#/) and [commitlint](https://commitlint.js.org/).\n\n### TailwindCSS\n\n#### Class organisation\n\nThis helps with readability and is encouraged. Consider it to be a guideline and not a set of rules.\n\n##### React\n\n```jsx\n  \u003cdiv className={cn(\n    \"general classes here - colors, fonts, padding, margin etc\",\n    \"each responsive class utility should have it's own string md: lg: etc.\"\n    \"placeholder classes\",\n    \"animations, transforms, effect\",\n    \"pseudo classes i.e hover, focus, active, etc.\",\n    \"toggling classes i.e. NavMenu isExpanded\"\n  )}\u003e\u003c/div\u003e\n```\n\n##### Custom CSS classes\n\nAny custom CSS classes should be written in [globals.css](src/app/globals.css).\n\n```css\n.custom-class {\n  @apply \"general classes here - colors, fonts, padding, margin\";\n  @apply \"group breakpointed classes into their own strings\";\n  @apply \"placeholder classes\";\n  @apply \"animations, transforms, effect\";\n  @apply \"pseudo classes i.e hover, focus, active\";\n}\n```\n\n#### Notes\n\n- We can't use template literals with classes if we want to purge the CSS.\n  - https://github.com/tailwindlabs/tailwindcss/issues/2209#issuecomment-677855297\n  - https://tailwindcss.com/docs/optimizing-for-production#writing-purgeable-html\n  - Avoid: `hover:bg-black hover:text-${bgColor}`\n  - Do: `const hoverClasses = [backgroundColor === 'black' \u0026\u0026 'bg-black hover:text-black'];`\n\n## Deployment\n\n1. Once you have a domain replace all instances of `YOUR_DOMAIN_HERE` in this project.\n2. Edit [constants/metadata.ts](constants/metadata.ts) with your project info for accurate metadata and effective SEO.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyougotwill%2Fbarbie","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fyougotwill%2Fbarbie","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyougotwill%2Fbarbie/lists"}