create-react-blog v0.11.3
npx create-react-blog
Create a blog with create-react-app, MDX, and Navi. Themed after Gatsby's blog starter and Dan Abramov's overreacted.io.
See an example of the deployed app ā
Comes with:
š” RSS feed generation
š·ļø Tagged posts
š HTML files for each URL
š Smooth scrolling to hash links
š„ Animated page loading transition
š Easy code splitting with import()
ā© Paginated index page
ā TypeScript support
Getting started
The simplest way to get started is to use npx:
npx create-react-blog react-blog
cd react-blog
npm startIf you'd like to use TypeScript, just pass in a --typescript option:
npx create-react-blog react-blog --typescriptAlternatively, you can clone this repository yourself and use one of the templates yourself. If you take this approach, make sure to also run npm install:
git clone git@github.com:frontarm/create-react-blog.git
mv create-react-blog/template react-blog
cd react-blog
npm install
npm startTo statically build your blog and then start a local server for testing:
npm run build
npm run serveThe quickest and easiet way to deploy your blog is with Netlify, which is already set up and ready to go:
# Deploy to a test URL
npm run deploy
# Deploy to a production URL
npm run deploy:prodOf course, since your site is just a bunch of HTML files, it can be deployed anywhere you'd like. Here's a couple alternatives:
How to...
To update the site's title, edit the metadata in src/siteMetadata.js.
To change the site's colors, edit the :root block in src/index.module.css.
To create a new post, add a new directory to src/pages/posts that is prefixed with the new post's publication date, then create a post.js file inside it:
export default {
title: `Learn How To Build This Blog From Scratch`,
tags: ['react', 'navi'],
spoiler: "An online course with loads of live demos and exercises.",
getContent: () => import('./document.mdx'),
}To set the maximum number of posts on an index page,, set the indexPageSize property of the object exported by src/siteMetadata.js.
To modify the generated HTML, update the src/renderPageToString.js file.
To add non-blog pages, just use Navi.createPage(), Navi.createSwitch() and Navi.createRedirect(). For an example, check the about page at src/pages/about/index.js. If you create a page, remember to add it to the root switch at src/pages/index.js.
To brush up on React's fundamentals, check out the React (without the buzzwords) and Asynchronous JavaScript courses.