{"id":19111257,"url":"https://github.com/callicoder/nextjs-blog-theme","last_synced_at":"2025-02-22T11:22:27.362Z","repository":{"id":232554477,"uuid":"733522040","full_name":"callicoder/nextjs-blog-theme","owner":"callicoder","description":null,"archived":false,"fork":false,"pushed_at":"2023-12-19T14:15:57.000Z","size":3403,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-01-03T04:28:56.960Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","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/callicoder.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}},"created_at":"2023-12-19T14:13:29.000Z","updated_at":"2023-12-19T14:16:14.000Z","dependencies_parsed_at":"2024-04-10T09:41:35.274Z","dependency_job_id":"56320ea0-f811-4c97-863b-632740332cc0","html_url":"https://github.com/callicoder/nextjs-blog-theme","commit_stats":null,"previous_names":["callicoder/nextjs-blog-theme"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/callicoder%2Fnextjs-blog-theme","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/callicoder%2Fnextjs-blog-theme/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/callicoder%2Fnextjs-blog-theme/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/callicoder%2Fnextjs-blog-theme/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/callicoder","download_url":"https://codeload.github.com/callicoder/nextjs-blog-theme/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240165295,"owners_count":19758351,"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-09T04:27:48.893Z","updated_at":"2025-02-22T11:22:27.338Z","avatar_url":"https://github.com/callicoder.png","language":"JavaScript","readme":"![Netlify Next.js Blog Template designed by Bejamas](https://user-images.githubusercontent.com/43764894/223762618-62742b4e-9424-44a7-8e85-9f7e4e19db54.png)\n\n\n[![Deploy to Netlify Button](https://www.netlify.com/img/deploy/button.svg)](https://app.netlify.com/start/deploy?repository=https://github.com/netlify-templates/nextjs-blog-theme)\n\n\nA customizable blog starter using:\n\n- [Next.js](https://github.com/vercel/next.js) v12\n- [Tailwind](https://tailwindcss.com/) v3.0\n- Built-in [MDX](https://mdxjs.com/) v1 support\n- Includes modern design with dark \u0026 light themes\n\n![Preview of blog theme. Author named Jay Doe and blog's name is \"Next.js Blog Theme\" with one blog post](nextjs-blog-theme-preview.png)\n\n[Take a gander at the demo.](https://bejamas-nextjs-blog.netlify.app)\n\n[Click here to watch the template walkthrough!](https://www.youtube.com/watch?v=63QZHs259dY)\n\n## Table of Contents:\n\n- [Getting Started](#getting-started)\n  - [Setting Up Locally](#setting-up-locally)\n  - [Using the Wizard](#using-the-setup-wizard)\n- [Configuring the Blog](#configuring-the-blog)\n- [Adding New Posts](#adding-new-posts)\n- [Testing](#testing)\n  - [Included Default Testing](#included-default-testing)\n  - [Removing Renovate](#removing-renovate)\n  - [Removing Cypress](#removing-cypress)\n\n## Getting Started\n\n---\n\nYou can get started with this project in two ways: locally or using the [setup wizard](https://nextjs-wizard.netlify.app/).\n\n### Setting Up Locally\n\nIf you're doing it locally, start with clicking the [use this template](https://github.com/netlify-templates/nextjs-blog-theme/generate) button on GitHub. This will create a new repository with this template's files on your GitHub account. Once that is done, clone your new repository and navigate to it in your terminal.\n\nFrom there, you can install the project's dependencies by running:\n\n```shell\nyarn install\n```\n\nFinally, you can run your project locally with:\n\n```shell\nyarn run dev\n```\n\nOpen your browser and visit \u003chttp://localhost:3000\u003e, your project should be running!\n\n### Using the Setup Wizard\n\n![Preview of Setup Wizard showing the initial page of a setup form](nextjs-setup-wizard.png)\n\nThrough the [setup wizard](https://nextjs-wizard.netlify.app/), you can create your blog in a few clicks and deploy to Netlify.\n\n## Configuring the blog\n\nThe config is based on environment variables to make it easy to integrate with any Jamstack platform, like Netlify.\n\nHere are the variables you can edit:\n| Variable | Description | Options\n| --- | --- | --- |\n| `BLOG_NAME` | the name of your blog, displayed below the avatar ||\n| `BLOG_TITLE` | the main header (`h1`) on the home page ||\n| `BLOG_FOOTER_TEXT`| the text in the footer ||\n| `BLOG_THEME` | the theme to pass to Tailwind | default |\n| `BLOG_FONT_HEADINGS` | the font-family for all HTML headings, from `h1` to `h6`| sans-serif (default), serif, monospace|\n| `BLOG_FONT_PARAGRAPHS` | the font-family for all other HTML elements | sans-serif (default), serif, monospace|\n\nAll of the env variables can be configured through the [Wizard](https://nextjs-wizard.netlify.app/) or through setting the project's environment variables. You can do this in your Netlify dashaboard (Site settings/Build \u0026 deploy/Environment/Environment variables).\n\nhttps://user-images.githubusercontent.com/3611928/153997545-6dcdeef0-e570-49e7-93d6-ce0d393d16c9.mp4\n\n[alt: video walkthrough of editing env vars]\n\nIf setting an environment variable isn't your cup of tea, the defaults can be changed in [`utils/global-data.js`](/utils/global-data.js). You can also remove the variables and hard code blog information where these variables are used in the code base.\n\n- `BLOG_THEME, BLOG_FONT_HEADINGS, \u0026 BLOG_FONT_PARAGRAPHS` are used in [`tailwind-preset.js`](tailwind-preset.js)\n- `BLOG_NAME, BLOG_TITLE, BLOG_FOOTER_TEXT` are used in [`pages/index.js`](pages/index.js) \u0026 [`pages/posts/[slug].js`](pages/posts/[slug].js) through the `globalData` object.\n\n## Adding new posts\n\nAll posts are stored in `/posts` directory. To make a new post, create a new file with the [`.mdx` extension](https://mdxjs.com/).\n\nSince the posts are written in `MDX` format you can pass props and components. That means you can use [React components](https://reactjs.org/docs/components-and-props.html) inside your posts to make them more interactive. Learn more about how to do so in the [MDX docs on content](https://mdxjs.com/docs/using-mdx/#components).\n\nhttps://user-images.githubusercontent.com/3611928/152727802-102ec296-41c8-446d-93ed-922d11187073.mp4\n\n[alt: video walkthrough of adding a new blog post]\n\n## Testing\n\n### Included Default Testing\n\nWe’ve included some tooling that helps us maintain these templates. This template currently uses:\n\n- [Renovate](https://www.mend.io/free-developer-tools/renovate/) - to regularly update our dependencies\n- [Cypress](https://www.cypress.io/) - to run tests against how the template runs in the browser\n- [Cypress Netlify Build Plugin](https://github.com/cypress-io/netlify-plugin-cypress) - to run our tests during our build process\n\nIf your team is not interested in this tooling, you can remove them with ease!\n\n### Removing Renovate\n\nIn order to keep our project up-to-date with dependencies we use a tool called [Renovate](https://github.com/marketplace/renovate). If you’re not interested in this tooling, delete the `renovate.json` file and commit that onto your main branch.\n\n### Removing Cypress\n\nFor our testing, we use [Cypress](https://www.cypress.io/) for end-to-end testing. This makes sure that we can validate that our templates are rendering and displaying as we’d expect. By default, we have Cypress not generate deploy links if our tests don’t pass. If you’d like to keep Cypress and still generate the deploy links, go into your `netlify.toml` and delete the plugin configuration lines:\n\n```diff\n[[plugins]]\n  package = \"netlify-plugin-cypress\"\n-  [plugins.inputs.postBuild]\n-    enable = true\n-\n-  [plugins.inputs]\n-    enable = false\n```\n\nIf you’d like to remove the `netlify-plugin-cypress` build plugin entirely, you’d need to delete the entire block above instead. And then make sure sure to remove the package from the dependencies using:\n\n```bash\nnpm uninstall -D netlify-plugin-cypress\n```\n\nAnd lastly if you’d like to remove Cypress entirely, delete the entire `cypress` folder and the `cypress.config.ts` file. Then remove the dependency using:\n\n```bash\nnpm uninstall cypress\n```\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcallicoder%2Fnextjs-blog-theme","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcallicoder%2Fnextjs-blog-theme","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcallicoder%2Fnextjs-blog-theme/lists"}