Built with Jon — Hidden Profit Tools
Read-only tools for finding where a small business leaks deals, time, and cash.
Links
README
From the repo.
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
- Jules — the Claude Code system that runs the business
- builtwithjon.com — the live site
Config for your environment
Use the endpoint URL below in your config. No API key — you connect directly.
Tool
OS
Config file: ~/.cursor/mcp.json
{
"mcpServers": {
"mcp-server": {
"url": "https://builtwithjon.com/mcp"
}
}
}Paste into mcpServers in the config file. Restart Cursor after saving.
If this MCP is also published on mcpchannel.ai, you can subscribe from Browse and use the gateway config there instead.