Tickd.ai

Big ideas, ticked off one at a time.

Tutorials, honest comparisons and slightly opinionated thinking for people building with AI. Platform troubleshooting lives on our support sites — this is everything else.

33 articles

Tutorials & Guides

How to Build a Local Mock API Server That Generates Dynamic Responses Using Gemini 1.5 Flash and Fastify

Frontend development shouldn't halt because the backend API isn't ready. Learn how to write a local Fastify server that generates real, schema-compliant mock data on the fly.

Tutorials & Guides

How to Build a Zero-Dependency Semantic Search Engine for Your Local Markdown Notes with Claude 3.5 Sonnet and LanceDB

Stop grep-ing your messy obsidian vault. Here is how to build a lightning-fast, local semantic search and synthesis CLI using Claude and LanceDB without the infrastructure overhead.

Tutorials & Guides

How to Build an Automated Git Commit Message Generator with Gemini 1.5 Flash and Git Hooks

Tired of writing lazy commit messages? Learn how to automate descriptive, Conventional Commits format messages using Gemini 1.5 Flash and a local pre-commit Git hook.

Tutorials & Guides

How to Build a Local Prompt Evaluation Runner with Pytest and Claude 3.5 Sonnet

Stop guessing if your prompt updates broke your production outputs. Here is a step-by-step guide to building a lightweight, automated prompt evaluation runner using Python and Pytest.

Tutorials & Guides

How to Build a Local OpenAI API Cost Monitor in Python with Slack Alerts

OpenAI's dashboard billing alerts can take up to 24 hours to trigger. Build an asynchronous local cost-tracking wrapper in Python to alert your Slack channel the instant a runaway agent starts burning money.

Tutorials & Guides

How to Build a Local Codebase Context Packer for Claude 3.5 Sonnet Using Python

Stop wasting your token budget on copy-pasting individual files. Build a lightweight Python tool that respects your .gitignore and bundles your codebase into Claude-friendly XML.

Tutorials & Guides

How to Build an Automated LLM Fallback Gate in Python with Claude 3.5 Sonnet and Gemini 1.5 Flash

When your primary model hits a rate limit or service disruption, your app shouldn't fail. Build a resilient fallback gate using Claude and Gemini.

Tutorials & Guides

How to Build a Local PII Sanitiser CLI for Your Cloud LLM API Calls Using Python

Sending sensitive user data to cloud LLMs is a compliance nightmare. Here is how to build a local, reversible PII redaction pipeline using Python and Microsoft Presidio.

Tutorials & Guides

The Honest Guide to Using AI at Work, by Industry

AI's value — and its limits — look completely different depending on your field. A honest tour of what works where, and where the lines are.

Tutorials & Guides

How to Write With AI Without Losing Your Voice

Most AI-assisted writing sounds identical — not because the models are bad, but because nobody tells them what you sound like. Here's how to fix that.

Tutorials & Guides

Why Your AI Drafts Sound Generic (And How to Fix It)

"In today's fast-paced world…" If your AI drafts open like that, this one's for you. Here are the specific tells of generic AI writing — and the actual fix.

Tutorials & Guides

How to Build a Robust XML-Based Prompting Pipeline for Claude 3.5 Sonnet to Guarantee Parsable JSON

Tired of Claude's conversational fluff breaking your JSON.parse() calls? Learn how to wrap outputs in strict XML tags and build a bulletproof parsing pipeline.

Tutorials & Guides

How to Build a Serverless Vector Search Engine Using Cloudflare Workers and Gemini 1.5 Flash

Stop paying extortionate fees for hosted vector databases. Here is how to build an ultra-fast, serverless semantic search pipeline using Cloudflare Workers, Vectorize, and Gemini 1.5 Flash.

Tutorials & Guides

How to Build an Automated Markdown Link Rot Repairer Using Python and Claude 3.5 Sonnet

Broken documentation links are a silent drain on developer productivity. Stop hunting for 404 targets manually—build a smart script that scans markdown files, identifies dead links, and uses Claude 3.5 Sonnet to predict and patch the correct destinations.

Tutorials & Guides

How to Build a Self-Correcting Conventional Commit Linter Using Claude and Git Hooks

Tired of sloppy, chaotic git histories? Build a local Python Git hook that intercepts lazy commit messages, evaluates them against the Conventional Commits specification, and uses Claude 3.5 Sonnet to instantly refactor them on the fly.

Tutorials & Guides

How to Build an Automated Prompt Optimization Loop for GPT-4o Using Python

Tired of guessing how to rewrite your system prompts? Learn how to build an automated, programmatic optimization loop that evaluates, grades, and refines system prompts for GPT-4o.

Tutorials & Guides

How to Build a Self-Healing Dockerfile Generator Using Claude 3.5 Sonnet and Python

Stop wasting time copy-pasting cryptic Linux build errors. Learn how to build a Python harness that uses Claude 3.5 Sonnet to automatically compile, debug, and repair failing Docker builds in real time.

