Knogobert / ntn-boilerplate

🏗️ An opinionated base template for a quick start with Nuxt, Tailwind & Netlify CMS. Up on a site after only 5 minutes!
https://ntn-boilerplate.netlify.app/
MIT License
76 stars 13 forks source link
boilerplate boilerplate-front-end git-lfs netlify-cms nuxt tailwind vuex

🏗️ Boilerplate for Nuxt, Tailwind & NetlifyCMS

Netlify Status ← replace with your own

Live Demo

An opinionated starter template for a quick start with the following technologies up on a site after only 5 minutes!

ntn-boilerplate-preview-dark

🔋 Batteries included

Optional extra setup

🎉 Getting Started

Use the deploy button to get your own copy of the repository.

Deploy to Netlify

This will setup everything needed for running the CMS:

Once the initial build finishes, you can invite yourself as a user. Go to the Identity tab in your new site, click "Invite" and send yourself an invite. Start with by registering a regular email-account (not OAuth yet!) with a generated password.

You should be up and running, ready for personalization!

These extra steps are only necessary if you want to upload large media in Netlify CMS:

This way it doesn't clutter up your repo with large unmanageable files. But do know that it is easier to add later than undoing it later.

  1. Install git-lfs on your computer and remove the # in the project's .gitattributes

  2. Setup Netlify LM by following these steps. (In short: netlify plugins:install netlify-lm-pluginnetlify lm:installnetlify loginnetlify linknetlify lm:setup → commit the .lfsconfig file.)


Project commands

  1. 📦 Install dependencies.
npm install
  1. 🏗 Run the project for local dev. This will start a hot-reloading server at localhost:3000.
npm run dev
  1. 🌌 Build the app for server-side rendered deployment. See more about Universal SSR in the Nuxt.js docs.
npm run build

# And to serve that deployment...
npm run start
  1. ⚡️ Generate a fully pre-rendered static site. See more in the docs.
npm run generate

Personalize setup

  1. Copy and change the .env-file

    • cp .env-example .env
    • Then change the values
  2. Change the value on these lines

    • public/admin/config.ymlsite_url & logo_url
    • content/site/info.jsonsitename, sitedescription & sitelang
    • package.jsonname, description, author & repository.url
    • pages/index.vue — The start page of your new website!
  3. Change colors, favicon, content & content collections

    • Colors are managed in assets/css/_vars.pcss & tailwind.config.js
    • Favicon is generated by @vite-pwa/assets-generator. You should change the public/icon.png to something new, and then npm run generate-pwa-assets. Replace the preview.jpg as well.
    • Content is managed mainly in local Netlify CMS by going to your /admin, in development mode by double-clicking on a post or by hand in /content
    • Content collections are managed in public/admin/config.yml
  4. Change font

    1. Add/change your font link in nuxt.config.js under head.link. You can add a <link rel="stylesheet" href="https://github.com/Knogobert/ntn-boilerplate/blob/master/font.css"> as link: [{ rel: 'stylesheet', href: 'font.css' }], like this
    2. Then append your font name in tailwind.config.js under theme.extend.fontFamily.sans (or other).
    3. Then if you've uncommented the included netlify plugin "Subfont" in netlify.toml, it will automatically post-processes your web page to use an optimal font loading strategy.

More info

This project was bootstrapped with create-nuxt-app. There are more detailed explanations of how everything works in the Nuxt.js docs.

Netlify Identity

Make sure to set to "registration invite only" here if you don't want spam.

When you create your first account, don’t sign up using OAuth, generate a new password and sign in that way locally, otherwise a successful login will send you to the URL you typed in instead of keeping you on localhost.

If you want the Netlify signup emails to work with this boilerplate, you need to either add the 'netlify-identity-widget' to nuxt.config.js under head, Follow the advice here. Or enable the fixed and included email-templates’ paths in Netlify, under Site Settings > Identity > Emails and there you can set /public/emails/THE_TEMPLATE_NAME.html for each template.


Originally based on Henry Desroches' nuxt-netlify-cms-starter.


Troubleshooting