~/.claude / CLAUDE.md

ideia.me — Claude Guidelines

Project Overview

Personal Jekyll blog by Jônatas Davi Paganini. Ruby-based static site with 183+ posts covering programming, career, philosophy, and personal life. Posts are in English and Portuguese.

Stack

  • Jekyll with kramdown + Rouge
  • Ruby 3.3.8 (see .ruby-version)
  • Bootstrap 5.3.2 with dark mode
  • Plugins: jekyll-feed, jekyll-seo-tag, jekyll-sitemap, jekyll-paginate

Local Development

bundle exec jekyll serve        # Serve locally at http://localhost:4000
bundle exec jekyll build        # Build static site
bundle install                  # Install dependencies

Creating Blog Posts

File Location & Naming

Posts go in _posts/ with the format: YYYY-MM-DD-slug.md

Frontmatter

---
layout: post
title: "Post Title"
categories: ['category1', 'category2']
tags: ['tag1', 'tag2']
description: "Brief description for SEO/social."
image: /images/post-image.jpeg   # optional
mermaid: true                    # optional, enable Mermaid diagrams
---

Minimal viable frontmatter:

---
layout: post
categories: [category]
title: Post Title
---

Common Categories

career, personal, programming, ruby, postgresql, technology, philosophy, productivity, community

Custom Plugins

Callouts (_plugins/callouts.rb)

{% callout info "Title" %}
Content here
{% endcallout %}

Types: note, info, tip, warning, danger, success, error

Mermaid Diagrams

Add mermaid: true to frontmatter, then use fenced code blocks:

```mermaid
graph TD
  A --> B
```

Embeds

{% youtube video_id %}
{% instagram post_id %}
{% facebook url %}

Writing Style

  • Personal, reflective voice — first-person storytelling
  • Technical depth with practical examples
  • Mix of narrative sections and structured headers (##, ###)
  • Code blocks with language specified
  • Link to other posts on the blog with relative paths like /post-slug
  • Posts end naturally — no forced “conclusion” sections needed
  • Keep it honest and direct; share real impressions