{"id":14990989,"url":"https://github.com/pauloamgomes/netcs","last_synced_at":"2025-06-28T02:02:39.995Z","repository":{"id":208719748,"uuid":"720538819","full_name":"pauloamgomes/netcs","owner":"pauloamgomes","description":"A Personal Website and Blog Starter based on Next 15, React 19, TailwindCSS with DaisyUI, Contentful, and Turso DB.","archived":false,"fork":false,"pushed_at":"2025-03-24T06:58:03.000Z","size":21984,"stargazers_count":20,"open_issues_count":3,"forks_count":4,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-12T03:29:32.695Z","etag":null,"topics":["contentful","contentful-starter","daisyui","nextjs","nextjs14","nextjs14-starter","nextjs15","react","tailwindcss","tailwindcss-starter-project","turso"],"latest_commit_sha":null,"homepage":"https://netcs.vercel.app","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/pauloamgomes.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":"2023-11-18T19:40:46.000Z","updated_at":"2025-02-11T09:02:08.000Z","dependencies_parsed_at":"2025-03-24T07:44:19.617Z","dependency_job_id":null,"html_url":"https://github.com/pauloamgomes/netcs","commit_stats":{"total_commits":18,"total_committers":1,"mean_commits":18.0,"dds":0.0,"last_synced_commit":"89458442e3eae8efc9db1b86ab85b1ae315e7be9"},"previous_names":["pauloamgomes/netcs"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/pauloamgomes/netcs","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pauloamgomes%2Fnetcs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pauloamgomes%2Fnetcs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pauloamgomes%2Fnetcs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pauloamgomes%2Fnetcs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pauloamgomes","download_url":"https://codeload.github.com/pauloamgomes/netcs/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pauloamgomes%2Fnetcs/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262362035,"owners_count":23299117,"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":["contentful","contentful-starter","daisyui","nextjs","nextjs14","nextjs14-starter","nextjs15","react","tailwindcss","tailwindcss-starter-project","turso"],"created_at":"2024-09-24T14:21:15.677Z","updated_at":"2025-06-28T02:02:39.975Z","avatar_url":"https://github.com/pauloamgomes.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Netcs - Next Tailwind Contentful Easy Personal Website Starter\n\n## Why?\n\nAfter so much time working with Contentful and Next, I never found a single consistent way of starting a project,\nand all starters that tried have their own caveats, some are too basic without touching the real problems like handling GraphQL query complexity limits or are too strict.\nI'm not saying this starter is better as there are many ways to accomplish the same thing when building with these technologies.\nAnyway, it was a lot of fun building it, exploring the nice features of React SSR inside Next.js, and playing with Contentful content modeling capabilities.\n\n\u003e 🚨 **WARNING** 🚨\nThis project is the culmination of my own experimentations with Next.js and Contentful and it may not be suitable for your needs.\nAll contents present in Contentful are fake, mostly generated using AI tools like ChatGPT and DALL-E.\n\n## Demo\n\nProject is deployed live at [https://netcs.vercel.app/](https://netcs.vercel.app/)\n\n## Documentation\n\n[https://netcs.vercel.app/help](https://netcs.vercel.app/help)\n\n## Tech Stack\n\n- ⚡️ [Next.js 15](https://nextjs.org/blog/next-15) with [App router](https://nextjs.org/docs/app)\n- ⚛️ [React 19](https://react.dev/blog/2024/04/25/react-19)\n- ✨ [TypeScript](https://www.typescriptlang.org)\n- 💨 [TailwindCSS](https://tailwindcss.com) + 🌻 [DaisyUI](https://daisyui.com)\n- 🌞 [Contentful Headless CMS](https://www.contentful.com)\n- 🗄️ [Turso DB](https://turso.tech)\n- 👷 Code on Github under the MIT License.\n- 🌩️ [Hosted on Vercel](https://vercel.com) but be free to use a compatible hosting solution that you prefer\n- 📦 [Code Editor Field App for Contentful](https://github.com/pauloamgomes/Contentful-Code-Editor-Field-App)\n- 📦 [Readingtime App for Contentful](https://github.com/pauloamgomes/contentful-readingtime-field-app)\n\n## Main Features\n\n- Flexible and composable content models\n- SEO ready with Metadata being generated based on specific SEO fields but with fallbacks in place\n- Generation of GraphQL (schema, and types), in sync with the content types via graphql-codegen.\n- Typescript\n- Tailwind CSS via DaisyUI\n- Nextjs SSR components\n- Contentful Live preview\n- Contentful Dashboard example App for visualizing stats on Articles views counts\n\n## Requirements\n\n- Access to a Contentful space (you can register for free here [https://www.contentful.com/get-started/](https://www.contentful.com/get-started/))\n- Optionally Turso DB is required for newsletter signups and article views counter.\n- An environment where you can run Node 18+\n- pnpm installed\n\n## Getting Started\n\n### Installation\n\n1. Clone the repo\n2. Install with pnpm\n\n```bash\ngit clone git@github.com:pauloamgomes/netcs.git\ncd netcs\npnpm install\n\ncp .env.example .env\n\n# Grab your Contentful Space ID, Environment ID and Access Token and update the .env file\n# CONTENTFUL_SPACE_ID=\u003cyour-space-id\u003e\n# CONTENTFUL_ENVIRONMENT_ID=\u003cyour-environment-id\u003e\n# CONTENTFUL_ACCESS_TOKEN=\u003cyour-access-token\u003e\n# CONTENTFUL_MANAGEMENT_TOKEN=\u003cyour-mgmt-token\u003e\n```\n\n#### If you want to have article view counts and newsletter registration (optional)\n\n1. Create a Turso database\n2. Get an Auth token\n3. Place the Turso database url and auth token in your .env file\n4. Run the migration command and push the migrations\n\n```bash\n# install and check installed version\nbrew install tursodatabase/tap/turso\nturso --version\n\n# signup/auth\nturso auth signup # signup with github\n\n# db creation\nturso db create netcs-db # choose your own db name\n\n# get db endpoint and auth token\nturso db show netcs-db\nturso db tokens create netcs-db\n\n# run and push the migrations\npnpm run db:generate\npnpm run db:push\n\n# check on the Turso dashboard for your changes or run the editor locally\npnpm run db:studio\n```\n\n#### Import example Data into Contentful\n\nIn order to be able to start the local server Contentful needs to have all content models created along with the example data, you can easily do it using the command:\n\n```bash\npnpm run contentful:import\n```\n\nThe above command will import all example data you can see in this example website in your space.\n\n\u003e **WARNING**\nYou need to have an empty environment without any content models created.\nYou need to install 2 Contentful Apps mentioned when running the import command.\nYou can optionally install 1 Contentful Apps mentioned when running the import command.\nPlease also note that the migration data is using a default Contentful locale en-US, if you want a different locale you'll need to manipulate the exported data by replacing in the migration JSON file all keys containing en-US.\n\n#### Start Local server\n\nIf you did all the previous steps without errors and you feel courageous you can try to start the local server by running:\n\n```bash\npnpm run dev\n```\n\nand you should see:\n\n```bash\n\u003e graphql-codegen --config codegen.ts\n\n✔ Parse Configuration\n✔ Generate outputs\n   ▲ Next.js 14.0.2\n   - Local:        http://localhost:3000\n   - Environments: .env\n\n ✓ Ready in 1113ms\n```\n\nAnd voila, it works! 🎉\n\nOpen [http://localhost:3000](http://localhost:3000) with your browser to see the result.\n\n\n## License\n\nMIT License, see [LICENSE](./LICENSE).","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpauloamgomes%2Fnetcs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpauloamgomes%2Fnetcs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpauloamgomes%2Fnetcs/lists"}