CLAUDE.md

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

Project Overview

This is a Jekyll-based personal blog and portfolio site hosted on GitHub Pages. The site features a bilingual interface (English and Spanish) with blog posts written in Markdown, styled using Tailwind CSS. The homepage is a single-page landing with anchor-linked sections (hero, works, craftsmanship, blog, contact).

Build and Development Commands

Jekyll Site (Ruby)

bundle install               # Install Ruby dependencies
bundle exec jekyll serve     # Start dev server (port 4000)
bundle exec jekyll build     # Build static site to _site/

Tailwind CSS (Node.js)

npm install                  # Install Node dependencies
npm run dev                  # Watch mode (rebuilds on file changes)
npm run prod                 # Production build (minified)

Combined Development Workflow

Run both in separate terminals:

  1. bundle exec jekyll serve
  2. npm run dev

Architecture and Structure

Layouts Hierarchy

Landing Page Sections (_includes/landing/)

The homepage is composed of four section includes, each with bilingual support via `` conditionals:

Multilingual Content Organization

Custom bilingual architecture without plugins:

Design System

Tailwind CSS Integration

Front Matter Requirements for Posts

---
layout: post
title: "Post Title"
subtitle: "Post Subtitle"
summary: "Brief summary for listings"
image: /assets/images/image.png  # For social media cards
lang: en  # or 'es'
categories:
  - category1
---

Key Data Files

Creating New Blog Posts

  1. Create file: _posts/YYYY-MM-DD-slug.md (Spanish) or _posts/en/YYYY-MM-DD-slug.md (English)
  2. Add required front matter (see template above)
  3. Write content in Markdown
  4. Place images in assets/images/ directory
  5. Rebuild Tailwind CSS if new utility classes are used

Styling Blog Post Content

Custom post styles are defined in src/input.css using Tailwind’s @layer base directive. The .post class provides consistent typography for paragraphs, headings (h1-h3), lists, links, images, tables, and code blocks.

Git Hooks

Husky is configured with a minimal pre-commit hook at .husky/pre-commit.