CLAUDE.md — eduardotelaya.com

Personal blog and portfolio for Eduardo Telaya. Built with Jekyll + Hydejack theme, deployed on Netlify.

Tech Stack

  • Jekyll 4.1 — static site generator
  • Hydejack theme (custom local copy in #jekyll-theme-hydejack/)
  • Ruby 3.1.3 (see .ruby-version)
  • Netlify — deployment (build command: jekyll build, publish dir: _site)

Dev Commands

# Local development
bundle exec jekyll serve --trace

# Local development with drafts + production env
JEKYLL_ENV=production bundle exec jekyll serve --trace --drafts

# Using Ahoy CLI
ahoy start

# Build for production
bundle exec jekyll build

Post Management

bundle exec jekyll draft "Title"              # Create draft
bundle exec jekyll publish _drafts/file.md   # Publish
bundle exec jekyll unpublish _posts/file.md  # Unpublish

Content Structure

_posts/      # Published posts (YYYY-MM-DD-slug.md)
_drafts/     # Unpublished drafts
_talks/      # Presentations/talks
_featured_categories/  # Category landing pages
_featured_tags/        # Tag landing pages

File Naming Convention

Posts: YYYY-MM-DD-slug-title.md
Example: 2026-03-19-the-importance-of-software-engineering-discipline.md

Post Frontmatter

Every post must include this frontmatter:

---
layout: post
title: "Post Title"
date: YYYY-MM-DD
author: Eduardo Telaya
language: en          # en or es
categories:
  - category-slug
tags:
  - tag1
  - tag2
description: "Brief description (under 203 characters)"
image:
  path: https://eduardotelaya.com/assets/img/posts/filename.webp
  srcset:
    1920w: https://eduardotelaya.com/assets/img/posts/filename.webp
    960w: https://eduardotelaya.com/assets/img/posts/filename@0,5x.webp
    480w: https://eduardotelaya.com/assets/img/posts/filename@0,25x.webp
seo:
  title: "SEO Title"
  description: "SEO description"
  keywords: "Eduardo Telaya, keyword1, keyword2"
  canonical: https://eduardotelaya.com/blog/category/YYYY-MM-DD-slug/
  image: https://eduardotelaya.com/assets/img/posts/filename.webp
  language: en          # en or es
  og:type: article
  og:title: ""
  og:description: ""
  og:image: ""
  og:url: ""
  og:site_name: "Eduardo Telaya Blog"
  twitter:card: summary_large_image
  twitter:title: ""
  twitter:description: ""
  twitter:image: ""
---

Optional frontmatter fields:

  • featured: true — mark as featured post
  • hide_image: true — hide hero image
  • hide_description: true — hide description
  • video: https://embed-url — embed a video

Bilingual Content

The site is bilingual (English + Spanish). Use language: en or language: es in frontmatter.

English categories: technology, personal-development, performing-arts, travel-and-adventures
Spanish categories: tecnologia, desarrollo-personal, artes-escenicas, viajes-y-aventuras, mis-pensamientos, español

Images

  • Format: WebP only — convert PNGs/JPGs with ./convert_to_webp.sh or ahoy convert-images
  • Store in: assets/img/posts/
  • Always provide three srcset sizes: 1920w, 960w (0.5x), 480w (0.25x)
  • Image quality setting: 85 (via ImageMagick)

Commit Message Convention

Add/update post: YYYY-MM-DD-slug-title.md
Fix errors in the post

Theme Customization

Do NOT edit files inside #jekyll-theme-hydejack/ directly. Instead use the custom include hooks:

  • _includes/my-head.html — custom <head> additions
  • _includes/my-body.html — custom body content
  • _includes/my-scripts.html — custom scripts

Data Files

  • _data/authors.yml / _data/authors_es.yml — author profiles
  • _data/strings.yml / _data/strings_es.yml — UI strings (localization)
  • _data/resume.yml — resume data
  • _data/social.yml — social links

Posts: /blog/:categories/:year-:month-:day-:title/

Deployment

Netlify auto-deploys from the main branch. Environment: JEKYLL_ENV=production.


© 2024. All rights reserved.