{"id":22220243,"url":"https://github.com/aleydon/next14","last_synced_at":"2026-04-07T21:31:10.617Z","repository":{"id":265778299,"uuid":"862144926","full_name":"Aleydon/Next14","owner":"Aleydon","description":"Next-14 template configured with typescript, eslint, prettier, husky (pre-commit), storybook, prisma, jest, testing-library and more...","archived":false,"fork":false,"pushed_at":"2024-11-30T21:42:25.000Z","size":497,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-25T07:41:40.746Z","etag":null,"topics":["javascript","jest","js","next","next14","nextjs","react","reactjs","testing-library","testing-library-react","testing-library-react-hooks","ts","typescript"],"latest_commit_sha":null,"homepage":"","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/Aleydon.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-09-24T05:45:30.000Z","updated_at":"2025-02-19T23:12:28.000Z","dependencies_parsed_at":"2024-11-30T22:49:33.511Z","dependency_job_id":null,"html_url":"https://github.com/Aleydon/Next14","commit_stats":null,"previous_names":["aleydon/next14"],"tags_count":0,"template":true,"template_full_name":null,"purl":"pkg:github/Aleydon/Next14","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Aleydon%2FNext14","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Aleydon%2FNext14/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Aleydon%2FNext14/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Aleydon%2FNext14/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Aleydon","download_url":"https://codeload.github.com/Aleydon/Next14/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Aleydon%2FNext14/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":268820501,"owners_count":24312402,"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","status":"online","status_checked_at":"2025-08-05T02:00:12.334Z","response_time":2576,"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":["javascript","jest","js","next","next14","nextjs","react","reactjs","testing-library","testing-library-react","testing-library-react-hooks","ts","typescript"],"created_at":"2024-12-02T23:07:37.749Z","updated_at":"2026-04-07T21:31:10.246Z","avatar_url":"https://github.com/Aleydon.png","language":"TypeScript","readme":"\u003ch2 align='center'\u003e:earth_americas: Next 14 Template :earth_americas:\u003c/h2\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cbr\u003e\n  \u003cimg width=\"900\" src=\"./assets/next14.png\" alt=\"logo of Next14 repository\"\u003e\n  \u003cbr\u003e\n  \u003cbr\u003e\n\u003c/p\u003e\n\n## :pushpin: Requirements: :pushpin:\n\nNodeJs: :link: https://nodejs.org/en/\n\n---\n\n#### :arrow_forward: Get Started:\n\n1. Clone this repo\n\n```sh\ngit clone https://github.com/Aleydon/Next14.git\n```\n\n2. Install NPM packages\n\n```sh\nnpm install or yarn install\n```\n\n3.  Run this project\n\n```sh\nnpm run dev or yarn dev\n```\n\n---\n\n\u003ch2\u003eTemplate configuration:\u003c/h2\u003e\n\n- Jest + Testing Library for automated testing. :link: https://jestjs.io/ + https://testing-library.com/\n- Storybook for component documentation. :link: https://storybook.js.org/\n- Eslint + Prettier for code standardization and formatting. :link: https://eslint.org/ + https://prettier.io/\n- Typescript for typing. :link: https://www.typescriptlang.org/\n- Tailwind Css for styling components. :link: https://tailwindcss.com/\n- HuskyJs for automatically lint your commit messages, code, and run tests upon committing or pushing. :link: https://typicode.github.io/husky/\n\n---\n\n\u003ch2\u003eTests + Storybook:\u003c/h2\u003e\n\n- How to run tests:\n\n```sh\nnpm run test or npm run test:watch\n```\n\nIt has an example of tests with Jest + Testing-Library in _src/app/page.spec.tsx_\n\n```ts\nimport { render, screen } from '@testing-library/react';\n\nimport Page from './page';\n\ndescribe('Page Component', () =\u003e {\n  it('should get the text hello world', () =\u003e {\n    render(\u003cPage /\u003e);\n    const hello = screen.getByText('Hello World');\n    expect(hello).toBeDefined();\n  });\n\n  it('should get the text hello world in the component s heading', () =\u003e {\n    render(\u003cPage /\u003e);\n    const heading = screen.getByRole('heading', {\n      name: 'Hello World'\n    });\n    expect(heading).toBeInTheDocument();\n  });\n\n  it('must get the link from the page component', () =\u003e {\n    render(\u003cPage /\u003e);\n    const link = screen.getByRole('link', { name: 'github.com/Aleydon' });\n    expect(link).toBeDefined();\n    expect(link).toHaveAttribute('target', '_blank');\n    expect(link).toHaveAttribute('aria-label', 'github.com/Aleydon');\n  });\n});\n\n```\n\n---\n\n- How to run storybook:\n\n```sh\nnpm run storybook or yarn storybook\n```\n\n\u003cp align=\"center\"\u003e\n  \u003cbr\u003e\n  \u003cimg width=\"1100\" src=\"./assets/storybok_screen_shot.png\" alt=\"storybook running\"\u003e\n  \u003cbr\u003e\n  \u003cbr\u003e\n\u003c/p\u003e\n\nalso has an example of using Storybook in the Text component in _src/app/components/Text/text.stories.tsx_\n\n```ts\nimport type { Meta, StoryObj } from '@storybook/react';\n\nimport Text, { type TextProps } from '.';\n\nconst text: Meta\u003ctypeof Text\u003e = {\n  component: Text,\n  title: 'Components/Text'\n};\n\nexport default text;\n\nexport const Small: StoryObj\u003cTextProps\u003e = {\n  args: {\n    size: 'small',\n    children: 'Small Text'\n  }\n};\n\nexport const Medium: StoryObj\u003cTextProps\u003e = {\n  args: {\n    size: 'medium',\n    children: 'Medium Text'\n  }\n};\nexport const Large: StoryObj\u003cTextProps\u003e = {\n  args: {\n    size: 'large',\n    children: 'Large Text'\n  }\n};\n```\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faleydon%2Fnext14","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faleydon%2Fnext14","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faleydon%2Fnext14/lists"}