{"id":19495253,"url":"https://github.com/rodik-dev/local-fish-v2","last_synced_at":"2026-04-11T11:37:57.952Z","repository":{"id":76766600,"uuid":"408090557","full_name":"rodik-dev/local-fish-v2","owner":"rodik-dev","description":"Jamstack site created with Stackbit","archived":false,"fork":false,"pushed_at":"2021-10-05T18:12:30.000Z","size":5410,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-02-25T20:36:05.129Z","etag":null,"topics":["git","headless","jamstack","nextjs","ssg","stackbit","static"],"latest_commit_sha":null,"homepage":"https://jamstack.new","language":"JavaScript","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/rodik-dev.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":"2021-09-19T09:59:13.000Z","updated_at":"2021-09-19T09:59:22.000Z","dependencies_parsed_at":null,"dependency_job_id":"b91597e7-3185-4e8b-bec7-7b1264f4444b","html_url":"https://github.com/rodik-dev/local-fish-v2","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/rodik-dev/local-fish-v2","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rodik-dev%2Flocal-fish-v2","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rodik-dev%2Flocal-fish-v2/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rodik-dev%2Flocal-fish-v2/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rodik-dev%2Flocal-fish-v2/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rodik-dev","download_url":"https://codeload.github.com/rodik-dev/local-fish-v2/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rodik-dev%2Flocal-fish-v2/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":269649848,"owners_count":24453541,"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-09T02:00:10.424Z","response_time":111,"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":["git","headless","jamstack","nextjs","ssg","stackbit","static"],"created_at":"2024-11-10T21:36:44.674Z","updated_at":"2026-04-11T11:37:52.931Z","avatar_url":"https://github.com/rodik-dev.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Stackbit Nextjs V2\n\nThe NextJs core starter for Stackbit.\n\n## Quickstart\n\n```\nnpm install\n```\n\n```\nnpm run dev\n```\n\n### Add a new page\n\nCreate a new markdown file `content/pages/new-page.md` with the following frontmatter.\n\n```yaml\n---\ntitle: \"New Example Page\"\nlayout: \"AdvancedLayout\"\nsections:\n  - type: \"HeroSection\"\n    variant: \"variant-a\"\n    width: \"wide\"\n    height: \"auto\"\n    alignHoriz: \"left\"\n    badge: \"Brand New\"\n    title: \"My Heading\"\n    text: \"a long description\"\n    actions:\n      - type: \"Button\"\n        url: \"/\"\n        label: \"Home\"\n        style: \"primary\"\n    feature:\n      type: \"ImageBlock\"\n      imageUrl: \"/images/hero.png\"\n      imageAltText: \"Image alt text\"\n      imageCaption: \"Image caption\"\n---\n```\n\nVisit http://localhost:3000/new-page/ to see the new page.\n\n\u003e **Note:** The pages url will match the file path - `content/pages/new-page.md` will resolve to _/new-page_. A nested folder like `content/pages/blog/index.md` will resolve to _/blog/_\n\n### Add a menu item\n\nMenu items are configured in `content/data/config.json`. Edit the config file and add a new menu object to the `primaryLinks` array.\n\n```js\n// content/data/config.json\n{\n  \"navBar\": {\n    // ...\n    \"primaryLinks\": [\n      // ...\n      {\n        \"type\": \"Link\",\n        \"label\": \"My New Page\",\n        \"url\": \"/new-page\",\n        \"altText\": \"\"\n      }\n    ],\n    // ...\n  }\n}\n```\n\n### Adding more sections to the page\n\nAdd a [🧩 CtaSection](https://components.stackbit.com/?path=/docs/components-contactsection--primary) to the page by adding the component to the the sections array.\n\n```yaml\n# content/pages/new-page.md\n---\ntitle: \"New Example Page\"\nlayout: \"AdvancedLayout\"\nsections: # sections array\n  - type: \"HeroSection\"\n    # ...\n  - type: \"CtaSection\"\n    variant: \"variant-a\"\n    width: \"wide\"\n    height: \"auto\"\n    alignHoriz: \"center\"\n    title: \"Let's do this\"\n    text: \"The Stackbit theme is flexible and scalable to every need. It can manage any layout and any screen.\"\n    actions:\n      - type: \"Button\"\n        url: \"/contact\"\n        label: \"Get Started\"\n        style: \"primary\"\n---\n```\n\n\n**Component Library:** The [Stackbit Component Library](https://develop--stackbit-components.netlify.app/?path=/story/layouts-advancedlayout--primary) has full documentation on each component including the available props and frontmatter.\n\n\n **Component Examples**\n\n  - [🧩 CtaSection](https://components.stackbit.com/?path=/docs/components-contactsection--primary)\n  - [🧩 ContactSection](https://components.stackbit.com/?path=/docs/components-contentsection--primary)\n  - [🧩 FeaturedPeopleSection](https://components.stackbit.com/?path=/docs/components-featuredpeoplesection--primary)\n  - [🧩 FeaturedPostsSection](https://components.stackbit.com/?path=/docs/components-featuredpostssection--primary)\n\n### Adding your own components\n\nIn this example we will create a new component that displays a grid of logos.\n\nCreate a new react component in `src/components/LogoSection.js`\n\n```js\nimport React from 'react';\n\nconst LogoSection = (props) =\u003e {\n  const { logos, title } = props;\n  return (\n    \u003cdiv className=\"max-w-screen-xl mx-auto px-4 sm:px-6 py-14 lg:py-20 mt-10 mb-10 text-center\"\u003e\n      \u003ch1 className=\"text-3xl tracking-tight sm:text-4xl mb-2\"\u003e{title}\u003c/h1\u003e\n      \u003cdiv className=\"flex justify-center items-center\"\u003e\n        {logos.map((logo, index) =\u003e (\n          \u003cdiv className=\"p-6\" key={index}\u003e\n            \u003cimg className=\"mb-2\" height=\"60px\" width=\"60px\" src={logo.image} /\u003e\n            \u003ch2 className=\"text-sm text-gray-400\"\u003e{logo.name}\u003c/h2\u003e\n          \u003c/div\u003e\n        ))}\n      \u003c/div\u003e\n    \u003c/div\u003e\n  );\n};\n\nexport default LogoSection;\n```\n\nRegister the component in `.stackbit/components-map.json`\n\n```js\n{\n    \"README\": \"Components set to 'null' will be loaded from @stackbit/components library. To override a component, set it to relative paths of your component\",\n    \"components\": {\n        \"Action\": null,\n        ...\n        \"LogoSection\": \"../src/components/LogoSection.js\"\n    },\n    \"dynamic\": {\n        \"CheckboxFormControl\": \"@stackbit/components/components/CheckboxFormControl\",\n        ...\n        \"LogoSection\": \"../src/components/LogoSection.js\"\n    }\n}\n```\n\nAdd a new model for the `LogoSection` component. Create a new model file at `.stackbit/models/LogoSection.yml`\n\n```yml\ntype: object\nname: LogoSection\nlabel: Logo section\nfields:\n  - type: string\n    name: title\n  - type: list\n    name: logos\n    items:\n      type: object\n      fields:\n        - type: string\n          name: name\n        - type: image\n          name: image\n```\n\nExtend the [🧩 AdvancedLayout](https://components.stackbit.com/?path=/docs/layouts-advancedlayout--primary) model. Open the model file at `.stackbit/models/AdvancedLayout.yml`\n\n```yml\ntype: page\nname: AdvancedLayout\nlabel: Advanced page\nlayout: AdvancedLayout\nhideContent: true\nfields:\n  - type: string\n    name: title\n    label: Title\n  - type: list\n    name: sections\n    label: Sections\n    items:\n      type: model\n      models:\n        - ContactSection\n        ...\n        - LogoSection\n```\n\nAdd the component to the homepage content. Edit `content/pages/index.md`\n\n```yml\n---\ntitle: Home\nlayout: AdvancedLayout\nsections:\n  - type: HeroSection\n    ...\n  - type: LogoSection\n    title: \"Our Partners\"\n    logos:\n      - name: 'Stackbit'\n        image: '/images/stackbit.svg'\n      - name: 'NextJs'\n        image: '/images/nextdotjs.svg'\n---\n```\n\nDownload the images and place them in the `/public/images/` folder.\n* https://simpleicons.org/icons/stackbit.svg\n* https://simpleicons.org/icons/nextdotjs.svg\n\n### Extending a Stackbit component\n\nIn this example we will extend an existing Stackbit component.\n\n### Understanding Layouts\n\nExplain how layouts work.\n\n* How does the `layout` field work?\n* How does the `layout` field effect which frontmatter fields can be used?\n* The layout is both a component and a model. Explain this concept.\n\n### Editing the CSS\n\nYou can edit the tailwind config in `tailwind.config.js`\n\nThe Stackbit component library includes a number of Tailwind preset configurations which will dramatically change the themes look and feel.\n\n* [@stackbit/components/themes/tailwind.bold.config.js](https://github.com/stackbit/stackbit-components/blob/main/themes/tailwind.bold.config.js)\n* [@stackbit/components/themes/tailwind.eco.config.js](https://github.com/stackbit/stackbit-components/blob/main/themes/tailwind.eco.config.js)\n* [@stackbit/components/themes/tailwind.modern.config.js](https://github.com/stackbit/stackbit-components/blob/main/themes/tailwind.modern.config.js)\n* [@stackbit/components/themes/tailwind.retro.config.js](https://github.com/stackbit/stackbit-components/blob/main/themes/tailwind.retro.config.js)\n\nUse the `presets` option to change the configuration.\n\n```js\n// tailwind.config.js\nmodule.exports = {\n  presets: [require('@stackbit/components/themes/tailwind.bold.config')],\n  // ...\n}\n```\n\n#### Changing the primary color\n\n```js\nmodule.exports = {\n  ...\n  darkMode: false, // or 'media' or 'class'\n  theme: {\n    extend: {\n      colors: {\n        primary: '#207bea',\n        secondary: '#FFF7E3',\n        base: '#262626',\n        'complimentary-1': '#e8f3ee',\n        'complimentary-2': '#e2e4ff',\n        info: '#EA5234'\n      }\n    }\n  },\n  ...\n};\n```\n\n#### Changing a color palette\n\n```js\nmodule.exports = {\n  ...\n  plugins: [\n    plugin(function ({ addBase, addComponents, theme }) {\n      addComponents({\n        '.colors-e': {\n          '@apply bg-red-500 text-base': {},\n          '.sb-input,.sb-select,.sb-textarea': {\n            '@apply border-base placeholder-base': {}\n          },\n          '.sb-btn-primary': {\n            '@apply bg-base border-base text-white hover:bg-opacity-70 hover:border-opacity-70': {}\n          },\n          '.sb-btn-secondary': {\n            '@apply border-base text-base hover:border-opacity-60 hover:text-base': {}\n          },\n          '.sb-divider': {\n            '@apply before:bg-base': {}\n          },\n          '.sb-card': {\n            '@apply bg-secondary': {}\n          }\n        }\n      });\n    })\n  ]\n};\n```\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frodik-dev%2Flocal-fish-v2","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frodik-dev%2Flocal-fish-v2","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frodik-dev%2Flocal-fish-v2/lists"}