This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
This is the VoidRunner.dev website - a Hugo-based static site for the VoidRunner AI-Powered Serverless Development Platform. The site uses the hugo-saasify-theme as a git submodule and is deployed to Cloudflare Pages.
# Start development server with drafts enabled
npm run dev
# Alternative: hugo server -D --disableFastRender
# Start development server accessible from network
hugo server -D --bind 0.0.0.0 --baseURL http://localhost:1313# Production build
npm run build
# Alternative: hugo --minify --gc --cleanDestinationDir
# Preview build (with relative URLs)
npm run build:preview
# Clean build artifacts
npm run clean# Install npm dependencies (PostCSS, Tailwind CSS)
npm install
# Update git submodules (theme)
git submodule update --init --recursive
# Security audit
npm run security-audit
# Update dependencies
npm run update-deps- Main config:
config.yamlcontains all site configuration, including theme settings, menu structure, and deployment parameters - Theme: Uses
hugo-saasify-themeas a git submodule inthemes/directory - Content structure: Organized with content types for blog, features, pricing, and docs
- Homepage:
content/_index.md - Features:
content/features/_index.mdand individual feature pages - Pricing:
content/pricing/_index.md - Blog: Individual
.mdfiles incontent/blog/ - Docs: Documentation pages in
content/docs/
- Static assets: Place in
static/directory (copied as-is topublic/) - Images: Organized in
static/images/with subdirectories for blog, company, logos, social - Headers/Redirects: Cloudflare-specific files in
static/_headersandstatic/_redirects
- Framework: TailwindCSS configured via
themes/hugo-saasify-theme/tailwind.config.js - Custom colors: Primary (blue tones) and secondary (purple tones) color palettes
- Typography: Inter for body text, Plus Jakarta Sans for headings
- PostCSS: Configured for Tailwind processing and autoprefixer
- Trigger: Push to
mainbranch - Platform: Cloudflare Pages via GitHub Actions
- Workflow:
.github/workflows/deploy.yml - Build command:
hugo --minify --gc --cleanDestinationDir - Hugo version: 0.134.3 (extended)
- Node version: 22
# Using Wrangler CLI
npx wrangler pages deploy public- Production:
HUGO_ENV=production,HUGO_BASEURL=https://voidrunner.dev - Preview:
HUGO_ENV=development,HUGO_BASEURL=/ - Required secrets:
CLOUDFLARE_API_TOKEN,CLOUDFLARE_ACCOUNT_ID
- Theme is a git submodule - avoid editing theme files directly
- Use
layouts/directory for template overrides - Custom partials go in
layouts/partials/ - SEO configuration in
layouts/partials/seo.html
- Blog posts: Support tags, categories, authors taxonomy
- Features: Individual feature pages with custom layout
- Permalinks: Custom URL structure for blog (
/blog/:year/:month/:day/:slug/) and features (/features/:slug/)
- Minification: Enabled for HTML, CSS, JS, JSON, SVG, XML
- Image processing: Lanczos resampling, 85% quality
- Security headers: Configured via
static/_headersfor Cloudflare - Analytics: Google Analytics and GTM support configured
- Robots.txt: Auto-generated with custom rules
- Content updates: Edit markdown files in
content/ - Template changes: Add overrides in
layouts/(don't modify theme directly) - Styling: Work with TailwindCSS classes, theme provides base configuration
- Assets: Add to
static/directory, optimize images to WebP when possible
- Always test locally with
hugo server -Dbefore deploying - Check both desktop and mobile responsiveness
- Verify all links and images load correctly
- Test build process with
npm run buildbefore pushing
- Theme updates:
git submodule update --remote themes/hugo-saasify-theme - When cloning: Always use
git submodule update --init --recursive - Submodule is tracked at specific commit - update deliberately
- Image optimization: Convert to WebP, resize appropriately
- Build optimization: Hugo's resource bundling and minification enabled
- CDN: Cloudflare handles global distribution and caching
- Core Web Vitals: Monitor via Lighthouse and PageSpeed Insights