A blog template built on the Next.js App Router, with a neutral color interface that highlights the body content
next-theme-coline — Next.js Blog Template
By syfxlin
Coline is a blog template based on the Next.js App Router, emphasizing lightweight, clean typography and content creation, with integrated Keystatic visual editing, Artalk comments, and RSS.
Explore the design
Compare the page layouts and mobile experience. Open any screenshot for a closer look.
Actual screenshot captured by the server browser.
All pages & views 2
Screenshots show visual appearance; interactive behavior may differ.
What stands out
A quick read of the recorded project description.
Integrates Keystatic CMS, supporting visual content editing in the browser
Built-in RSS subscription, making it easy for readers to subscribe via RSS readers
Supports interface language configuration for Simplified Chinese, Traditional Chinese, and English
Connects to Google Analytics and Artalk comments via environment variables, automatically disabled when not configured
Uses Fuse.js to provide in-site search capability
Template Details
Coline (connect + line) is a blog template developed on the Next.js App Router. Its design direction is lightweight and simple, with a neutral color interface that uses bright colors only in specific scenarios, leaving attention to the body content. The template includes built-in RSS subscription and integrates Keystatic CMS for visual editing, making it convenient for authors to write and modify articles in the browser.
In terms of the tech stack, the template uses Next.js App Router, Vanilla Extract for styling, Keystatic for content management, Artalk for comments, and Fuse.js for in-site search. The multilingual interface supports configuration for Simplified Chinese, Traditional Chinese, and English.
Before use, you need a GitHub account and must create a GitHub Token and a Keystatic GitHub App; the comment feature relies on a self-deployed Artalk service, and Google Analytics is optional. Environment variables cover language, analytics, comments, GitHub repository, and Keystatic authentication configurations; when the corresponding variables are not filled in, the related features are disabled. Deployment options include one-click deployment on Vercel and local running with Node.js.
The template is licensed under Apache-2.0, allowing free use, modification, commercial use, and distribution; when distributing, you must include the license and retain attribution notices. Third-party assets such as demo images, fonts, and icons must be checked separately under their respective licenses.
Is it right for your project?
Use Cases
- Building a personal blog focused on text content
- Authors who want to write and modify articles in the browser using a visual CMS
- Independent sites that need RSS subscription, in-site search, and comment features
- Blog projects deployed to Vercel or self-hosted with Node.js
Suitable For
- Blog authors who prefer clean typography and want to reduce interface distractions
- Developers familiar with Next.js and GitHub workflows who can configure environment variables themselves
- Sites that need Chinese-English or multilingual interface configuration
- Users who accept self-deploying the Artalk comment service
Getting started & customization
Use these recorded setup notes alongside the repository instructions for your chosen version.
- 1
Requires a GitHub account, and you need to create a GitHub Token and a Keystatic GitHub App (callback URL required)
- 2
The comment feature relies on a self-deployed Artalk service; you need to configure the site name and service address
- 3
Google Analytics is optional; the feature is disabled when the corresponding environment variable is not filled in
- 4
Environment variables include multiple configurations such as language, analytics, comments, GitHub repository, and Keystatic authentication
- 5
Supports one-click deployment on Vercel, and can also be initialized with create-next-app and then run and built locally
License & source material
Usage conditions & limitations
Free to use · keep license noticeThis entry covers the free version under the Apache-2.0 license in the public repository; the free scope applies to that version's code and does not mean external services or third-party assets are free.
Must comply with when using
- Free use, modification, commercial use, and distribution are permitted; when distributing, you must include the Apache-2.0 license.
- Modified files must prominently indicate changes and retain relevant copyright, patent, trademark, and attribution notices.
- If the original project includes a NOTICE file, you must retain applicable attribution notices when distributing derivative works.
- The license includes an applicable contributor patent grant; initiating patent litigation as described in the license terminates that patent grant, and no trademark rights are granted.
- The code is provided as-is; warranties and limitations of liability are governed by the original license and applicable law.
Additional costs & items to verify
- Before use, you need to register a GitHub account and create a GitHub Token and a Keystatic GitHub App (callback URL required), which is an external account dependency.
- The comment feature relies on a self-deployed Artalk service; you need to configure the site name and service address; when not configured, the comment feature is disabled.
- Google Analytics is an optional analytics feature; you need to register yourself and fill in the Measurement ID; when not filled in, the feature is disabled.
- Site content depends on a specified GitHub repository; you need to configure the repository address and access token, and content is hosted on GitHub.
- Keystatic visual editing requires configuring authentication variables such as the secret, GitHub Client ID/Secret, and App Slug; missing configuration will make it unusable.
- Demo images, fonts, icons, and other third-party assets must be checked under their respective licenses; they cannot be judged solely by the code's Apache-2.0 license.
- External services such as domains, hosting, databases, payments, or AI may incur additional charges.
View Original Text Basis
no-charge, royalty-free, irrevocable copyright license
Original License Text
You have registered [GitHub](https://github.com/) account.
Original README
You have installed [Artalk](https://github.com/ArtalkJS/Artalk) (optional, comment feature)
Original README
You have registered [Google Analytics](https://analytics.google.com/) (optional, analytics features).
Original README
**NEXT_PUBLIC_COLINE_GITHUB_REPO**: GitHub repository for your site
Original README
https://github.com/syfxlin/next-theme-coline/blob/master/LICENSEhttps://github.com/syfxlin/next-theme-coline/blob/master/README.md**KEYSTATIC_SECRET**: 80-bit hex random string, which can be obtained using the `require("crypto").randomBytes(40).toString('hex')` script.
Original README
Compiled by DeepSeek based on repository license and README ·2026-10-03. Results only cover the materials read; dependencies, images, fonts, and subsequent term changes are subject to their respective original texts.
Project checks & description sources
Template Information
- Source platforms
- GitHub
- Documentation and maintenance reference score
- More documented · 86 / 100
- Technologies
- Next.js · HTML · React
- Website type
- Blog
How this score is calculated
Our heuristic uses license records (up to 30), a demo link (12), a preview (10), stars (15), recorded maintenance (15), description completeness (8), feature records (5) and classification data (5). It is not a code, security or performance test, or a Google score. A link does not establish tested functionality.
What to verify for this project
- Repository update recorded
- 2024-10-16
- Screenshot last checked
- 2026-10-03
A demo link is listed. Check it with your own content and viewport sizes; its presence does not confirm that forms, authentication or payments work.
The catalog identifies Next.js as the primary stack. Check the actual dependency manifest and lockfile for versions and hosting requirements. These notes use recorded metadata, not a code audit or a deployment test.
Use a selection guide →How this description was prepared
AI-assisted description based on catalog records and repository material. Repository authors are not automatically the reviewers of this description.
Automatically checked against source and license rules; no manual editorial review.
Inspect the recorded source material
SHA-256: 42aacdb1f048d79850ce655ca9af387e173be54f2d109c6d801f6cad2e371366
2026-10-03T00:38:18.016Z
Source file / repository# Coline - Light, clean and elegant Next.js template
Coline (**co**nnect, **line**) is a blog template based on the Next.js App Router development, built on the concept of lightness and simplicity of design, eschewing fancy interfaces and focusing on content creation.
## Design Concepts
- **Simple, Clean**: The human attention span is limited, and to keep the reader focused on the content, Coline kept the colors to a minimum, using a wide range of neutrals, with bright colors used only for specific scenes, and no information that was not relevant to the content should be present.
- **Light, Fast**: The human have a limited tolerance, and usually readers lose patience with a site that can't load most of its content in less than 3 seconds. Coline excels in LightHouse, with Performance > 98% and Best practice 100%.
- **SEO 100%**: Websites are not just for humans, they need to be for machines as well. Coline has a 100% SEO score in LightHouse. RSS is also supported, allowing readers to subscribe to the blog using an RSS reader.
- **Accessibility**: Not everyone is perfect, and there should be no discrimination against anyone who isn't.Coline makes it as easy as possible for people with disabilities to use. Coline has Accessibility > 90% in LightHouse.
- **Writing-friendly**: The content of the website is written by the author, so it is equally important to have a good writing experience. Coline integrates with Keystatic CMS to support visual editing.
## Technology Stacks
- Next.js 14 (App Router)
- Vanilla Extract
- Keystatic
- Artalk
- Fuse.js
## Examples
- [My Blog](https://blog.ixk.me)
- [Coline Demo](https://next-theme-coline-syfxlin.vercel.app/)
## LightHouse


## Installation
### Requirements
- You have registered [GitHub](https://github.com/) account.
- You have registered [Vercel](https://vercel.com) account (optional, deployed with Vercel).
- You have registered [Google Analytics](https://analytics.google.com/) (optional, analytics features).
- You have installed [Artalk](https://github.com/ArtalkJS/Artalk) (optional, comment feature)
### Prepare Environments
**Create GitHub Token**

**Create Keystatic GitHub App**
- The GitHub App name can be anything you want.
- Please replace blog.ixk.me with your own domain name.
- Please check the Callback URL after creation, if there is something missing, you need to add it again.
- Please keep the GitHub App Name, Client ID, Client Secret after creation, it will be used later.

**Google Analytics、Artalk**
- [Google Analytics](https://analytics.google.com)
- [Artalk](https://artalk.js.org)
### Environment Variables
- **NEXT_PUBLIC_COLINE_LANGUAGE**: Configuration language, optional values `zh-Hans`, `zh-Hant`, `en`.
- **NEXT_PUBLIC_COLINE_GOOGLE_ANALYTICS**: Google Analytics Measurement ID, if you don't fill in this variable, Google Analytics will be disabled.
- **NEXT_PUBLIC_COLINE_ARTALK_SITE_NAME**: Artalk site name, if you don't fill in this variable, Artalk will be disabled.
- **NEXT_PUBLIC_COLINE_ARTALK_SERVER_URL**: Artalk server address, if you don't fill in this variable, Artalk will be disabled.
- **NEXT_PUBLIC_COLINE_GITHUB_REPO**: GitHub repository for your site
- **COLINE_GITHUB_TOKEN**: GitHub Personal Access Token, the steps to create it are given above.
- **KEYSTATIC_SECRET**: 80-bit hex random string, which can be obtained using the `require("crypto").randomBytes(40).toString('hex')` script.
- **KEYSTATIC_GITHUB_CLIENT_ID**: GitHub Client ID, the steps to create it are given above.
- **KEYSTATIC_GITHUB_CLIENT_SECRET**: GitHub Client Secret, the steps to create it are given above.
- **NEXT_PUBLIC_KEYSTATIC_GITHUB_APP_SLUG**: GitHub App Name, the steps to create it are given above.
### Deployment with Vercel
[](https://vercel.com/new/clone?repository-url=https%3A%2F%2Fgithub.com%2Fsyfxlin%2Fnext-theme-coline&env=NEXT_PUBLIC_COLINE_LANGUAGE,NEXT_PUBLIC_COLINE_GOOGLE_ANALYTICS,NEXT_PUBLIC_COLINE_ARTALK_SITE_NAME,NEXT_PUBLIC_COLINE_ARTALK_SERVER_URL,NEXT_PUBLIC_COLINE_GITHUB_REPO,COLINE_GITHUB_TOKEN,KEYSTATIC_SECRET,KEYSTATIC_GITHUB_CLIENT_ID,KEYSTATIC_GITHUB_CLIENT_SECRET,NEXT_PUBLIC_KEYSTATIC_GITHUB_APP_SLUG&project-name=blog&repository-name=blog)
### Deployment with Node.js
**Initializing site project with create-next-app**
```shell
pnpm dlx create-next-app --example https://github.com/syfxlin/next-theme-coline
```
**Configuring the env file**
```shell
cp .env.example .env
# Write environment variables to the .env file
```
**Launch project**
```shell
pnpm dev
```
**Building project**
```shell
pnpm build
```
## Thanks
Many thanks to the following sites for providing design ideas for this template.
- [Anthony Fu](https://antfu.me/)
- [Sukka's Blog](https://blog.skk.moe/)
- [蟬時雨](https://www.chanshiyu.com/)
- [hexo-theme-stellar](https://github.com/xaoxuu/hexo-theme-stellar)
- [wordpress-theme-origami](https://github.com/syfxlin/origami)
- and more...
## Maintainer
**@syfxlin/next-theme-coline** is written and maintained with the help of [Otstar Lin](https://github.com/syfxlin) and the following [contributors](https://github.com/syfxlin/next-theme-coline/graphs/contributors).
## License
Released under the [Apache-2.0](https://opensource.org/licenses/Apache-2.0) License.
Explore similar templates
Compare previews and descriptions within the same stack and category.

tailwind-nextjs-starter-blog
A Next.js and Tailwind CSS blog starter template using Contentlayer for Markdown/MDX, with built-in SEO, code highlighting, and tags. It targets personal technical blogs and migration from Jekyll/Hugo to React, and supports one-click Vercel deployment.
Next.js · Blog

Nextjs-tailwindcss-blog-template
A personal blog template built with Next.js and Tailwind CSS, using Velite to process Markdown content. It includes home, about, contact and article pages, with a demo site and a companion YouTube tutorial.
Next.js · Blog

Next-js-Blog-Boilerplate
A blog starter built on Next.js 12 and Tailwind CSS 3, integrating TypeScript, ESLint, Prettier, and PostCSS.
Next.js · Blog

nextjs-blog-theme
A Next.js 15 and Tailwind CSS 4.x blog starter by Netlify, designed by Bejamas, with MDX support, dark/light theme switching, and environment-variable configuration. It includes a visual setup wizard for deploying to Netlify and manages content via local .mdx files.
Next.js · Blog

blog
A personal blog forked from Timlrx's tailwind-nextjs-starter-blog, built with Next.js, React, and Tailwind CSS. Content is stored as Markdown/MDX under data/, with site, author, navigation, and project data in separate files.
Next.js · Blog

tailnext
Tailnext is a free, open-source template built on the Next.js 14 App Router and Tailwind CSS, created by the onWidget team.
Next.js · Blog
