Repository Guidelines
Project Structure
This repository is a Jekyll site with Tailwind/PostCSS-generated CSS.
_posts/: Blog posts (name asYYYY-MM-DD-title.md)._includes/,_layouts/,_data/: Jekyll templates and data.assets/: Site assets.assets/css/tailwind.css: Tailwind entrypoint.assets/css/style.css: Built output (updated by PostCSS).assets/fonts/,assets/icons/,assets/images/: Static assets.
css/,js/,img/: Additional static files served as-is._config.yml: Jekyll configuration.portfolio/,redirect/: Extra pages/content.
Build, Test, And Development Commands
- Prereqs: Node
>=22(seepackage.json). For local serving, prefer Docker; Ruby/Bundler is only needed if you run Jekyll outside Docker. npm install: Install Node dependencies (required for CSS builds).docker compose up: Start Jekyll dev server (http://localhost:4000) with live reload and run the Tailwind watch service (requiresnode_modulespresent).npm run build:css: Build CSS for development.npm run build:css:prod: Build minified/production CSS.npm run build:css:watch/npm run build:css:prod:watch: Rebuild CSS on change.npm run dev-to:tags:update: Refresh the local DEV tag catalog from the public DEV API.npm run dev-to:validate: Validate DEV syndication metadata for every blog post.npm run prettier:check: Verify formatting.npm run prettier:format: Auto-format the repo.
There is no dedicated automated test suite in this repo today; validate changes by running the site locally and checking affected pages.
Coding Style & Naming Conventions
- Indentation: 2 spaces (
.editorconfig). - Formatting: Prettier (
printWidth: 140,singleQuote: true). Pre-commit runslint-stagedto format changed files. - Avoid unnecessary hyphens in Portuguese and English text. Do not use hyphens merely as a stylistic device or create compound words when a natural construction without a hyphen is correct.
- Keep a hyphen only when required by spelling rules, when it is part of an established technical term, proper name, code, command, slug, file path, or URL, or when omitting it would impair clarity.
- Keep generated CSS in sync: if you edit Tailwind config or
assets/css/tailwind.css, rebuild soassets/css/style.cssmatches.
Blog Post Publishing
- Before finalizing a post that will be syndicated to DEV, run
npm run dev-to:tags:updateand inspect_data/dev_to_tags.json. - Read the complete title, description, and body, then add exactly four genuinely relevant tags to the
dev_to_tagsfront matter list. Prefer specific tags and do not add popular tags such asbeginners,tutorial, orwebdevunless the content supports them. - Keep the Jekyll
tagsfield separate fromdev_to_tags. DEV tags must come from the local catalog and their order is significant. - Set
dev_to: falsewhen a post must stay on this blog only; those posts do not needdev_to_tags. - Run
npm run dev-to:validatebefore considering a post complete.
Commit & Pull Request Guidelines
Commit messages follow a Conventional Commits-style prefix based on git log history:
- Examples:
feat: add rss feed subscription button,style: update list styling,docs: update blog post description,refactor: ...,chore: ...
For pull requests:
- Describe what changed and why (link issues if applicable).
- Include screenshots for visual/layout changes.
- Keep PRs focused; avoid mixing content edits (posts) with layout/tooling changes unless necessary.