You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat: homepage CRO, tag archive system, SEO fixes, and copy editing
Homepage: restructure CTAs, add RSS feed, make stats clickable, reduce
posts to 3, reorder featured projects, simplify terminal block.
Tags: create 20 tag archive pages + index, convert tag spans to links
across all templates, standardize AI Agent -> AI Agents in 8 posts.
SEO: integrate jekyll-seo-tag (replaces manual meta tags), add OG image,
complete robots.txt, exclude junk from sitemap, add BlogPosting schema
for posts, move ProfilePage schema to homepage only.
Copy: fix Jason -> Calder across all posts, rewrite about page, update
site description.
Copy file name to clipboardExpand all lines: CLAUDE.md
+30-7Lines changed: 30 additions & 7 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,16 +4,19 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co
4
4
5
5
## Project Overview
6
6
7
-
Minimal Jekyll blog with Cyberpunk Brutalism design. Live at https://jasonrobert.me.
7
+
Minimal Jekyll blog with Cyberpunk Brutalism design. Live at https://calderbuild.github.io.
8
8
9
9
## Development Commands
10
10
11
11
```bash
12
12
bundle install # Install dependencies
13
13
bundle exec jekyll serve # Local dev server (localhost:4000)
14
14
bundle exec jekyll build # Production build to _site/
15
+
JEKYLL_ENV=production bundle exec jekyll build # Validate production build locally
15
16
```
16
17
18
+
Always run `bundle exec jekyll build` before pushing. For layout/content changes, run `serve` and verify `/`, `/blog/`, `/projects/`, `/about/`, `/archive/`, and at least one post page.
19
+
17
20
### Custom Slash Commands
18
21
19
22
-`/deploy` - Commit and push important files to GitHub (excludes docs/tests)
@@ -25,27 +28,43 @@ bundle exec jekyll build # Production build to _site/
25
28
26
29
`default.html` is the root layout. Both `post.html` and `page.html` extend it via `layout: default`.
27
30
28
-
-`default.html` -- site shell: header nav, `<main>{{ content }}</main>`, footer. Includes Google Analytics, Open Graph/Twitter meta, font loading.
31
+
-`default.html` -- site shell: header nav, `<main>{{ content }}</main>`, footer. Includes Google Analytics, Open Graph/Twitter meta, JSON-LD structured data, font loading.
29
32
-`post.html` -- article template with schema.org markup, prev/next navigation. Has its own `<style>` block for post-specific styles.
30
33
-`page.html` -- simple title + content wrapper. Also has a page-specific `<style>` block.
31
34
35
+
### Pages and Routing
36
+
37
+
-`index.html` -- homepage: hero section, featured projects (`site.data.projects limit:3`), latest posts (`site.posts limit:6`). No pagination.
38
+
-`blog/index.html` -- paginated blog listing using `paginator.posts`. This file MUST stay at `blog/index.html` (not root) for `paginate_path: "/blog/page:num/"` to work.
39
+
-`projects.html` (`permalink: /projects/`) -- full project listing from `_data/projects.yml`.
-`archive.html` -- non-paginated chronological post list.
42
+
32
43
### Data Files
33
44
34
-
`_data/projects.yml` -- structured project data (name, tagline, description, stars, award, tech, url). Used by both `index.html` (featured projects) and `projects.html` (full listing).
45
+
`_data/projects.yml` -- structured project data (name, tagline, description, stars, award, tech, url, category). Used by both `index.html` (featured projects, limit:3, filtered by `project.url`) and `projects.html` (full listing, shows "Private Project" for null URLs).
35
46
36
47
### CSS Architecture
37
48
38
-
Single stylesheet at `css/style.css` using CSS custom properties (`:root` vars). Individual layouts and pages add page-specific styles via inline `<style>` blocks at the bottom of their HTML files (`index.html`, `blog.html`, `post.html`, `page.html`, `projects.html`).
49
+
Single stylesheet at `css/style.css` using CSS custom properties (`:root` vars). Individual pages add page-specific styles via inline `<style>` blocks at the bottom of their HTML files (`index.html`, `blog/index.html`, `post.html`, `page.html`, `projects.html`).
50
+
51
+
Key design tokens: colors (`--bg-primary: #0a0a0f`, `--accent-cyan: #00ffff`, `--accent-magenta: #ff00ff`), fonts (`--font-display: Space Mono`, `--font-body: IBM Plex Sans`, `--font-mono: JetBrains Mono`), spacing (`--space-xs` through `--space-3xl`), effects (`--glow-cyan`, `--border-glow`).
39
52
40
-
Key design tokens are defined as CSS custom properties: colors (`--bg-primary`, `--accent-cyan`), fonts (`--font-display`, `--font-body`, `--font-mono`), spacing (`--space-xs` through `--space-3xl`), effects (`--glow-cyan`, `--border-glow`).
53
+
No JavaScript in the codebase. Mobile nav toggle uses inline `onclick` to flip a CSS class.
41
54
42
55
### Pagination
43
56
44
-
`jekyll-paginate` only works on `blog.html` (the file with `paginate_path` matching). The homepage (`index.html`) uses `site.posts limit:6` directly -- it does not paginate. The homepage also renders featured projects from `site.data.projects limit:3`.
57
+
`jekyll-paginate` only works on `blog/index.html` (the file with `paginate_path` matching). The homepage (`index.html`) uses `site.posts limit:6` directly -- it does not paginate. Post permalinks follow `/blog/:year/:month/:day/:title/`from `_config.yml`.
45
58
46
59
### Build Constraints
47
60
48
-
The `Gemfile` uses the `github-pages` gem, which pins Jekyll and all plugin versions to match GitHub Pages. Do not add gems outside the [GitHub Pages dependency list](https://pages.github.com/versions/). The `future: true` config flag means future-dated posts are published.
61
+
The `Gemfile` uses the `github-pages` gem, which pins Jekyll and all plugin versions to match GitHub Pages. Do not add gems outside the [GitHub Pages dependency list](https://pages.github.com/versions/). The `future: true` config flag means future-dated posts are published. `_config.yml` excludes `CLAUDE.md` from the built site.
62
+
63
+
## Coding Style
64
+
65
+
- 2-space indentation in HTML, CSS, and YAML front matter
66
+
-`kebab-case` for page and asset filenames
67
+
- Match existing patterns in `css/style.css`; keep selectors descriptive and grouped by section
Copy file name to clipboardExpand all lines: _posts/2025-01-14-ai-agent-reality-check.markdown
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -7,7 +7,7 @@ date: 2025-01-14 14:30:00
7
7
author: "Calder"
8
8
header-img: "img/post-bg-reality-check.jpg"
9
9
tags:
10
-
- AI Agent
10
+
- AI Agents
11
11
- Production Experience
12
12
- Real Metrics
13
13
- Technical Reality
@@ -18,7 +18,7 @@ tags:
18
18
seo:
19
19
keywords: "AI Agent reality check, production AI deployment, real AI Agent metrics, framework comparison actual usage, AI Agent failures costs, autonomous system implementation, LLM agent performance, real AI ROI analysis"
Copy file name to clipboardExpand all lines: _posts/2025-01-15-ai-agent-deep-analysis.markdown
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -7,7 +7,7 @@ date: 2025-01-15 14:30:00
7
7
author: "Calder"
8
8
header-img: "img/post-bg-ai-analysis.jpg"
9
9
tags:
10
-
- AI Agent
10
+
- AI Agents
11
11
- Production Architecture
12
12
- System Design
13
13
- Performance Optimization
@@ -18,7 +18,7 @@ tags:
18
18
seo:
19
19
keywords: "AI Agent architecture real implementation, production agent system design, multi-agent coordination patterns, AI performance optimization lessons, LangChain production experience, agent framework comparison, autonomous system architecture, real AI infrastructure costs"
0 commit comments