Tutorials & Guides

How to Build a Lightweight Automated Pull Request Auditor Using GitHub Actions and OpenAI

Stop wasting time arguing over syntax in pull requests. Build a lightweight GitHub Action powered by OpenAI that audits incoming PRs for architectural design flaws and security issues.

Tutorials & Guides

How to Build a Schema-First Mock API Generator Using Claude 3.5 Sonnet and FastAPI

Stop wasting hours hardcoding mock JSON files for your frontend prototypes. Learn how to build a dynamic, schema-first mock API generator using Claude 3.5 Sonnet and FastAPI that generates realistic mock data on the fly.

Tutorials & Guides

How to Build a Lightweight Semantic Router in Python Without Heavy Frameworks

Stop importing massive AI orchestration frameworks just to route user queries. Learn how to build a fast, dependency-free semantic router using local sentence embeddings and cosine similarity.

Tutorials & Guides

How to Build a Resilient JSON Parser for LLM Outputs That Fall Back Safely When Pydantic Fails

Structured outputs aren't bulletproof. When your LLM truncates a response or hallucinates a trailing comma, your app shouldn't crash. Here is how to build a robust, self-healing parser in Python that handles invalid JSON gracefully.

Tutorials & Guides

How to Build an Automated Prompt Injection Vulnerability Scanner for Your System Prompts Using Claude 3.5 Sonnet and Pytest

Don't let users trick your agent into reading its system instructions or executing arbitrary commands. Build a local red-teaming pipeline that tests your prompts automatically.

Tutorials & Guides

How to Build a Semantic Search CLI for Local Markdown Notes Using SQLite-Vec and Gemini 1.5 Flash

Ditch the expensive cloud vector databases. Here is how to build a lightning-fast, local-first semantic search tool for your Markdown vault using SQLite's native vector extension and Gemini.

Tutorials & Guides

How to Build a CLI to Auto-Generate PostgreSQL Migrations from Markdown Specs Using OpenAI Structured Outputs and Pydantic

Tired of manually translating schema specifications into safe SQL DDL? Use OpenAI Structured Outputs to build a reliable local migration generator that never hallucinating syntax errors.

Tutorials & Guides

How to Build a Local Dev Harness to Test Prompt Degradation Across Model Updates Using Python and Claude 3.5 Sonnet

Stop relying on manual 'vibe checks' for your AI features. Learn how to build a lightweight, local testing script in Python to catch prompt drift and API regressions before your users do.

Tutorials & Guides

The Beginner's Guide to AI Agents: What They Are and Why They Matter

The word "agent" is doing an enormous amount of work in AI marketing right now. Here is the plain-English version, minus the hype and minus the doom.

Tutorials & Guides

How to Build a Custom AI Agent (No Code Required)

You do not need a developer, a framework, or a weekend of YAML. Here is how to design and ship a genuinely useful custom AI agent using the tools you already pay for.

Tutorials & Guides

How to Build a Local CLI Tool to Auto-Document Legacy ExpressJS APIs Using Claude 3.5 Sonnet and Swagger

Inheriting legacy Express.js backends with zero documentation is a rite of passage for software engineers. This step-by-step tutorial shows you how to programmatically parse messy route directories and use Claude 3.5 Sonnet to draft valid OpenAPI/Swagger schemas.

Tutorials & Guides

How to Build a Local CLI to Audit Web Accessibility Violations and Auto-Fix HTML Using Gemini 1.5 Flash and Python

Writing accessible HTML is easy to ignore until a compliance audit hits. Here is how to build a local Python CLI tool that uses Gemini 1.5 Flash to automatically detect and repair web accessibility violations in your template files.

Tutorials & Guides

How to Build a Local CLI to Auto-Update Outdated Code Examples in Markdown Docs Using Claude 3.5 Sonnet and Python

API changes break markdown documentation all the time. Build a smart Python CLI tool that parses your actual codebase schemas and asks Claude to keep your markdown tutorials completely in sync.

Tutorials & Guides

How to Build a Local Pre-Commit Hook to Auto-Generate Unit Tests for Git Diffs Using Claude 3.5 Sonnet and Python

Stop skipping the boring stuff. Learn how to write a custom local git hook that intercepts your staging area, extracts your modified Python functions, and asks Claude to build your unit tests automatically.

Tutorials & Guides

How to Build a CLI Tool to Automate React i18n Extraction Using Gemini 1.5 Flash and Python

Localisation is vital, but pulling hardcoded strings out of React components into JSON files is incredibly dull. Automate your i18n workflows with Gemini 1.5 Flash and Pydantic structured outputs.

Tutorials & Guides

How to Build a Local CLI to Convert Figma SVG Exports into Clean Tailwind React Components Using Claude 3.5 Sonnet

Figma's SVG exports are notoriously cluttered. Stop cleaning them up by hand—build a quick Python CLI that uses Claude 3.5 Sonnet to transform messy vector graphics into production-ready React components styled with Tailwind CSS.