CLAUDE.md — maikotrindade.github.io

CLAUDE.md — maikotrindade.github.io

Project Identity

Personal blog/portfolio for Maiko Trindade, Senior Mobile Engineer (14+ years, specializing in Android/Kotlin/Jetpack Compose/AI agents/Blockchain). Hosted at maikotrindade.com via GitHub Pages. Topics: Android development, Jetpack Compose, Kotlin, AI agents, blockchain/Solidity.

Tech Stack

Development Workflow

bundle exec jekyll serve   # local dev at localhost:4000 with live reload
bundle exec jekyll build   # build to _site/
git push origin master     # deploys to GitHub Pages automatically

Never commit _site/ — it is the build output directory.

File Structure

_posts/                  Blog posts: YYYY-MM-DD-slug.markdown
_layouts/                Five layouts (see Layout System below)
_includes/               head.html, sidebar.html, analytics.html
_config.yml              Jekyll config: url, author, pagination, exclude list
public/css/              poole.css, hyde.css, syntax.css, theme.css
public/js/               theme-toggle.js
public/img/              Profile photo, social icons, OG images, post images
blog/                    Blog index (paginated, 5/page) and archive
capitol-trades-tracker/  Standalone app showcase (en/, fr/ subdirs)
index.html               Home page (layout: default_no_ads)
about.html               About (layout: page_no_ads)
experience.html          Career timeline (layout: page_no_ads)
projects.html            Portfolio with filter tabs (layout: page_no_ads)
education.html           Education (layout: page_no_ads)
llms.txt                 Manually maintained blog index for LLM crawlers
robots.txt               Allows all AI crawlers (ClaudeBot, GPTBot, anthropic-ai…)
sitemap.xml, atom.xml    Liquid-generated; do not edit by hand
CNAME                    Custom domain — do not modify
ads.txt                  AdSense verification — do not modify

Blog Post Conventions

Filename

YYYY-MM-DD-descriptive-slug.markdown in _posts/

Required frontmatter

---
layout: post
title: "Post Title in Quotes"
date: YYYY-MM-DD
published: true
categories: [Category1, Category2]
tags: [tag1, tag2, tag3]
description: "SEO description, max 160 characters"
---

Optional frontmatter

image: /public/img/filename.png    # OG/Twitter/JSON-LD image; defaults to android-dev.png
keywords: "comma, separated"       # Overrides tags for keywords meta

Content conventions

Template reference

_posts/base-post-format.markdown — kept with published: false as a formatting reference.

New post checklist

Layout System

Layout Has ads? head.html included? Used by
default yes yes blog/index.html
default_no_ads no no (inlined) index.html (Home)
post yes yes (via default) all blog posts
page yes yes (via default) static pages (with ads)
page_no_ads no no (inlined) about, experience, projects, education

Critical quirk: default_no_ads.html does NOT use `<head>

<!-- Enable responsiveness on mobile devices-->
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1">
<meta name="google-adsense-account" content="ca-pub-4415452186185932">

<!-- Primary Meta Tags -->

    <meta name="title" content="CLAUDE.md — maikotrindade.github.io | Maiko Trindade" />



    <meta name="description" content="technology, Android, Jetpack Compose, Blockchain, ESG, Crypto, Solidity, Software Development, Linux, web and computer science" />


<meta name="author" content="@maikotrindade">


    <meta name="keywords" content="Android, Jetpack Compose, Blockchain, Technology, Solidity, Software Development, Linux, Web, Maiko Trindade" />


<!-- Open Graph / Facebook -->

    <meta property="og:type" content="website" />



    <meta property="og:url" content="https://maikotrindade.com/CLAUDE.html" />



    <meta property="og:title" content="CLAUDE.md — maikotrindade.github.io | Maiko Trindade" />



    <meta property="og:description" content="technology, Android, Jetpack Compose, Blockchain, ESG, Crypto, Solidity, Software Development, Linux, web and computer science" />



    <meta property="og:image" content="https://maikotrindade.com/public/img/android-dev.png" />


<meta property="og:site_name" content="Maiko Trindade" />
<meta property="og:locale" content="en_US" />

<!-- Twitter -->
<meta property="twitter:card" content="summary_large_image" />
<meta name="twitter:site" content="@maikotrindade" />
<meta name="twitter:creator" content="@maikotrindade" />


    <meta property="twitter:url" content="https://maikotrindade.com/CLAUDE.html" />



    <meta property="twitter:title" content="CLAUDE.md — maikotrindade.github.io | Maiko Trindade" />



    <meta property="twitter:description" content="technology, Android, Jetpack Compose, Blockchain, ESG, Crypto, Solidity, Software Development, Linux, web and computer science" />



    <meta property="twitter:image" content="https://maikotrindade.com/public/img/android-dev.png" />



    <link rel="canonical" href="https://maikotrindade.com/CLAUDE.html" />


<script async src="https://www.googletagmanager.com/gtag/js?id=G-NPGMKKGTDM"></script>
<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-4415452186185932"
 crossorigin="anonymous"></script>
<script>
    window.dataLayer = window.dataLayer || [];
    function gtag(){dataLayer.push(arguments);}
    gtag('js', new Date());
    
    gtag('config', 'G-NPGMKKGTDM');
</script>
<title>
    
    CLAUDE.md — maikotrindade.github.io
    
</title>

<!-- CSS -->
<link rel="stylesheet" href="/public/css/poole.css">
<link rel="stylesheet" href="/public/css/syntax.css">
<link rel="stylesheet" href="/public/css/hyde.css">
<link rel="stylesheet" href="/public/css/theme.css">
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=PT+Sans:400,400italic,700|Abril+Fatface">
<!-- Icons -->
<link rel="apple-touch-icon-precomposed" sizes="144x144" href="/public/apple-touch-icon-144-precomposed.png">
<link rel="shortcut icon" href="/public/favicon.ico">
<!-- RSS -->
<link rel="alternate" type="application/rss+xml" title="RSS" href="/atom.xml">


<!-- Website/Organization Schema -->
<script type="application/ld+json">
{
    "@context": "https://schema.org",
    "@type": "WebSite",
    "name": "Maiko Trindade",
    "url": "https://maikotrindade.com",
    "description": "technology, Android, Jetpack Compose, Blockchain, ESG, Crypto, Solidity, Software Development, Linux, web and computer science",
    "author": {
        "@type": "Person",
        "name": "Maiko Trindade",
        "url": "https://maikotrindade.com/"
    },
    "publisher": {
        "@type": "Organization",
        "name": "Maiko Trindade",
        "logo": {
            "@type": "ImageObject",
            "url": "https://maikotrindade.com/public/img/android-dev.png"
        }
    }
}
</script>


<!-- Theme Toggle Script -->
<script src="/public/js/theme-toggle.js"></script>

</head>. It has its own hardcoded <head>. When editing SEO/meta behavior, check **both** _includes/head.html AND _layouts/default_no_ads.html`.

Sidebar auto-nav: sidebar.html discovers nav items by filtering site.pages where layout == "page" or layout == "page_no_ads". A new static page with the correct layout automatically appears in the sidebar — no changes to sidebar.html needed.

Includes

File Purpose
_includes/head.html Meta tags, OG, Twitter Cards, JSON-LD schema, GA4, AdSense, CSS links, theme-toggle.js
_includes/sidebar.html Profile photo, social links, auto-generated nav, last 3 posts
_includes/analytics.html Legacy UA analytics (UA-66120129-1) — keep intact

SEO metadata fallback chain (head.html)

Critical Constraints

Never modify:

Never commit _site/ — build output, not source.

AI / LLM Files