This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
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).
bundle install # Install Ruby dependencies
bundle exec jekyll serve # Start dev server (port 4000)
bundle exec jekyll build # Build static site to _site/
npm install # Install Node dependencies
npm run dev # Watch mode (rebuilds on file changes)
npm run prod # Production build (minified)
Run both in separate terminals:
bundle exec jekyll servenpm run devdefault.html: Base layout — SEO meta tags, Google Fonts (Raleway, Space Grotesk, Source Code Pro), Google Analytics, structured data, includes header/footerlanding.html: Extends default — single-page homepage with section includes (hero, works, craftsmanship, blog)post.html: Extends default — individual blog post with .post typography classpage.html: Extends default — generic content pages (about, services)home.html: Legacy layout (replaced by landing.html for homepages)_includes/landing/)The homepage is composed of four section includes, each with bilingual support via `` conditionals:
hero.html: Large name typography, subtitle, tech badges, CSS-animated scrolling tickerworks.html: Portfolio grid loaded from _data/works.yml or _data/works_es.ymlcraftsmanship.html: Services section with numbered items (01-03)blog.html: Recent posts filtered by site.posts | where:"lang", page.langCustom bilingual architecture without plugins:
index.md (English, layout: landing), es.md (Spanish, layout: landing)_posts/YYYY-MM-DD-title.md (lang: es), _posts/en/YYYY-MM-DD-title.md (lang: en)about.md/acerca-de.md, services.md/servicios.md_data/navigation.yml_data/works.yml/_data/works_es.ymlbg-black) with bg-gray-950/bg-gray-900 for cardslime-400 for highlights, lime-300 for hover)font-display) for headings, Raleway (font-sans) for body, Source Code Pro for codeborder-gray-800 subtle borders on cards and sectionsbg-black/80 backdrop-blur-mdsrc/input.css — Tailwind directives, .post typography styles, ticker utilityassets/css/styles.css (generated, do not edit directly)tailwind.config.js — font families (sans, display), scroll animation keyframes, custom slate-750 color_layouts/, _includes/, root .md files, and _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
---
_data/works.yml / _data/works_es.yml: Portfolio projects (id, title, subtitle, description, year, gradient, tags)_data/navigation.yml: Language switcher links_config.yml: Site config — title, url, languages, plugins (jekyll-sitemap)_posts/YYYY-MM-DD-slug.md (Spanish) or _posts/en/YYYY-MM-DD-slug.md (English)assets/images/ directoryCustom 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.
Husky is configured with a minimal pre-commit hook at .husky/pre-commit.