{"id":27334496,"url":"https://github.com/general-translation/blog","last_synced_at":"2025-04-12T14:39:00.675Z","repository":{"id":279514751,"uuid":"938994411","full_name":"General-Translation/blog","owner":"General-Translation","description":null,"archived":false,"fork":false,"pushed_at":"2025-04-02T17:08:32.000Z","size":10696,"stargazers_count":0,"open_issues_count":1,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-04-12T04:48:26.197Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://gt-blog-ten.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/General-Translation.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},"funding":{"github":"timlrx"}},"created_at":"2025-02-25T20:28:20.000Z","updated_at":"2025-04-02T17:08:36.000Z","dependencies_parsed_at":"2025-04-02T02:34:30.297Z","dependency_job_id":null,"html_url":"https://github.com/General-Translation/blog","commit_stats":null,"previous_names":["general-translation/blog"],"tags_count":0,"template":false,"template_full_name":"timlrx/tailwind-nextjs-starter-blog","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/General-Translation%2Fblog","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/General-Translation%2Fblog/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/General-Translation%2Fblog/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/General-Translation%2Fblog/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/General-Translation","download_url":"https://codeload.github.com/General-Translation/blog/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248581909,"owners_count":21128261,"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":"2025-04-12T14:38:59.914Z","updated_at":"2025-04-12T14:39:00.664Z","avatar_url":"https://github.com/General-Translation.png","language":"TypeScript","funding_links":["https://github.com/sponsors/timlrx","https://img.shields.io/static/v1?label=Sponsor\u0026message=%E2%9D%A4\u0026logo=GitHub\u0026link=https://github.com/sponsors/timlrx"],"categories":[],"sub_categories":[],"readme":"![tailwind-nextjs-banner](/public/static/images/twitter-card.png)\n\n# Tailwind Nextjs Starter Blog\n\n[![GitHub Repo stars](https://img.shields.io/github/stars/timlrx/tailwind-nextjs-starter-blog?style=social)](https://GitHub.com/timlrx/tailwind-nextjs-starter-blog/stargazers/)\n[![GitHub forks](https://img.shields.io/github/forks/timlrx/tailwind-nextjs-starter-blog?style=social)](https://github.com/timlrx/tailwind-nextjs-starter-blog/forks)\n[![Twitter URL](https://img.shields.io/twitter/url?style=social\u0026url=https%3A%2F%2Ftwitter.com%2Ftimlrxx)](https://x.com/timlrxx)\n[![Sponsor](https://img.shields.io/static/v1?label=Sponsor\u0026message=%E2%9D%A4\u0026logo=GitHub\u0026link=https://github.com/sponsors/timlrx)](https://github.com/sponsors/timlrx)\n\n[![Deploy with Vercel](https://vercel.com/button)](https://vercel.com/new/git/external?repository-url=https://github.com/timlrx/tailwind-nextjs-starter-blog)\n\nThis is a [Next.js](https://nextjs.org/), [Tailwind CSS](https://tailwindcss.com/) blogging starter template. Version 2 is based on Next App directory with [React Server Component](https://nextjs.org/docs/getting-started/react-essentials#server-components) and uses [Contentlayer](https://www.contentlayer.dev/) to manage markdown content.\n\nProbably the most feature-rich Next.js markdown blogging template out there. Easily configurable and customizable. Perfect as a replacement to existing Jekyll and Hugo individual blogs.\n\nCheck out the documentation below to get started.\n\nFacing issues? Check the [FAQ page](https://github.com/timlrx/tailwind-nextjs-starter-blog/wiki) and do a search on past issues. Feel free to open a new issue if none has been posted previously.\n\nFeature request? Check the past discussions to see if it has been brought up previously. Otherwise, feel free to start a new discussion thread. All ideas are welcomed!\n\n## Variations\n\n**Note**: These are community contributed forks using different frameworks or with significant changes to the codebase - not officially supported.\n\nAstro alternative - [Tailwind Astro Template](https://github.com/wanoo21/tailwind-astro-starting-blog).\n\nRemix-run alternative - [Tailwind Remix-run Starter Blog Template](https://github.com/SangeetAgarwal/tailwind-remix-run-mdxjs-typescript-starter-blog).\n\nInternationalization support - [Template with i18n](https://tailwind-nextjs-starter-blog-i18n.vercel.app/) and [source code](https://github.com/PxlSyl/tailwind-nextjs-starter-blog-i18n/tree/main).\n\n## Examples V2\n\n- [Demo Blog](https://tailwind-nextjs-starter-blog.vercel.app/) - this repo\n- [My personal blog](https://www.timlrx.com) - modified to auto-generate blog posts with dates\n- [Karhdo's Blog](https://karhdo.dev) - Karhdo's Blog - Karhdo's Coding Adventure ([source code](https://github.com/Karhdo/karhdo.dev))\n- [tsix blog](https://tsix.top) - A front-end engineer is used to record some knowledge points in work and study _中文_\n- [SOTO's Blog](https://www.atksoto.com/) - A more personalized personal website upgraded from V1 ([source code](https://github.com/acsoto/soto-blog-nextjs))\n- [Prabhu's Blog](https://v1-prabhukirankonda.vercel.app) - Prabhu's Personal website with blog ([source code](https://github.com/prabhukiran8790/prabhukirankonda))\n- [Rabby Hasan's Blog](https://blog.rabbyhasan.com.bd/) - Rabby Hasan's personal blog about full stack development with cloud ([source code](https://github.com/rabbyalone/myblog))\n- [enscribe.dev](https://enscribe.dev) - enscribe's personal blog; cybersecurity shenanigans, frontend webdev, etc. ([source code](https://github.com/jktrn/enscribe.dev))\n- [dalelarroder.com](https://dalelarroder.com) - Dale Larroder's personal website upgraded from V1 ([source code](https://github.com/dlarroder/dalelarroder))\n- [thetalhatahir.com](https://www.thetalhatahir.com) - Talha Tahir's personal blog. Added article thumbnails, linkedIn card, Beautiful hero content, technology emoticons.\n- [homing.so](https://homing.so) - Homing's personal blog about the stuff he's learning ([source code](https://github.com/hominsu/blog))\n- [zS1m's Blog](https://contrails.space) - zS1m's personal blog for recording and sharing daily learning technical content ([source code](https://github.com/zS1m/nextjs-contrails))\n- [dariuszwozniak.net](https://dariuszwozniak.net/) - Software development blog ([source code](https://github.com/dariusz-wozniak/dariuszwozniak.net-v2))\n- [dreams.plus](https://dreams.plus) - Blog site for some thoughts and records for life and technology.\n- [francisaguilar.co blog](https://francisaguilar.co) - Francis Aguilar's personal blog that talks about tech, fitness, and personal development.\n- [Min71 Dev Blog](https://min71.dev) - Personal blog about Blockchain, Development and etc. ([source code](https://github.com/mingi3442/blog))\n- [Bryce Yu's Blog](https://earayu.github.io/) - Bryce Yu's personal Blog about distributed system, database, and web development. ([source code](https://github.com/earayu/earayu.github.io))\n- [Remote Startup Senpai Anime Series Website](https://remote-startup-senpai.com) - Landing page for the anime series Remote Startup Senpai.\n- [Secret Base](https://www.jachsu.com/) - Jac Hsu's personal Blog.talks about tech, thought, and life in general.\n- [Zsebinformatikus](https://www.zsebinformatikus.hu/) - The information superhighway guide blog.\n- [Anton Morgunov's Blog](https://blog.ischemist.com/) - talking about science without oversimplifications or why theoretical and computational chemistry is cool.\n- [Hans Blog](https://www.hansking.cn/) - Hans' personal blog, front-end technology, gallery and travel diary 中文. ([source code](https://github.com/hansking98/hans-nextjs-blog))\n- [London Tech Talk](https://london-tech-talk.com/) - A podcast exploring technology trends and expatriate living experiences. - 日本語\n- [CRUD Flow Blog](http://blog.ndamulelo.co.za/) - A technical blog about AI, Cloud Engineering, Data Science and Personal development\n- [Trillium's Blog](https://trilliumsmith.com/) - Modified to render resume pdf on `/resume` page. ([source code](https://github.com/trillium/trilliumsmith.com))\n- [Wujie's Blog: 旅行者计划](https://www.wujieli.com/) - Wujie's personal digital garden ([source code](https://github.com/wujieli0207/wujie-blog-next))\n- [Xiaodong's Blog](https://blog.linxiaodong.com) - Xiaodong's personal blog about front-end technology, and life. 「中文」([source code](https://github.com/buxuku/buxuku.github.io))\n- [Azurtelier.com](https://www.azurtelier.com/) - Amos's personal website for tech, music, AI illustrations, etc. [English/中文] ([Source code](https://github.com/AmosChenZixuan/Azurtelier.com))\n- [JoshHaines.com](https://www.JoshHaines.com/) - Personal website for Josh Haines. ([source code](https://github.com/jdhaines/joshhaines))\n- [Jigu's Blog](https://animeirl.top) - Jigu's personal blog about tech, crypto, golang, and life. 「中文」\n- [andrewsam.xyz](https://www.andrewsam.xyz/) - Andrew's Personal website using ShadCN, Prisma, MongoDB, Auth.js, Resume Page, Custom Experience timeline and technologies components. ([source code](https://github.com/andrew-sameh/andrewsam.xyz))\n- [Rulli Damara Putra's Portfolio](https://www.damaraputra.my.id/) - Rully's personal blog and portfolio.\n- [blog.taoluyuan.com 套路猿](https://blog.taoluyuan.com) - A personal tech blog that supports multi-theme switching. 「中英」\n- [LyricsDecode.com](https://lyricsdecode.com) - A song lyrics website offering original lyrics, Romanisation, and English translations with customisable viewing options.\n- [bmacharia.com](https://bmacharia.com/) - Benson Macharia's technical blog about Cybersecurity and IT Risk Management.\n- [armujahid.me](https://armujahid.me/) - Abdul Rauf's personal blog about tech and random stuff.\n- [leohuynh.dev](https://www.leohuynh.dev/) - 🇻🇳 Leo's dev blog – stories, insights, and ideas. Add `/snippets`, `/books` pages, add `ProfileCard`, `CareerTimeline` components and many more. ([source](https://github.com/hta218/leohuynh.dev))\n- [OpenSats Blog](https://opensats.org/blog) - A 501(c)(3) public charity which aims to sustainably fund free and open-source projects. ([source code](https://github.com/OpenSats/website))\n- [Schedles Blog](https://schedles.com/blog) - Social media scheduling tips, strategies, and product updates for content creators. ([Project Link](https://schedles.com))\n- [YawDev Blog](https://yawdev.org/blog) - IT-Agency / Software Development. Blog about tech and business ([Project Link](https://yawdev.org))\n- [Engineering Notes](https://www.jonvet.com) - Jonas Vetterle Personal Website \u0026 Blog. I'm writing articles about software engineering that interest me, including AI and Quantum Computing\n- [Screenager.dev](https://screenager.vercel.app) - Personal Website as Portfolio \u0026 Blog. Documenting my learning journey and some guides.\n- [kezhenxu94's blog](https://kezhenxu94.me) - Blogging about dev, tips \u0026 tricks, tutorials and more.\n- [Parminder's blog](https://singhspeak.com) - Thoughts on software development, life and more.\n- [wheelcircuit.com](https://wheelcircuit.com) - Automotive YouTube News \u0026 Videos blog, updated daily.\n- [taitrd.com](https://taitrd.com) - Tai's personal dev blog, technologies and coding activity with Dynamodb practice ([source code](https://github.com/taitrd/taitrd)).\n- [Shelton's Blog](https://www.sheltonma.top) - Sharing insights on TypeScript full-stack development (Next.js, React, Hono, Supabase), web crawlers, and other cutting-edge technologies.\n- [Culture DevOps](https://culturedevops.com/en) - Technical blog on DevOps practices and tools ([source code](https://github.com/CultureDevOps/blog)).\n- [InnovateWire Blog](https://innovatewire.com) - A tech blog about software automation and automation tools ([Project Link](https://innovatewire.com))\n- [MichaelScheiwiller.com](https://www.michaelscheiwiller.com/) - Mix of software and data engineering blog as well as personal notes and updates\n- [Wahyu Ikbal Personal Website](https://www.wahyuikbal.web.id) - Personal website with blog and ai feature, share about Technology literacy ([source code](https://github.com/wahyudesu/Personal-Website-Next-js-Obsidian-Ai-))\n- [ByteGeometry Blog](https://bytegeometry.com/blog) - Software development blog about tech trends and business growth. AI and web-apps development ([Project Link](https://bytegeometry.com))\n- [Farhad's Blog](https://www.farhad.my) - Farhad's personal website sharing tech news and insights on emerging technologies, with a focus on AI and Data Science ([Project Link](https://farhad.my))\n- [Utanzu Cybersecurity](https://utanzu.com/) – A thriving community where mentorship and expert training help cybersecurity professionals unlock their full potential and advance their careers.\n\nUsing the template? Feel free to create a PR and add your blog to this list.\n\n## Examples V1\n\n[v1-blogs-showcase.webm](https://github.com/timlrx/tailwind-nextjs-starter-blog/assets/28362229/2124c81f-b99d-4431-839c-347e01a2616c)\n\nThanks to the community of users and contributors to the template! We are no longer accepting new blog listings over here. If you have updated from version 1 to version 2, feel free to remove your blog from this list and add it to the one above.\n\n- [Aloisdg's cookbook](https://tambouille.vercel.app/) - with pictures and recipes!\n- [GautierArcin's demo with next translate](https://tailwind-nextjs-starter-blog-seven.vercel.app/) - includes translation of mdx posts, [source code](https://github.com/GautierArcin/tailwind-nextjs-starter-blog/tree/demo/next-translate)\n- [David Levai's digital garden](https://davidlevai.com/) - customized design and added email subscriptions\n- [thvu.dev](https://thvu.dev) - Added `mdx-embed`, view count, reading minutes and more.\n- [irvin.dev](https://www.irvin.dev/) - Irvin Lin's personal site. Added YouTube embedding.\n- [KirillSo.com](https://www.kirillso.com/) - Personal blog \u0026 website.\n- [slightlysharpe.com](https://slightlysharpe.com) - [Tincre's](https://tincre.com) main company blog\n- [blog.b00st.com](https://blog.b00st.com) - [b00st.com's](https://b00st.com) main music promotion blog\n- [astrosaurus.me](https://astrosaurus.me/) - Ephraim Atta-Duncan's Personal Blog\n- [dhanrajsp.me](https://dhanrajsp.me/) - Dhanraj's personal site and blog.\n- [blog.r00ks.io](https://blog.r00ks.io/) - Austin Rooks's personal blog ([source code](https://github.com/Austionian/blog.r00ks)).\n- [honghong.me](https://honghong.me) - Tszhong's personal website ([source code](https://github.com/tszhong0411/home))\n- [marceloformentao.dev](https://marceloformentao.dev) - Marcelo Formentão personal website ([source code](https://github.com/marceloavf/marceloformentao.dev)).\n- [abiraja.com](https://www.abiraja.com/) - with a [runnable JS code snippet component!](https://www.abiraja.com/blog/querying-solana-blockchain)\n- [bpiggin.com](https://www.bpiggin.com) - Ben Piggin's personal blog\n- [maqib.cn](https://maqib.cn) - A blog of Chinese front-end developers 狂奔小马的博客 ([源码](https://github.com/maqi1520/nextjs-tailwind-blog))\n- [ambilena.com](https://ambilena.com/) - Electronic Music Blog \u0026 imprint for upcoming musicians.\n- [techipedia](https://techipedia.vercel.app) - Simple blogging progressive web app with custom installation button and top progress bar\n- [reubence.com](https://reubence.com) - Reuben Rapose's Digital Garden\n- [axolo.co/blog](https://axolo.co/blog) - Engineering management news \u0026 axolo.co updates (with image preview for article in the home page)\n- [musing.vercel.app](https://musing.vercel.app/) - Parth Desai's personal blog ([source code](https://github.com/pycoder2000/blog))\n- [onyourmental.com](https://www.onyourmental.com/) - [Curtis Warcup's](https://github.com/Cwarcup) website for the On Your Mental Podcast ([source code](https://github.com/Cwarcup/on-your-mental))\n- [cwarcup.com](https://www.cwarcup.com/) - Curtis Warcup's personal website and blog ([source code](https://github.com/Cwarcup/personal-blog)).\n- [jmalvarez.dev](https://www.jmalvarez.dev/) - José Miguel Álvarez's personal blog ([source code](https://github.com/josemiguel-alvarez/nextjs-blog))\n- [justingosses.com](https://justingosses.com/) - Justin Gosses's personal website and blog ([source code](https://github.com/JustinGOSSES/justingosses-website))\n- [raphaelchelly.com](https://www.raphaelchelly.com/) - Raphaël Chelly's personal website and blog ([source code](https://github.com/raphaelchelly/raph_www))\n- [kaveh.page](https://kaveh.page) - Kaveh Tehrani's personal blog. Added tags directory, profile card, time-to-read on posts directory, etc.\n- [drakerossman.com](https://drakerossman.com/) - Drake Rossman's blog about NixOS, Rust, Software Architecture and Engineering Management, as well as general musings.\n- [meamenu.com](https://www.meamenu.com) - Landing page and product blog starting from this template. It also uses [framer-motion](https://www.framer.com/motion) for animations, custom layout templates, [waline](https://waline.js.org/en/) for blog comments and [primereact](https://primereact.org/) forms [Ita]\n- [giovanni.orciuolo.it](https://giovanni.orciuolo.it) - Giovanni Orciuolo's personal website, blog and everything nerd.\n\n## Motivation\n\nI wanted to port my existing blog to Nextjs and Tailwind CSS but there was no easy out of the box template to use so I decided to create one. Design is adapted from [Tailwindlabs blog](https://github.com/tailwindlabs/blog.tailwindcss.com).\n\nI wanted it to be nearly as feature-rich as popular blogging templates like [beautiful-jekyll](https://github.com/daattali/beautiful-jekyll) and [Hugo Academic](https://github.com/wowchemy/wowchemy-hugo-modules) but with the best of React's ecosystem and current web development's best practices.\n\n## Features\n\n- Next.js with Typescript\n- [Contentlayer](https://www.contentlayer.dev/) to manage content logic\n- Easy styling customization with [Tailwind 3.0](https://tailwindcss.com/blog/tailwindcss-v3) and primary color attribute\n- [MDX - write JSX in markdown documents!](https://mdxjs.com/)\n- Near perfect lighthouse score - [Lighthouse report](https://www.webpagetest.org/result/230805_BiDcBQ_4H7)\n- Lightweight, 85kB first load JS\n- Mobile-friendly view\n- Light and dark theme\n- Font optimization with [next/font](https://nextjs.org/docs/app/api-reference/components/font)\n- Integration with [pliny](https://github.com/timlrx/pliny) that provides:\n  - Multiple analytics options including [Umami](https://umami.is/), [Plausible](https://plausible.io/), [Simple Analytics](https://simpleanalytics.com/), Posthog and Google Analytics\n  - Comments via [Giscus](https://github.com/laymonage/giscus), [Utterances](https://github.com/utterance/utterances) or Disqus\n  - Newsletter API and component with support for Mailchimp, Buttondown, Convertkit, Klaviyo, Revue, Emailoctopus and Beehiiv\n  - Command palette search with [Kbar](https://github.com/timc1/kbar) or Algolia\n- Server-side syntax highlighting with line numbers and line highlighting via [rehype-prism-plus](https://github.com/timlrx/rehype-prism-plus)\n- Math display supported via [KaTeX](https://katex.org/)\n- Citation and bibliography support via [rehype-citation](https://github.com/timlrx/rehype-citation)\n- [Github alerts](https://docs.github.com/en/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/basic-writing-and-formatting-syntax#alerts) via [remark-github-blockquote-alert](https://github.com/jaywcjlove/remark-github-blockquote-alert)\n- Automatic image optimization via [next/image](https://nextjs.org/docs/basic-features/image-optimization)\n- Support for tags - each unique tag will be its own page\n- Support for multiple authors\n- 3 different blog layouts\n- 2 different blog listing layouts\n- Support for nested routing of blog posts\n- Projects page\n- Preconfigured security headers\n- SEO friendly with RSS feed, sitemaps and more!\n\n## Sample posts\n\n- [A markdown guide](https://tailwind-nextjs-starter-blog.vercel.app/blog/github-markdown-guide)\n- [Learn more about images in Next.js](https://tailwind-nextjs-starter-blog.vercel.app/blog/guide-to-using-images-in-nextjs)\n- [A tour of math typesetting](https://tailwind-nextjs-starter-blog.vercel.app/blog/deriving-ols-estimator)\n- [Simple MDX image grid](https://tailwind-nextjs-starter-blog.vercel.app/blog/pictures-of-canada)\n- [Example of long prose](https://tailwind-nextjs-starter-blog.vercel.app/blog/the-time-machine)\n- [Example of Nested Route Post](https://tailwind-nextjs-starter-blog.vercel.app/blog/nested-route/introducing-multi-part-posts-with-nested-routing)\n\n## Quick Start Guide\n\n1. Clone the repo\n\n```bash\nnpx degit 'timlrx/tailwind-nextjs-starter-blog'\n```\n\n2. Personalize `siteMetadata.js` (site related information)\n3. Modify the content security policy in `next.config.js` if you want to use\n   other analytics provider or a commenting solution other than giscus.\n4. Personalize `authors/default.md` (main author)\n5. Modify `projectsData.ts`\n6. Modify `headerNavLinks.ts` to customize navigation links\n7. Add blog posts\n8. Deploy on Vercel\n\n## Installation\n\n```bash\nyarn\n```\n\nPlease note, that if you are using Windows, you may need to run:\n\n```bash\n$env:PWD = $(Get-Location).Path\n```\n\n## Development\n\nFirst, 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\nEdit the layout in `app` or content in `data`. With live reloading, the pages auto-updates as you edit them.\n\n## Extend / Customize\n\n`data/siteMetadata.js` - contains most of the site related information which should be modified for a user's need.\n\n`data/authors/default.md` - default author information (required). Additional authors can be added as files in `data/authors`.\n\n`data/projectsData.js` - data used to generate styled card on the projects page.\n\n`data/headerNavLinks.js` - navigation links.\n\n`data/logo.svg` - replace with your own logo.\n\n`data/blog` - replace with your own blog posts.\n\n`public/static` - store assets such as images and favicons.\n\n`tailwind.config.js` and `css/tailwind.css` - tailwind configuration and stylesheet which can be modified to change the overall look and feel of the site.\n\n`css/prism.css` - controls the styles associated with the code blocks. Feel free to customize it and use your preferred prismjs theme e.g. [prism themes](https://github.com/PrismJS/prism-themes).\n\n`contentlayer.config.ts` - configuration for Contentlayer, including definition of content sources and MDX plugins used. See [Contentlayer documentation](https://www.contentlayer.dev/docs/getting-started) for more information.\n\n`components/MDXComponents.js` - pass your own JSX code or React component by specifying it over here. You can then use them directly in the `.mdx` or `.md` file. By default, a custom link, `next/image` component, table of contents component and Newsletter form are passed down. Note that the components should be default exported to avoid [existing issues with Next.js](https://github.com/vercel/next.js/issues/51593).\n\n`layouts` - main templates used in pages:\n\n- There are currently 3 post layouts available: `PostLayout`, `PostSimple` and `PostBanner`. `PostLayout` is the default 2 column layout with meta and author information. `PostSimple` is a simplified version of `PostLayout`, while `PostBanner` features a banner image.\n- There are 2 blog listing layouts: `ListLayout`, the layout used in version 1 of the template with a search bar and `ListLayoutWithTags`, currently used in version 2, which omits the search bar but includes a sidebar with information on the tags.\n\n`app` - pages to route to. Read the [Next.js documentation](https://nextjs.org/docs/app) for more information.\n\n`next.config.js` - configuration related to Next.js. You need to adapt the Content Security Policy if you want to load scripts, images etc. from other domains.\n\n## Post\n\nContent is modelled using [Contentlayer](https://www.contentlayer.dev/), which allows you to define your own content schema and use it to generate typed content objects. See [Contentlayer documentation](https://www.contentlayer.dev/docs/getting-started) for more information.\n\n### Frontmatter\n\nFrontmatter follows [Hugo's standards](https://gohugo.io/content-management/front-matter/).\n\nPlease refer to `contentlayer.config.ts` for an up to date list of supported fields. The following fields are supported:\n\n```\ntitle (required)\ndate (required)\ntags (optional)\nlastmod (optional)\ndraft (optional)\nsummary (optional)\nimages (optional)\nauthors (optional list which should correspond to the file names in `data/authors`. Uses `default` if none is specified)\nlayout (optional list which should correspond to the file names in `data/layouts`)\ncanonicalUrl (optional, canonical url for the post for SEO)\n```\n\nHere's an example of a post's frontmatter:\n\n```\n---\ntitle: 'Introducing Tailwind Nexjs Starter Blog'\ndate: '2021-01-12'\nlastmod: '2021-01-18'\ntags: ['next-js', 'tailwind', 'guide']\ndraft: false\nsummary: 'Looking for a performant, out of the box template, with all the best in web technology to support your blogging needs? Checkout the Tailwind Nextjs Starter Blog template.'\nimages: ['/static/images/canada/mountains.jpg', '/static/images/canada/toronto.jpg']\nauthors: ['default', 'sparrowhawk']\nlayout: PostLayout\ncanonicalUrl: https://tailwind-nextjs-starter-blog.vercel.app/blog/introducing-tailwind-nextjs-starter-blog\n---\n```\n\n## Deploy\n\n### GitHub Pages\n\nA [`pages.yml`](.github/workflows/pages.yml) workflow is already provided. Simply select \"GitHub Actions\" in: `Settings \u003e Pages \u003e Build and deployment \u003e Source`.\n\n### Vercel\n\nThe easiest way to deploy the template is to deploy on [Vercel](https://vercel.com). Check out the [Next.js deployment documentation](https://nextjs.org/docs/app/building-your-application/deploying) for more details.\n\n### Netlify\n\n[Netlify](https://www.netlify.com/)’s Next.js runtime configures enables key Next.js functionality on your website without the need for additional configurations. Netlify generates serverless functions that will handle Next.js functionalities such as server-side rendered (SSR) pages, incremental static regeneration (ISR), `next/images`, etc.\n\nSee [Next.js on Netlify](https://docs.netlify.com/integrations/frameworks/next-js/overview/#next-js-runtime) for suggested configuration values and more details.\n\n### Static hosting services (GitHub Pages / S3 / Firebase etc.)\n\nRun:\n\n```sh\n$ EXPORT=1 UNOPTIMIZED=1 yarn build\n```\n\nThen, deploy the generated `out` folder or run `npx serve out` it locally.\n\n\u003e [!IMPORTANT]\n\u003e If deploying with a URL base path, like https://example.org/myblog you need an extra `BASE_PATH` shell-var to the build command:\n\u003e\n\u003e ```sh\n\u003e $ EXPORT=1 UNOPTIMIZED=1 BASE_PATH=/myblog yarn build\n\u003e ```\n\u003e\n\u003e =\u003e In your code, `${process.env.BASE_PATH || ''}/robots.txt` will print `\"/myblog/robots.txt\"` in the `out` build (or only `/robots.txt` if `yarn dev`, ie: on localhost:3000)\n\n\u003e [!TIP]\n\u003e Alternatively to `UNOPTIMIZED=1`, to continue using `next/image`, you can use an alternative image optimization provider such as Imgix, Cloudinary or Akamai. See [image optimization documentation](https://nextjs.org/docs/app/building-your-application/deploying/static-exports#image-optimization) for more details.\n\nConsider removing the following features that cannot be used in a static build:\n\n1. Comment out `headers()` from `next.config.js`.\n2. Remove `api` folder and components which call the server-side function such as the Newsletter component. Not technically required and the site will build successfully, but the APIs cannot be used as they are server-side functions.\n\n## Frequently Asked Questions\n\n- [How can I add a custom MDX component?](/faq/custom-mdx-component.md)\n- [How can I customize the `kbar` search?](/faq/customize-kbar-search.md)\n- [Deploy with docker](/faq/deploy-with-docker.md)\n\n## Support\n\nUsing the template? Support this effort by giving a star on GitHub, sharing your own blog and giving a shoutout on Twitter or becoming a project [sponsor](https://github.com/sponsors/timlrx).\n\n## Licence\n\n[MIT](https://github.com/timlrx/tailwind-nextjs-starter-blog/blob/main/LICENSE) © [Timothy Lin](https://www.timlrx.com)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgeneral-translation%2Fblog","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgeneral-translation%2Fblog","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgeneral-translation%2Fblog/lists"}