<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Alexander Clapp</title>
    <description>The latest articles on Forem by Alexander Clapp (@alexander_clapp_695234c85).</description>
    <link>https://forem.com/alexander_clapp_695234c85</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3859768%2F96ea937d-68fa-4db9-afdc-d9585d68881c.png</url>
      <title>Forem: Alexander Clapp</title>
      <link>https://forem.com/alexander_clapp_695234c85</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/alexander_clapp_695234c85"/>
    <language>en</language>
    <item>
      <title>Lemkin is right about the API Report Card. Here is the angle we have been working on.</title>
      <dc:creator>Alexander Clapp</dc:creator>
      <pubDate>Fri, 01 May 2026 12:58:01 +0000</pubDate>
      <link>https://forem.com/alexander_clapp_695234c85/lemkin-is-right-about-the-api-report-card-here-is-the-angle-we-have-been-working-on-on3</link>
      <guid>https://forem.com/alexander_clapp_695234c85/lemkin-is-right-about-the-api-report-card-here-is-the-angle-we-have-been-working-on-on3</guid>
      <description>&lt;p&gt;Jason Lemkin launched the Agentic API Grader at saastr.ai/apireport last week. The framing is exactly right. The selection criteria for a SaaS API has shifted - it is no longer which dashboard looks nicer, it is whether an autonomous agent can actually use the thing. That is a category somebody needed to put a flag in, and it is good that someone with distribution did.&lt;/p&gt;

&lt;p&gt;I have been building in the same direction for about a month at clirank.dev. 416 APIs scored on signals like SDK availability, env-var auth, headless support, JSON responses, machine-readable pricing. Same intuition as Jason - the API is the new product surface for AI - just arrived at independently from the agent side.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where we ended up putting the focus
&lt;/h2&gt;

&lt;p&gt;The thing that decided our build order was a simple question: who is the actual reader?&lt;/p&gt;

&lt;p&gt;A founder asks Claude Code "what email API should I use for this app". Claude Code picks. The founder ships whatever the agent picked. The founder might never load a directory page in a browser at all. The agent is the customer. The human is the install wedge.&lt;/p&gt;

&lt;p&gt;So we built every piece of CLIRank to be agent-readable first.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Public JSON API at &lt;code&gt;clirank.dev/api/discover&lt;/code&gt;, no auth, no key&lt;/li&gt;
&lt;li&gt;MCP server published to npm, one-line install for Claude Code, Codex, Cursor, Cline, Continue, Windsurf&lt;/li&gt;
&lt;li&gt;An agent that finishes integrating an API can post a structured review back via &lt;code&gt;POST /api/reviews&lt;/code&gt; or the &lt;code&gt;submit_review&lt;/code&gt; MCP tool. Auth worked or did not. Time to first request. Headless or not. What broke.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The rubric is the cold start. Agent reviews override the rubric over time. The reason that matters: any single rubric is one team's opinion of what matters this quarter. Swap the agent, swap the prompt, the ranking shifts. Empirical data from agents that actually integrated the API tells you more than a static grade ever can. This was the bit Hassan Scalveta was getting at in the replies under Jason's announcement, and I think he is right.&lt;/p&gt;

&lt;h2&gt;
  
  
  Try it
&lt;/h2&gt;

&lt;p&gt;If you want to see what an agent-callable directory feels like in practice, three things to try:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;From any shell:
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;   curl https://clirank.dev/api/discover?q&lt;span class="o"&gt;=&lt;/span&gt;send+transactional+emails
   curl https://clirank.dev/api/recommend?task&lt;span class="o"&gt;=&lt;/span&gt;accept+payments
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;From Claude Code, Codex, or Cursor:
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;   claude mcp add clirank &lt;span class="nt"&gt;--&lt;/span&gt; npx &lt;span class="nt"&gt;-y&lt;/span&gt; clirank-mcp-server@latest
   codex mcp add clirank &lt;span class="nt"&gt;--&lt;/span&gt; npx &lt;span class="nt"&gt;-y&lt;/span&gt; clirank-mcp-server@latest
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then ask your agent the same kind of question you would normally guess at - "best vector DB under £50/month", "email API that runs headless in CI" - and see what it pulls back.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;If you have built with an API recently, tell us how it went. Either via the website at clirank.dev/submit, or by pointing your agent at the &lt;code&gt;submit_review&lt;/code&gt; MCP tool after a real integration. The dataset gets sharper every time someone closes the loop.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Lemkin is right that this is a category worth flagging. The bit we are betting on is that agents need to read it, not just humans. If you are working in this space, would love to hear what you are seeing.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>agents</category>
      <category>api</category>
      <category>mcp</category>
    </item>
    <item>
      <title>I Built a 387-API Directory in Days Using Claude Code</title>
      <dc:creator>Alexander Clapp</dc:creator>
      <pubDate>Sun, 05 Apr 2026 13:07:47 +0000</pubDate>
      <link>https://forem.com/alexander_clapp_695234c85/i-built-a-387-api-directory-in-days-using-claude-code-2lao</link>
      <guid>https://forem.com/alexander_clapp_695234c85/i-built-a-387-api-directory-in-days-using-claude-code-2lao</guid>
      <description>&lt;p&gt;I ran a VC-backed startup. Raised money. Had a team of hundreds at peak. The whole playbook.&lt;/p&gt;

&lt;p&gt;Now I build side projects solo. Just me and Claude Code. And I'm shipping faster than I ever did with a full company.&lt;/p&gt;

&lt;p&gt;This is the story of the first few days.&lt;/p&gt;

&lt;h2&gt;
  
  
  The problem I kept seeing
&lt;/h2&gt;

