Search DevTools

Jump to any tool or page

Built with Jon — Hidden Profit Tools

Unexplored

Read-only tools for finding where a small business leaks deals, time, and cash.

jonathanmalkin1 stars0 forksDesign & UX
View source

Install

mcp_config.json

{
  "mcpServers": {
    "com-builtwithjon-builtwithjon": {
      "url": "https://builtwithjon.com/mcp",
      "type": "streamable-http"
    }
  }
}

Documentation

builtwithjon.com

Personal site for Jonathan Malkin. AI builder, solo founder.

Built with Astro v6. Hosted on Cloudflare Workers as jonathanmalkin-site. Zero JavaScript by default.

Local Preview

From this repo:

npm run build
npm run preview

Deploy

Live deploys require both steps:

git push origin main
npm run build
find dist -name .DS_Store -delete
wrangler deploy

Do not pass --assets or --name. wrangler.jsonc owns the Worker and asset routing, including run_worker_first for the MCP endpoint. CLI asset flags can replace that configuration and cause static assets to intercept POST /mcp.

In the broader Active-Work workspace, use Scripts/deploy-website.sh to run the push, build, cleanup, and Wrangler deploy sequence.

GitHub push alone does not publish the live site.

IndexNow

After a deploy that changes one or more canonical, indexable pages, notify IndexNow with only those URLs:

npm run indexnow:submit -- https://builtwithjon.com/articles/example/

The script verifies that the deployed key file is live before it submits. Preview the exact bounded payload without any network call with:

npm run indexnow:submit -- --dry-run https://builtwithjon.com/articles/example/

It rejects other origins, query strings/fragments, and noindex/private routes. HTTP 200 means IndexNow received the notification; HTTP 202 means it received it and key validation is pending. Neither response guarantees that a search engine will index the URL.

See Also

Sourced from the repository README.

More in Design & UX