jonbio/README.md

294 lines
20 KiB
Markdown
Raw Normal View History

2021-01-11 23:57:24 +08:00
![tailwind-nextjs-banner](/public/static/images/twitter-card.png)
2021-01-09 17:50:00 +08:00
2021-01-11 23:57:24 +08:00
# Tailwind Nextjs Starter Blog
2021-05-23 12:55:28 +08:00
[![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/)
[![GitHub forks](https://img.shields.io/github/forks/timlrx/tailwind-nextjs-starter-blog?style=social)](https://GitHub.com/timlrx/tailwind-nextjs-starter-blog/network/)
[![Twitter URL](https://img.shields.io/twitter/url?style=social&url=https%3A%2F%2Ftwitter.com%2Ftimlrxx)](https://twitter.com/timlrxx)
2021-08-08 15:42:51 +08:00
[![Sponsor](https://img.shields.io/static/v1?label=Sponsor&message=%E2%9D%A4&logo=GitHub&link=https://github.com/sponsors/timlrx)](https://github.com/sponsors/timlrx)
2021-05-23 12:47:28 +08:00
2021-01-12 00:16:01 +08:00
[![Deploy with Vercel](https://vercel.com/button)](https://vercel.com/new/git/external?repository-url=https://github.com/timlrx/tailwind-nextjs-starter-blog)
2023-07-30 21:19:08 +08:00
This 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.
Probably 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.
2021-01-11 23:57:24 +08:00
2021-08-08 15:42:51 +08:00
Check out the documentation below to get started.
Facing 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.
2021-12-20 21:02:50 +01:00
Feature 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!
2021-06-10 00:02:59 +08:00
2023-11-14 12:25:43 +08:00
## Variations
2023-10-13 10:57:58 +08:00
**Note**: These are community contributed forks using different frameworks or with significant changes to the codebase - not officially supported.
2023-11-14 12:25:43 +08:00
Astro alternative - [Tailwind Astro Template](https://github.com/wanoo21/tailwind-astro-starting-blog).
Remix-run alternative - [Tailwind Remix-run Starter Blog Template](https://github.com/SangeetAgarwal/tailwind-remix-run-mdxjs-typescript-starter-blog).
Internationalization 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).
2023-07-30 21:19:08 +08:00
## Examples V2
2021-01-17 23:50:15 +08:00
2021-04-24 15:51:31 +08:00
- [Demo Blog](https://tailwind-nextjs-starter-blog.vercel.app/) - this repo
2023-08-05 18:36:30 +08:00
- [My personal blog](https://www.timlrx.com) - modified to auto-generate blog posts with dates
- [Karhdo's Blog](https://karhdo.dev) - Karhdo's Blog - Karhdo's Coding Adventure ([source code](https://github.com/Karhdo/karhdo.dev))
2023-08-15 23:42:49 -04:00
- [ben.codes blog](https://ben.codes) - Benoit's personal blog about software development ([source code](https://github.com/bendotcodes/bendotcodes))
2023-08-25 20:35:15 +08:00
- [tsix blog](https://tsix.top) - A front-end engineer is used to record some knowledge points in work and study _中文_
2023-08-25 21:28:50 +08:00
- [SOTO's Blog](https://www.atksoto.com/) - A more personalized personal website upgraded from V1 ([source code](https://github.com/acsoto/soto-blog-nextjs))
2023-08-28 21:11:58 +05:30
- [Prabhu's Blog](https://prabhukirankonda.vercel.app) - Prabhu's Personal website with blog ([source code](https://github.com/prabhukiran8790/prabhukirankonda))
- [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))
2023-10-01 13:41:56 -07:00
- [enscribe.dev](https://enscribe.dev) - enscribe's personal blog; cybersecurity shenanigans, frontend webdev, etc. ([source code](https://github.com/jktrn/enscribe.dev))
2023-10-31 20:22:41 +08:00
- [dalelarroder.com](https://dalelarroder.com) - Dale Larroder's personal website upgraded from V1 ([source code](https://github.com/dlarroder/dalelarroder))
- [thetalhatahir.com](https://www.thetalhatahir.com) - Talha Tahir's personal blog. Added article thumbnails, linkedIn card, Beautiful hero content, technology emoticons.
- [hauhau.cn](https://www.hauhau.cn) - Homing's personal blog about the stuff he's learning ([source code](https://github.com/hominsu/blog))
2023-11-22 21:37:03 +08:00
- [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))
2023-11-07 21:13:17 +01:00
- [dariuszwozniak.net](https://dariuszwozniak.net/) - Software development blog
- [Terminals.run](https://terminals.run) - Blog site for some thoughts and records for life and technology.
2023-11-24 06:35:03 +00:00
- [markpitblado.me](https://markpitblado.me) - Mark's personal blog about the internet, privacy, and books ([source code](https://github.com/mark-pitblado/personal-website))
2023-12-25 20:53:48 +08:00
- [francisaguilar.co blog](https://francisaguilar.co) - Francis Aguilar's personal blog that talks about tech, fitness, and personal development.
2023-12-23 23:07:14 +09:00
- [Min71 Dev Blog](https://min71.dev) - Personal blog about Blockchain, Development and etc. ([source code](https://github.com/mingi3442/blog))
2023-12-19 22:08:54 +08:00
- [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))
- [Remote Startup Senpai Anime Series Website](https://remote-startup-senpai.com) - Landing page for the anime series Remote Startup Senpai.
2024-01-19 13:45:06 -05:00
- [Secret Base](https://www.jachsu.com/) - Jac Hsu's personal Blog.talks about tech, thought, and life in general.
- [Zsebinformatikus](https://www.zsebinformatikus.hu/) - The information superhighway guide blog.
- [Anton Morgunov's Blog](https://blog.ischemist.com/) - talking about science without oversimplifications or why theoretical and computational chemistry is cool.
2024-01-25 18:55:27 +08:00
- [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))
2023-07-30 21:19:08 +08:00
Using the template? Feel free to create a PR and add your blog to this list.
## Examples V1
2023-08-05 11:16:25 +08:00
[v1-blogs-showcase.webm](https://github.com/timlrx/tailwind-nextjs-starter-blog/assets/28362229/2124c81f-b99d-4431-839c-347e01a2616c)
Thanks 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.
2023-07-30 21:19:08 +08:00
2021-08-08 15:42:51 +08:00
- [Aloisdg's cookbook](https://tambouille.vercel.app/) - with pictures and recipes!
2021-08-09 23:52:05 +08:00
- [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)
2021-08-28 19:54:02 +02:00
- [David Levai's digital garden](https://davidlevai.com/) - customized design and added email subscriptions
2021-09-08 23:46:06 +07:00
- [Leo's Blog](https://leohuynh.dev) - Tuan Anh Huynh's personal site. Add Snippets Page, Author Profile Card, Image Lightbox, ...
- [thvu.dev](https://thvu.dev) - Added `mdx-embed`, view count, reading minutes and more.
2021-12-26 17:39:41 +08:00
- [irvin.dev](https://www.irvin.dev/) - Irvin Lin's personal site. Added YouTube embedding.
2022-01-20 00:18:39 +03:30
- [KirillSo.com](https://www.kirillso.com/) - Personal blog & website.
- [slightlysharpe.com](https://slightlysharpe.com) - [Tincre's](https://tincre.com) main company blog
- [blog.b00st.com](https://blog.b00st.com) - [b00st.com's](https://b00st.com) main music promotion blog
2022-01-30 16:03:49 +05:30
- [astrosaurus.me](https://astrosaurus.me/) - Ephraim Atta-Duncan's Personal Blog
2022-02-01 22:38:22 +08:00
- [dhanrajsp.me](https://dhanrajsp.me/) - Dhanraj's personal site and blog.
2022-01-30 14:36:00 -06:00
- [blog.r00ks.io](https://blog.r00ks.io/) - Austin Rooks's personal blog ([source code](https://github.com/Austionian/blog.r00ks)).
2022-02-01 23:39:57 +08:00
- [honghong.me](https://honghong.me) - Tszhong's personal website ([source code](https://github.com/tszhong0411/home))
- [marceloformentao.dev](https://marceloformentao.dev) - Marcelo Formentão personal website ([source code](https://github.com/marceloavf/marceloformentao.dev)).
- [abiraja.com](https://www.abiraja.com/) - with a [runnable JS code snippet component!](https://www.abiraja.com/blog/querying-solana-blockchain)
2022-02-28 21:32:12 +00:00
- [bpiggin.com](https://www.bpiggin.com) - Ben Piggin's personal blog
- [maqib.cn](https://maqib.cn) - A blog of Chinese front-end developers 狂奔小马的博客 ([源码](https://github.com/maqi1520/nextjs-tailwind-blog))
- [ambilena.com](https://ambilena.com/) - Electronic Music Blog & imprint for upcoming musicians.
- [0xchai.io](https://0xchai.io) - Chai's personal blog
2022-05-26 17:05:35 +05:30
- [techipedia](https://techipedia.vercel.app) - Simple blogging progressive web app with custom installation button and top progress bar
2022-05-26 14:52:30 +05:30
- [reubence.com](https://reubence.com) - Reuben Rapose's Digital Garden
2022-06-17 21:32:24 +08:00
- [axolo.co/blog](https://axolo.co/blog) - Engineering management news & axolo.co updates (with image preview for article in the home page)
- [musing.vercel.app](https://musing.vercel.app/) - Parth Desai's personal blog ([source code](https://github.com/pycoder2000/blog))
2022-06-22 16:17:28 -07:00
- [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))
2023-07-30 21:19:08 +08:00
- [cwarcup.com](https://www.cwarcup.com/) - Curtis Warcup's personal website and blog ([source code](https://github.com/Cwarcup/personal-blog)).
- [ondiek-elijah.me](https://www.ondiek-elijah.me/) - Ondiek Elijah's website and blog ([source code](https://github.com/Dev-Elie/ondiek-elijah)).
2022-07-18 23:11:44 +02:00
- [jmalvarez.dev](https://www.jmalvarez.dev/) - José Miguel Álvarez's personal blog ([source code](https://github.com/josemiguel-alvarez/nextjs-blog))
2022-07-16 12:56:36 -05:00
- [justingosses.com](https://justingosses.com/) - Justin Gosses's personal website and blog ([source code](https://github.com/JustinGOSSES/justingosses-website))
2023-07-30 21:19:08 +08:00
- [https://bitoflearning-9a57.fly.dev/](https://bitoflearning-9a57.fly.dev/) - Sangeet Agarwal's personal blog, replatformed to [remix](https://remix.run/remix) using the [indie stack](https://github.com/remix-run/indie-stack) ([source code](https://github.com/SangeetAgarwal/bitoflearning))
- [raphaelchelly.com](https://www.raphaelchelly.com/) - Raphaël Chelly's personal website and blog ([source code](https://github.com/raphaelchelly/raph_www))
- [kaveh.page](https://kaveh.page) - Kaveh Tehrani's personal blog. Added tags directory, profile card, time-to-read on posts directory, etc.
2021-04-24 15:51:31 +08:00
2021-01-11 23:57:24 +08:00
## Motivation
2021-08-08 15:42:51 +08:00
I 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).
2021-01-11 23:57:24 +08:00
I 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.
## Features
2023-08-05 16:46:56 +08:00
- Next.js with Typescript
2023-07-30 21:19:08 +08:00
- [Contentlayer](https://www.contentlayer.dev/) to manage content logic
2021-12-15 18:05:37 +08:00
- Easy styling customization with [Tailwind 3.0](https://tailwindcss.com/blog/tailwindcss-v3) and primary color attribute
2023-07-30 21:19:08 +08:00
- [MDX - write JSX in markdown documents!](https://mdxjs.com/)
2023-08-05 16:46:56 +08:00
- Near perfect lighthouse score - [Lighthouse report](https://www.webpagetest.org/result/230805_BiDcBQ_4H7)
- Lightweight, 85kB first load JS
2021-01-11 23:57:24 +08:00
- Mobile-friendly view
- Light and dark theme
2023-07-30 21:19:08 +08:00
- Font optimization with [next/font](https://nextjs.org/docs/app/api-reference/components/font)
- Integration with [pliny](https://github.com/timlrx/pliny) that provides:
- Multiple analytics options including [Umami](https://umami.is/), [Plausible](https://plausible.io/), [Simple Analytics](https://simpleanalytics.com/), Posthog and Google Analytics
- Comments via [Giscus](https://github.com/laymonage/giscus), [Utterances](https://github.com/utterance/utterances) or Disqus
- Newsletter API and component with support for Mailchimp, Buttondown, Convertkit, Klaviyo, Revue, and Emailoctopus
- Command palette search with [Kbar](https://github.com/timc1/kbar) or Algolia
2021-07-11 23:35:19 +08:00
- Server-side syntax highlighting with line numbers and line highlighting via [rehype-prism-plus](https://github.com/timlrx/rehype-prism-plus)
2021-01-11 23:57:24 +08:00
- Math display supported via [KaTeX](https://katex.org/)
2021-12-20 21:02:50 +01:00
- Citation and bibliography support via [rehype-citation](https://github.com/timlrx/rehype-citation)
2021-01-11 23:57:24 +08:00
- Automatic image optimization via [next/image](https://nextjs.org/docs/basic-features/image-optimization)
- Support for tags - each unique tag will be its own page
2021-06-10 00:02:59 +08:00
- Support for multiple authors
2023-07-30 21:19:08 +08:00
- 3 different blog layouts
- 2 different blog listing layouts
- Support for nested routing of blog posts
2021-02-14 19:16:14 +08:00
- Projects page
2021-12-22 02:12:44 +01:00
- Preconfigured security headers
2021-01-11 23:57:24 +08:00
- SEO friendly with RSS feed, sitemaps and more!
2021-01-12 22:47:03 +08:00
## Sample posts
- [A markdown guide](https://tailwind-nextjs-starter-blog.vercel.app/blog/github-markdown-guide)
- [Learn more about images in Next.js](https://tailwind-nextjs-starter-blog.vercel.app/blog/guide-to-using-images-in-nextjs)
- [A tour of math typesetting](https://tailwind-nextjs-starter-blog.vercel.app/blog/deriving-ols-estimator)
- [Simple MDX image grid](https://tailwind-nextjs-starter-blog.vercel.app/blog/pictures-of-canada)
- [Example of long prose](https://tailwind-nextjs-starter-blog.vercel.app/blog/the-time-machine)
- [Example of Nested Route Post](https://tailwind-nextjs-starter-blog.vercel.app/blog/nested-route/introducing-multi-part-posts-with-nested-routing)
2021-01-12 22:47:03 +08:00
2021-01-11 23:57:24 +08:00
## Quick Start Guide
2023-07-30 21:19:08 +08:00
1. Clone the repo
2021-12-15 18:05:37 +08:00
2021-12-08 11:41:57 +07:00
```bash
2023-07-30 21:19:08 +08:00
npx degit 'timlrx/tailwind-nextjs-starter-blog'
2021-12-08 11:41:57 +07:00
```
2. Personalize `siteMetadata.js` (site related information)
2022-02-10 11:43:22 +01:00
3. Modify the content security policy in `next.config.js` if you want to use
2023-07-30 21:19:08 +08:00
other analytics provider or a commenting solution other than giscus.
2022-02-10 11:43:22 +01:00
4. Personalize `authors/default.md` (main author)
5. Modify `projectsData.ts`
6. Modify `headerNavLinks.ts` to customize navigation links
2022-02-10 11:43:22 +01:00
7. Add blog posts
8. Deploy on Vercel
2021-01-11 23:57:24 +08:00
2021-12-24 17:44:39 +08:00
## Installation
```bash
2023-07-30 21:19:08 +08:00
yarn
2021-12-24 17:44:39 +08:00
```
Please note, that if you are using Windows, you may need to run:
```bash
set PWD="$(pwd)"
```
2021-01-11 23:57:24 +08:00
## Development
2021-01-09 17:50:00 +08:00
First, run the development server:
```bash
2023-07-30 21:19:08 +08:00
yarn dev
2021-01-09 17:50:00 +08:00
```
Open [http://localhost:3000](http://localhost:3000) with your browser to see the result.
2023-07-30 21:19:08 +08:00
Edit the layout in `app` or content in `data`. With live reloading, the pages auto-updates as you edit them.
2021-01-09 17:50:00 +08:00
2021-01-11 23:57:24 +08:00
## Extend / Customize
`data/siteMetadata.js` - contains most of the site related information which should be modified for a user's need.
2021-01-11 23:57:24 +08:00
2021-06-10 00:02:59 +08:00
`data/authors/default.md` - default author information (required). Additional authors can be added as files in `data/authors`.
2021-12-20 21:02:50 +01:00
`data/projectsData.js` - data used to generate styled card on the projects page.
2021-02-14 19:16:14 +08:00
`data/headerNavLinks.js` - navigation links.
2021-01-11 23:57:24 +08:00
`data/logo.svg` - replace with your own logo.
`data/blog` - replace with your own blog posts.
`public/static` - store assets such as images and favicons.
2023-07-30 21:19:08 +08:00
`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.
2021-01-11 23:57:24 +08:00
`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).
2023-07-30 21:19:08 +08:00
`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.
`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).
2021-01-11 23:57:24 +08:00
2023-07-30 21:19:08 +08:00
`layouts` - main templates used in pages:
2021-01-09 17:50:00 +08:00
2023-07-30 21:19:08 +08:00
- 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.
- 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.
2021-01-09 17:50:00 +08:00
2023-07-30 21:19:08 +08:00
`app` - pages to route to. Read the [Next.js documentation](https://nextjs.org/docs/app) for more information.
2021-12-22 02:12:44 +01:00
`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.
2021-01-09 17:50:00 +08:00
## Post
2023-07-30 21:19:08 +08:00
Content 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.
### Frontmatter
Frontmatter follows [Hugo's standards](https://gohugo.io/content-management/front-matter/).
2023-07-30 21:19:08 +08:00
Please refer to `contentlayer.config.ts` for an up to date list of supported fields. The following fields are supported:
```
title (required)
date (required)
2023-07-30 21:19:08 +08:00
tags (optional)
lastmod (optional)
draft (optional)
summary (optional)
2023-07-30 21:19:08 +08:00
images (optional)
2021-06-10 00:02:59 +08:00
authors (optional list which should correspond to the file names in `data/authors`. Uses `default` if none is specified)
layout (optional list which should correspond to the file names in `data/layouts`)
canonicalUrl (optional, canonical url for the post for SEO)
```
Here's an example of a post's frontmatter:
```
---
title: 'Introducing Tailwind Nexjs Starter Blog'
date: '2021-01-12'
lastmod: '2021-01-18'
tags: ['next-js', 'tailwind', 'guide']
draft: false
summary: '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.'
images: ['/static/images/canada/mountains.jpg', '/static/images/canada/toronto.jpg']
2021-06-10 00:02:59 +08:00
authors: ['default', 'sparrowhawk']
layout: PostLayout
canonicalUrl: https://tailwind-nextjs-starter-blog.vercel.app/blog/introducing-tailwind-nextjs-starter-blog
---
```
2021-01-11 23:57:24 +08:00
## Deploy
2021-01-09 17:50:00 +08:00
2021-01-11 23:57:24 +08:00
**Vercel**
2023-07-30 21:19:08 +08:00
The 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.
2021-01-09 17:50:00 +08:00
**Netlify**
[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.
See [Next.js on Netlify](https://docs.netlify.com/integrations/frameworks/next-js/overview/#next-js-runtime) for suggested configuration values and more details.
2023-07-30 21:19:08 +08:00
**Static hosting services / GitHub Pages / S3 / Firebase etc.**
2021-09-10 23:24:41 +08:00
2023-07-30 21:19:08 +08:00
1. Add `output: 'export'` in `next.config.js`. See [static exports documentation](https://nextjs.org/docs/app/building-your-application/deploying/static-exports#configuration) for more information.
2023-08-13 10:46:27 +08:00
2. Comment out `headers()` from `next.config.js`.
2023-11-21 11:37:13 +08:00
3. Add `unoptimized: true` to the `images` key in `next.config.js`:
2023-08-19 15:29:10 +08:00
Alternatively, 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.
2023-08-13 10:46:27 +08:00
4. 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.
5. Run `yarn build`. The generated static content is in the `out` folder.
6. Deploy the `out` folder to your hosting service of choice or run `npx serve out` to view the website locally.
**Note**: Deploying on Github pages require addition modifications to the base path. Please refer to the FAQ for more information.
2023-11-21 11:37:13 +08:00
## Frequently Asked Questions
2023-11-21 11:38:18 +08:00
- [How can I add a custom MDX component?](/faq/custom-mdx-component.md)
- [How can I customize the `kbar` search?](/faq/customize-kbar-search.md)
2023-11-21 11:39:19 +08:00
- [How do I deploy on Github pages?](/faq/github-pages-deployment.md)
2023-08-25 20:35:15 +08:00
2021-08-08 15:42:51 +08:00
## Support
2021-12-20 21:02:50 +01:00
Using 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).
2021-08-08 15:42:51 +08:00
## Licence
2023-08-05 15:53:09 +08:00
[MIT](https://github.com/timlrx/tailwind-nextjs-starter-blog/blob/main/LICENSE) © [Timothy Lin](https://www.timlrx.com)