Blog Revival - Setup Complete! πŸŽ‰

last updated: 2026-03-09

Blog Revival - Setup Complete! πŸŽ‰

Your blog has been restructured with three main sections: Blog, Utils, and Free Game.

What Was Created

Directory Structure

β”œβ”€β”€ _posts/                  # Jekyll blog posts
β”œβ”€β”€ about.md                 # Updated about page
β”œβ”€β”€ utils/                   # Browser-based tools
β”‚   β”œβ”€β”€ index.html          # Auto-generated index
β”‚   β”œβ”€β”€ json-formatter.html
β”‚   β”œβ”€β”€ base64-converter.html
β”‚   β”œβ”€β”€ uuid-generator.html
β”‚   └── python-playground.html  # WASM-based Python runner
β”œβ”€β”€ free-game/              # Code snippets by topic
β”‚   β”œβ”€β”€ index.html          # Auto-generated index
β”‚   β”œβ”€β”€ javascript/
β”‚   β”œβ”€β”€ python/
β”‚   β”œβ”€β”€ web/
β”‚   β”œβ”€β”€ wasm/
β”‚   └── cli/
β”œβ”€β”€ build_utils_index.py    # Index generator for utils
β”œβ”€β”€ build_freegame_index.py # Index generator for free-game
└── rebuild_indices.sh      # Rebuild both indices

Created Tools

Utils (4 tools):

  1. JSON Formatter - Format, validate, and minify JSON
  2. Base64 Converter - Encode/decode with file support
  3. UUID Generator - Generate UUIDs with batch support
  4. Python Playground - Run Python in browser via WASM (with NumPy!)

Free Game Snippets (6 snippets across 5 topics):

  • JavaScript: copy-to-clipboard, localStorage helpers
  • Web: single-file HTML template
  • Python: Pyodide WASM setup
  • WASM: SQLite in browser
  • CLI: Git aliases

Next Steps

1. Test Locally

# Install Jekyll dependencies (if needed)
bundle install

# Build the indices
./rebuild_indices.sh

# Serve the site
bundle exec jekyll serve

# Visit http://localhost:4000

2. Add Content

New util:

# 1. Create HTML file
touch utils/my-tool.html

# 2. Use the template from free-game/web/single-file-html-template.md

# 3. Rebuild index
python3 build_utils_index.py

New free-game snippet:

# 1. Create markdown file in appropriate topic
touch free-game/javascript/new-snippet.md

# 2. Write your snippet with H1 title

# 3. Rebuild index
python3 build_freegame_index.py

3. Deploy

# Commit and push to deploy via GitHub Pages
git add .
git commit -m "Revived blog with utils and free-game sections"
git push origin master

Key Features

Utils

  • βœ… Single-file HTML (no build step)
  • βœ… Tailwind CSS via CDN
  • βœ… Copy-to-clipboard functionality
  • βœ… localStorage for persistence
  • βœ… WASM support (Python, SQLite)
  • βœ… Auto-generated searchable index

Free Game

  • βœ… Markdown-based snippets
  • βœ… Organized by topic
  • βœ… LLM-prompt friendly
  • βœ… Auto-generated browsable index
  • βœ… Search functionality
  • βœ… Updated Jekyll config with custom navigation
  • βœ… About page updated
  • βœ… All sections linked in header

Design Philosophy

Inspired by Simon Willison’s approach:

  1. No build steps - Everything runs in the browser
  2. No frameworks - No React, just vanilla JS
  3. CDN dependencies - No npm, no bundlers
  4. Client-side only - No servers, no tracking
  5. localStorage - Keep API keys and data local
  6. Copy-paste friendly - Easy to use and share

Maintenance

Rebuild Indices

After adding new utils or snippets:

./rebuild_indices.sh

Git Workflow

# Regular commits
git add .
git commit -m "Added new tool/snippet"
git push

# The indices are committed to git, so they deploy with your site

Useful Commands

# Serve locally
bundle exec jekyll serve

# Rebuild just utils index
python3 build_utils_index.py

# Rebuild just free-game index
python3 build_freegame_index.py

# Rebuild both
./rebuild_indices.sh

# Check what's in each section
ls utils/*.html
ls free-game/*/*.md

What’s Next?

Ideas for expansion:

  • Add more utils (color picker, regex tester, markdown preview, etc.)
  • Add more free-game topics (databases, APIs, DevOps, etc.)
  • Add search across all sections
  • Add RSS feed for free-game snippets
  • Add β€œcopy code” buttons in free-game snippets
  • Create GitHub Action to auto-rebuild indices on push

Happy coding! πŸš€