Project Info
Photograph

SEO Coolkit

A developer-focused SEO auditing platform built on Next.js and server actions. Handles batch operations across multiple URLs, toggleable output fields, and CSV/JSON export. A composable toolbox architecture means new tools plug in without rebuilding anything.

Next JSNext JS
ShadCNShadCN
Tailwind CSSTailwind CSS
TypescriptTypescript
CheerioCheerio

What I Built

A developer-focused SEO auditing platform built as a compilation of composable utilities under one roof. The MVP centers on a multi-URL bulk checker: paste a list of URLs, toggle which fields to inspect (title, meta description, canonical, Open Graph tags, robots, heading structure, status codes), and export the results as CSV or JSON. The architecture is designed as a toolbox — a shared utility layer and central tool registry mean new tools plug in without touching existing code.

Why I Built It

Most SEO tools are expensive, specialized, and inflexible. Each one focuses on a narrow problem, requiring you to juggle three or four subscriptions to cover a full audit workflow. And none of them let you configure exactly what data comes back — you get their output format, their fields, their export structure, whether that fits your workflow or not.

A developer doing site maintenance doesn't need a full SaaS platform. They need a fast, customizable way to check 50 URLs at once and get exactly the data they care about. That's what this is.

What Made Me Start

The realization that most SEO checks are just: fetch a URL, parse the HTML, extract specific tags. That's three steps. Cheerio does the parsing in a few lines of server-side code — no headless browser needed for metadata extraction, no CORS issues, no rate limit from a third-party API.

The cost of building a tool that does this for 100 URLs is barely higher than building one that does it for one. So the question became: why am I paying for this?

How I Did It

The Shared Utility Layer

All tools pull from a common set of utility functions: fetchPage fetches the raw HTML server-side, parseMeta extracts title, description, canonical and OG tags, parseRedirects traces redirect chains, parseLinks extracts all anchor elements. These functions are written once and reused across every tool — adding a redirect checker means wiring up parseRedirects to a new page, not re-implementing HTTP fetching.

The Tool Registry

Every tool is registered in a central config file with its name, slug, description, category, and status (free / beta / coming soon). This single file drives both the hub dashboard UI and the routing — adding a new tool is one config entry plus one new page. No hub code changes, no nav updates, no routing changes.

Server Actions Over API Routes

All fetching and HTML parsing happens server-side via Next.js Server Actions, which sidesteps CORS entirely. The client never touches external URLs directly — it passes a list of URLs to the action and receives back structured data. This means the tool works on any URL the server can reach, without any browser extension or proxy setup.

What Makes It Unique

Composable by Design

The architecture isn't optimized for the current tools — it's optimized for the tenth tool. Every structural decision (registry pattern, shared utilities, route-per-tool) is made to minimize the cost of expansion. The value compounds: the more tools added, the cheaper each new one becomes.

Toggleable Output Fields

Rather than returning a fixed schema for every URL, the bulk checker lets you select exactly which fields matter for your current task. Auditing canonical tags? Toggle that on, ignore the rest. Spot-checking Open Graph images before a campaign? Check those two fields across 80 URLs in one pass and export to CSV. No noise, no scroll.

Why This Matters to Me

SEO Coolkit is a tool I actually use. It came from frustration with existing options and the belief that a developer's own tools should fit their workflow precisely, not the other way around. Building it reinforced a principle I care about: understanding your problem well enough to build the right abstraction the first time.

  • Developer tooling mindset: Built for the person writing the code, not the person buying the subscription
  • Architecture thinking: Registry pattern and shared utilities designed before a single tool was built
  • Practical over perfect: Ships useful tools now, expands cleanly later
  • Own your tooling: Stop paying for things you can build in a weekend

The Bigger Picture

SEO Coolkit is the foundation for something larger. The registry pattern, shared utilities, and route-per-tool architecture are all designed with a future freemium model in mind — free tools for common checks, gated tools for high-value batch operations. The structure already supports it; monetization is a config flag away.

But more than that, it's proof of a development philosophy: before you build a feature, build the system that makes features cheap to add.

Key Takeaway

A well-designed shared utility layer is worth more than any individual tool built on top of it. The time spent on the registry pattern and the /lib/seo/ functions is the time that makes every future tool trivial to add. Build the foundation right, and the product becomes a collection of short pages, not a collection of duplicated logic.