I build with AI.
Since spring 2026 I've been building with Claude Code: SEO tools, data apps, client websites, and an iOS app. I bring the SEO and product judgment. AI lets me ship it myself, fast.
- 57,248lines of code written with AI
- 12projects built: tools, apps & sites
- 8languages, from TypeScript to Swift
- 11GitHub repos across 2 accounts
- 147commits pushed to GitHub
- 7months building (Apr 2026 – Oct 2026)
Lines of code by language
What I've shipped
| Project | Lines of code | Commits | Languages | Built |
|---|---|---|---|---|
| CollegeTrends.io | 18,604 | 18 | TypeScript, JavaScript, HTML | Apr 2026 – Oct 2026 |
| PayMyself | 8,695 | 19 | TypeScript, JavaScript, HTML | Aug 2026 – Oct 2026 |
| BM Industrial Solutions website rebuild | 8,604 | 5 | HTML, Python, CSS | Aug 2026 |
| Greenville Community Resource Guide | 5,098 | 17 | Astro, TypeScript, CSS | Jun 2026 – Oct 2026 |
| TrailBlaze SEO Extension | 3,988 | 5 | JavaScript, CSS, HTML | Jun 2026 |
| Calliope's Treasures online store | 2,461 | 3 | TypeScript, CSS, JavaScript | Sep 2026 |
| This site | 2,136 | 59 | Astro, TypeScript, CSS | Sep 2026 – Oct 2026 |
| Bernco Solutions website | 2,050 | 3 | HTML, CSS, JavaScript | Jun 2026 |
| HomeGym | 1,965 | 5 | Swift | Sep 2026 |
| JSB Grading website | 1,877 | 6 | HTML, CSS, JavaScript | Jun 2026 |
| FB Group Monitor | 1,558 | — | JavaScript, CSS, HTML | — |
| 3D site architecture map | 212 | — | HTML | — |
Hand-written code only: dependencies, build output, lockfiles, and data files are excluded. Commits come from local git history. Some projects lived in a single folder before they got a repo, so they show "—". Snapshot from 2026-10-08.
Skills I've built
Custom ChatGPT skills that automate the SEO work I do every day at Grand Canyon Education. Three are free to download. The other three are built around internal workflows and data, so they stay in-house.


Blog Outline Generator
Builds a competitive blog outline from the keywords the top three ranking pages already win, the same process behind the Furman blog.
- In
- A working H1, the primary keyword, and keyword exports from the top three results
- Out
- Title tag, meta description, and an H1/H2 outline


Blog Refresh Picker
Finds declining blog posts worth refreshing, screens out anything already planned, verifies the top candidates live, and suggests keywords.
- In
- An Ahrefs subfolder export and the team content calendar
- Out
- A prioritized refresh spreadsheet with exclusions and a methodology sheet


Net New Blog Topic Generator
Compares what a blog has already published and planned to find uncovered topics, with overlap guardrails so nothing gets written twice.
- In
- An existing-blog inventory and the team content calendar
- Out
- A spreadsheet of new H1s, seed keywords, and suggested formats


YouTube Schema Formatter
Turns raw YouTube JSON-LD into a clean, standardized VideoObject schema block, ready to paste into a page.
- In
- Raw YouTube JSON-LD
- Out
- Standardized VideoObject JSON


Image Alt Text Generator
Writes concise, accessible alt text that describes what an image means on the page, not just what is in it, following the team image guidelines.
- In
- An image and the page topic or keyword
- Out
- Alt text of 200 characters or fewer


GCU Icon Generator
Creates simple app icons for custom GPTs and internal tools that stay legible at tiny sizes. It uses GCU purple by default; edit the instructions to use your own brand color.
- In
- The name and purpose of a tool
- Out
- A square, purple app icon with a bold white symbol
How I build
Claude Code in VS Code does the heavy lifting on code. I set direction, review, and test every change.
GitHub for every project, deployed to Cloudflare Pages, Vercel, GitHub Pages, or the Chrome Web Store.
Structured data, sitemaps, internal-link checks, and llms.txt from day one, because that's my day job.