softinio.com/CLAUDE.md

2.3 KiB

CLAUDE.md

This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.

Overview

This is a personal blog and portfolio website for Salar Rahmanian (softinio.com) built with Zola static site generator, managed with Nix Flakes, and deployed to Cloudflare Pages.

Commands

Development

# Enter development shell with all dependencies
nix develop

# Start local development server
zola serve

# Build the site
zola build

Building with Nix

# Build the site using Nix
nix build

# The output will be in result/

# Update flake inputs to latest versions
nix flake update

Deployment

# Deploy to Cloudflare Pages
wrangler pages deploy public/

Testing

# Check for broken links and validate build
zola check

CI/CD

This project uses GitHub Actions for continuous integration and deployment:

  • Main branch pushes: Deploys directly to production (https://www.softinio.com)
  • Pull requests: Deploys to preview URLs (https://[branch-name].softinio.com)
  • Other branch pushes: No deployment (only builds on PR creation)

Required secrets in GitHub repository settings:

  • CLOUDFLARE_ACCOUNT_ID: Your Cloudflare account ID
  • CLOUDFLARE_API_TOKEN: Cloudflare API token with Pages:Edit permissions

Architecture

Technology Stack

  • Static Site Generator: Zola (Rust-based) - NOT Hugo
  • Theme: Tabi theme (pinned to specific commit in flake.nix)
  • Package Management: Nix Flakes
  • Hosting: Cloudflare Pages
  • Comments: Isso (self-hosted at comments.softinio.com)
  • Analytics: Matomo (self-hosted at wisdom.softinio.com)

Content Structure

  • content/post/: Main blog articles with full metadata
  • content/projects/: Project showcase pages
  • content/talks/: Conference presentations
  • content/til/: "Today I Learned" short posts
  • content/archived/: Archived posts

Key Configuration Files

  • config.toml: Zola site configuration with theme settings, CSP headers, and integrations
  • flake.nix: Nix development environment and build configuration
  • wrangler.toml: Cloudflare deployment configuration

Template Customizations

  • templates/partials/custom_header.html: Matomo analytics integration
  • templates/shortcodes/: YouTube and PeerTube video embedding
  • templates/subscribe.html: Newsletter subscription page