&lt;p&gt;Every time an AI coding agent - Claude Code, Cursor, Devin - needs to pick an API for a task, one of two things happens:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;The agent guesses from training data (often outdated)&lt;/li&gt;
&lt;li&gt;The developer hardcodes a choice before the agent even starts&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Neither is great. There's no structured, queryable data layer that tells an agent: "here are the email APIs, here's what they cost, here's how they compare on setup time, here's what other developers think of them."&lt;/p&gt;

&lt;p&gt;So I built one.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I shipped
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://clirank.dev" rel="noopener noreferrer"&gt;CLIRank&lt;/a&gt; is a directory of 387 APIs across 47 categories. Every entry has pricing data, setup time estimates, compatibility info, reviews, and side-by-side comparisons.&lt;/p&gt;

&lt;p&gt;The key decision: make it API-first. Any agent can query it with a simple HTTP call. No auth. No SDK. No installation.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl clirank.dev/api/compare?category&lt;span class="o"&gt;=&lt;/span&gt;email
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That returns structured JSON comparing every email API in the directory. Pricing tiers, free limits, setup complexity, community ratings. An agent can parse that and make an informed choice without opening a browser.&lt;/p&gt;

&lt;p&gt;There's also:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;GET /api/package?name=resend&lt;/code&gt; - package details, versions, compatibility&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;GET /api/categories&lt;/code&gt; - browse all 47 categories&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;GET /api/search?q=auth&lt;/code&gt; - search across the directory&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;POST /api/reviews&lt;/code&gt; - agents and humans can submit reviews&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That last one is the part I'm most excited about. Agents using APIs in production can report back what actually works. Over time, this builds a feedback loop that no static directory has.&lt;/p&gt;

&lt;h2&gt;
  
  
  The tech stack
&lt;/h2&gt;

&lt;p&gt;Nothing fancy:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Next.js&lt;/strong&gt; on Fly.io ($5/month)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;SQLite&lt;/strong&gt; on a Fly volume for package caching and reviews&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Static JSON&lt;/strong&gt; (&lt;code&gt;apis.json&lt;/code&gt;) as the source of truth for the directory&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;MCP server&lt;/strong&gt; so Claude Code can query CLIRank natively&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Total infrastructure cost: $5/month for hosting, $12/year for the domain. That's it.&lt;/p&gt;

&lt;h2&gt;
  
  
  How Claude Code changed the workflow
&lt;/h2&gt;

&lt;p&gt;I'm not going to pretend I wrote every line myself. Claude Code was the only "team member" on this project. Here's what that actually looked like:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What Claude Code was great at:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Scaffolding API routes and data schemas fast&lt;/li&gt;
&lt;li&gt;Writing comparison logic across API categories&lt;/li&gt;
&lt;li&gt;Building the MCP server integration&lt;/li&gt;
&lt;li&gt;Fixing bugs I'd have spent hours debugging manually&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;What I still had to do:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Curate the actual API data (what to include, how to score it)&lt;/li&gt;
&lt;li&gt;Make product decisions (API-first vs web-first, what endpoints to expose)&lt;/li&gt;
&lt;li&gt;Write the docs&lt;/li&gt;
&lt;li&gt;Figure out distribution (which is always the hard part)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The honest takeaway: Claude Code doesn't replace product thinking. It replaces the team you'd need to execute on that thinking. The bottleneck shifted from "can we build this?" to "should we build this?"&lt;/p&gt;

&lt;h2&gt;
  
  
  The numbers
&lt;/h2&gt;

&lt;p&gt;What shipped in days, solo:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;387 API entries curated across 47 categories&lt;/li&gt;
&lt;li&gt;5 API endpoints live and documented&lt;/li&gt;
&lt;li&gt;MCP server for native Claude Code integration&lt;/li&gt;
&lt;li&gt;Comparison pages for email, payments, auth, and more&lt;/li&gt;
&lt;li&gt;Full docs site at &lt;a href="https://clirank.dev/docs" rel="noopener noreferrer"&gt;clirank.dev/docs&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;What it costs to run:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Item&lt;/th&gt;
&lt;th&gt;Cost&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Fly.io hosting&lt;/td&gt;
&lt;td&gt;$5/month&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Domain&lt;/td&gt;
&lt;td&gt;$12/year&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Claude Code&lt;/td&gt;
&lt;td&gt;Existing Pro subscription&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Employees&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  What's next
&lt;/h2&gt;

&lt;p&gt;The API is live. The directory is growing. Next priorities:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;More agent-submitted reviews&lt;/strong&gt; - this is the flywheel that makes CLIRank different from a static list&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Package intelligence&lt;/strong&gt; - real-time npm/PyPI version data so agents don't guess at compatibility&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Better coverage&lt;/strong&gt; - there are obvious gaps in the directory&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Try it
&lt;/h2&gt;

&lt;p&gt;If you're building with coding agents and want to see what CLIRank looks like in practice:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Compare email APIs&lt;/span&gt;
curl clirank.dev/api/compare?category&lt;span class="o"&gt;=&lt;/span&gt;email

&lt;span class="c"&gt;# Get package details&lt;/span&gt;
curl clirank.dev/api/package?name&lt;span class="o"&gt;=&lt;/span&gt;resend

&lt;span class="c"&gt;# Search the directory&lt;/span&gt;
curl clirank.dev/api/search?q&lt;span class="o"&gt;=&lt;/span&gt;payments
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Docs: &lt;a href="https://clirank.dev/docs" rel="noopener noreferrer"&gt;clirank.dev/docs&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you're building with AI coding tools, I'm curious: what's the most annoying part of the API integration workflow for you? What would you actually want from a tool like this?&lt;/p&gt;

</description>
      <category>ai</category>
      <category>webdev</category>
      <category>programming</category>
      <category>productivity</category>
    </item>
  </channel>
</rss>
