Installation Guide
This guide will help you install and set up Quesby, a privacy-first static site boilerplate built with Eleventy and Decap CMS.
Quick Start
For experienced developers who want to get started immediately:
# 1. Clone and installgit clone https://github.com/quesby/quesby-boilerplate.git your-projectcd your-projectpnpm install
# 2. Start developmentpnpm serve
# 3. Open browseropen http://localhost:8080
# 4. Create your first blog postnpx quesby new post "Welcome to Quesby"New to static sites? Follow the detailed guide below for step-by-step instructions.
Prerequisites
Before installing Quesby, ensure you have the following installed on your system:
- Node.js (version 18 or higher)
- pnpm (recommended) or npm (comes with Node.js)
- Git (for version control)
Package Manager Options
Quesby supports multiple package managers. Choose the one that best fits your workflow:
| Package Manager | Speed | Disk Usage | Lock File | Recommended For |
|---|---|---|---|---|
| pnpm | ⚡ Fast | 💾 Efficient | pnpm-lock.yaml |
New projects, teams |
| npm | 🐌 Slower | 📦 Standard | package-lock.json |
Node.js defaults |
| yarn | ⚡ Fast | 📦 Standard | yarn.lock |
Existing yarn projects |
Using Corepack (Recommended)
Corepack is the easiest way to manage package managers automatically:
# Enable corepack (comes with Node.js 16.10+)corepack enable
# The project will automatically use pnpm based on package.json configurationManual Installation
If you prefer to install pnpm manually:
# Install pnpm globallynpm install -g pnpm
# Or using corepackcorepack prepare pnpm@latest --activateChecking Prerequisites
Verify your installations:
node --versionpnpm --version # or npm --versiongit --versionInstallation Methods
Choose the method that best fits your workflow:
| Method | Best For | Git History | Updates |
|---|---|---|---|
| Clone | Development, contributions | ✅ Full history | git pull |
| Download | Quick setup, production | ❌ No history | Manual download |
Method 1: Clone from Repository (Recommended)
Best for: Developers, contributors, and anyone who wants to stay updated
-
Clone the repository:
Terminal window git clone https://github.com/quesby/quesby-boilerplate.gitcd quesby-boilerplate -
Install dependencies:
Terminal window pnpm install # Recommended: fast and efficient# npm install # Alternative: standard Node.js# yarn install # Alternative: yarn projects
Note: All examples in this guide show pnpm commands. Replace
pnpmwithnpmoryarnif using a different package manager.
- Set up your own Git repository (optional)
Terminal window # Remove the original remotegit remote remove origin# Add your own repositorygit remote add origin https://github.com/your-user/your-repo.git# Push the initial commitgit push -u origin main
Method 2: Download and Extract
Best for: Quick setup, production deployments, or when you don't need git history
- Download the latest release from the GitHub repository
- Extract the archive to your desired location
- Navigate to the project directory
- Run
pnpm install(ornpm install/yarn install)
Environment Configuration
Setting Up Content Directory
Quesby supports external content management through multiple configuration methods:
Configuration Priority
The system checks configurations in this order (first found wins):
- Environment variable (
.envfile) - Highest priority - site.json configuration - Fallback
- Default (
src/content) - If neither is set
Method 1: Environment Variable (Recommended)
-
Create a
.envfile in the project root:Terminal window touch .env -
Configure the content path:
Terminal window QUESBY_CONTENT_PATH=/path/to/your/content/directory
Method 2: site.json Configuration
Edit src/_data/site.json:
{ "contentPath": "/absolute/path/to/your/content"}Tip: Environment variables are ideal when working across different machines or environments (dev/staging/prod), while site.json defines project-wide defaults.
Theme Configuration
Quesby comes with built-in themes and supports custom themes:
Built-in Themes
| Theme | Description | Location |
|---|---|---|
quesby-core |
Modern, minimalist design | src/themes/quesby-core/ |
quesby-brand-website |
Brand-focused with enhanced visuals | src/themes/quesby-brand-website/ |
Setting the Theme
Configuration in src/_data/site.json
{ "theme": "quesby-core"}Creating Custom Themes
-
Copy an existing theme:
Terminal window cp -r src/themes/quesby-core src/themes/my-custom-theme -
Modify theme files in
src/themes/my-custom-theme/ -
Set your theme:
{ "theme": "my-custom-theme"}Learn more: See Theme Development Guide for detailed customization instructions.
Development Setup
1. Start Development Server
Run the development server with CSS watching:
pnpm serveThis command will:
- Start Eleventy in serve mode
- Watch for CSS changes and recompile automatically
- Serve your site at
http://localhost:8080
2. Alternative Development Commands
-
Development without CSS watching:
Terminal window pnpm dev -
CSS-only watching:
Terminal window pnpm css:watch -
Build CSS only:
Terminal window pnpm css:build
Building for Production
Build the Site
Generate the production build:
pnpm buildThis will:
- Compile all SCSS to CSS
- Process all templates and content
- Generate the static site in the
_sitedirectory
Build Output
The built site will be available in the _site directory, ready for deployment to any static hosting service.
Content Management
Using Decap CMS
-
Access the admin panel: Navigate to
http://localhost:8080/adminin your browser -
Configure authentication: Follow the Decap CMS documentation to set up authentication for your chosen backend
-
Content structure:
Quesby automatically creates collections based on your content structure:
Collection Directory Required Description Posts src/content/posts/✅ Yes Blog articles and news Documentation src/content/documentation/✅ Yes Help and guides Pages src/content/pages/❌ Optional Static pages (About, Contact) Projects src/content/projects/❌ Optional Portfolio showcases News src/content/news/❌ Optional News articles Note: Only
postsanddocumentationare required. Other collections are optional and can be added as needed.
Manual Content Management
You can also manage content manually by editing Markdown files in the appropriate directories.
Troubleshooting
Common Issues
1. Content Directory Not Found
Error: ❌ Content path not found
Solutions:
# Check your configurationcat .env | grep QUESBY_CONTENT_PATHcat src/_data/site.json | grep contentPath
# Verify directory existsls -la /path/to/your/content/directory2. CSS Not Compiling
Error: Styles not updating or SCSS errors
Solutions:
# Check SCSS syntaxpnpm css:build
# Verify theme existsls -la src/themes/
# Restart CSS watcherpnpm css:watch3. Port Already in Use
Error: Port 8080 is already in use
Solutions:
- Eleventy automatically finds an available port
- Check terminal output for the actual URL
- Or specify a different port:
pnpm dev --port 3000
4. Package Manager Issues
Error: Command not found (pnpm/npm/yarn)
Solutions:
# Enable corepackcorepack enable
# Or install manuallynpm install -g pnpmGetting Help
- Documentation: Troubleshooting Guide | Configuration Guide
- GitHub Issues: Report bugs or request features
- Discussions: Community support
- Quick Fixes: Check the Common Issues section below
Next Steps
After successful installation, here's what to do next:
Immediate Actions
- Verify installation: Check that
http://localhost:8080loads correctly - Create your first post: Use the CLI tool to create a new blog post
Terminal window npx quesby new post "My First Post" - Explore the admin: Visit
http://localhost:8080/adminto see the CMS - Check content: Browse the sample posts and documentation
Learning Path
- Configuration Guide - Customize your site settings
- Theme System - Customize appearance and create themes
- Content Management - Learn to manage content
- Development Guide - Advanced customization
- Deployment Guide - Publish your site
Quick Wins
- Change site name: Edit
src/_data/site.json - Add your content: Create posts in
src/content/posts/ - Customize theme: Modify files in
src/themes/quesby-core/ - Set up CMS: Configure authentication in
src/admin/config.yml
System Requirements
Minimum Requirements
- Node.js: 18.0.0 or higher (includes corepack)
- Package Manager: pnpm (recommended), npm, or yarn
- Memory: 512MB RAM minimum
- Disk Space: 100MB for the project, additional space for content
Recommended Setup
- Node.js: 20.0.0 or higher (latest LTS)
- Package Manager: pnpm with corepack
- Memory: 1GB RAM or more
- Disk Space: 500MB+ for development with dependencies
Corepack Requirements
- Node.js: 16.10.0 or higher (corepack included)
- Corepack: Automatically manages package managers
- No additional installation required for pnpm, npm, or yarn
Key Dependencies
Quesby uses modern, well-maintained dependencies:
| Dependency | Version | Purpose |
|---|---|---|
| @quesby/core | 0.1.1+ | Core Eleventy configuration and utilities |
| Eleventy | 3.0+ | Static site generator |
| Decap CMS | Latest | Headless content management |
| Sass | 1.77+ | CSS preprocessor |
| Expressive Code | 0.41+ | Syntax highlighting |
| Markdown-it | 14.0+ | Markdown processor |
| Corepack | Built-in | Package manager management |
Note:
@quesby/coreis automatically installed when you runpnpm install(ornpm install/yarn install). It provides the core Eleventy configuration, filters, collections, and SCSS utilities used throughout the boilerplate.
Supported Platforms
| Platform | Node.js | Corepack | Package Managers |
|---|---|---|---|
| Windows 10/11 | ✅ 18.0+ | ✅ 16.10+ | pnpm, npm, yarn |
| macOS 10.15+ | ✅ 18.0+ | ✅ 16.10+ | pnpm, npm, yarn |
| Linux (any distro) | ✅ 18.0+ | ✅ 16.10+ | pnpm, npm, yarn |
Corepack Support
Corepack is supported on all platforms where Node.js 16.10+ is available:
- Windows: Full support with PowerShell and Command Prompt
- macOS: Full support with Terminal and iTerm2
- Linux: Full support with bash, zsh, and other shells