Hugo template for Decap CMS with Netlify Identity
This is a small business template built with Hugo and Decap CMS, designed and developed by Darin Dimitroff, spacefarm.digital.
Getting started
Use our deploy button to get your own copy of the repository.
This will setup everything needed for running the CMS:
- A new repository in your GitHub account with the code
- Full Continuous Deployment to Netlify's global CDN network
- Control users and access with Netlify Identity
- Manage content with Decap 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.
Now you're all set, and you can start editing content!
Local Development
Clone this repository, and run yarn
or npm install
from the new folder to install all required dependencies.
Then start the development server with yarn start
or npm start
.
Testing
With the development server running, run the tests locally
with yarn cypress:run
or npm run cypress:run
.
Or use yarn cypress:open
or npm run cypress:open
to run interactively.
Cypress tests also run on deploy with the Cypress Netlify integration.
Layouts
The template is based on small, content-agnostic partials that can be mixed and matched. The pre-built pages showcase just a few of the possible combinations. Refer to the site/layouts/partials
folder for all available partials.
Use Hugo’s dict
functionality to feed content into partials and avoid repeating yourself and creating discrepancies.
CSS
The template uses a custom fork of Tachyons and PostCSS with cssnext and cssnano. To customize the template for your brand, refer to src/css/imports/_variables.css
where most of the important global variables like colors and spacing are stored.
SVG
All SVG icons stored in site/static/img/icons
are automatically optimized with SVGO (gulp-svgmin) and concatenated into a single SVG sprite stored as a a partial called svg.html
. Make sure you use consistent icons in terms of viewport and art direction for optimal results. Refer to an SVG via the <use>
tag like so:
<svg width="16px" height="16px" class="db">
<use xlink:href="#SVG-ID"></use>
</svg>