From 438431046302f361c5bf3fa944cd690aa8703795 Mon Sep 17 00:00:00 2001 From: Salar Rahmanian Date: Fri, 13 Jun 2025 19:52:34 -0700 Subject: [PATCH] add CLAUDE init file --- CLAUDE.md | 83 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 83 insertions(+) create mode 100644 CLAUDE.md diff --git a/CLAUDE.md b/CLAUDE.md new file mode 100644 index 0000000..acf9c3f --- /dev/null +++ b/CLAUDE.md @@ -0,0 +1,83 @@ +# 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 +```bash +# Enter development shell with all dependencies +nix develop + +# Start local development server +zola serve + +# Build the site +zola build +``` + +### Building with Nix +```bash +# Build the site using Nix +nix build + +# The output will be in result/ + +# Update flake inputs to latest versions +nix flake update +``` + +### Deployment +```bash +# Deploy to Cloudflare Pages +wrangler pages deploy public/ +``` + +### Testing +```bash +# 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 \ No newline at end of file