Skip to content
netweft

What shipped, and why it was that shape.

Not a list of commit subjects. Each entry is dated by the day the work landed and says what changed and what it was solving — which is the only part worth reading a month later.

  1. The MCP server was always a remote one: a client that speaks HTTP pointed at https://api.netweft.com/mcp with an API key, and that was the whole setup. A client that only starts local programs, Claude Desktop among them, had no way in. It does now. netweft-mcp on npm is a small relay the client starts with npx: it takes each message the client writes, posts it to the server with your key, and hands the answer back. There is nothing to install by hand, and nothing in it but the relay.

    The server itself moved to the protocol’s newest revision, 2026-07-28, which drops the opening handshake and sends the version with every request. A client on an older revision still opens with initialize and is answered in its own version, so nothing that worked before stops working. Every tool now has a title and says it is read-only, and the server tells the agent how the tools fit together before its first call.

    Creating an API key now shows where it goes next: the endpoint, a Claude Code command and a config for the npm relay, filled in for your workspace, beside the key itself. The docs page has the setup for Claude Code, Claude Desktop, Cursor, VS Code, Windsurf, Codex CLI and Gemini CLI.

  2. There is now one brand master, and everything else is generated from it: the favicons, the app icons, the maskable icon, the touch icon and the mark on every share card, in both the marketing site and the dashboard. Nothing has to be kept in step because there is nothing to keep in step.

    The site also gained the pages it was missing. Comparisons against four tools, written about the shape of each product rather than about its price. Use cases with the month priced line by line. An API page with the whole error contract, an MCP page listing every tool by scope, and an integrations page that says what each connection is allowed to do. A credits page with a calculator that multiplies by the live rate card. A security page whose second half is the list of things netweft does not have. And a roadmap with no dates on it, because a date would be a guess.

  3. A model reading this site should not have to parse HTML to find the numbers on it. Every page is now served twice: once as a page, and once as the same document in plain markdown at the same path with .md appended.

    /llms.txt indexes all of them and /llms-full.txt is the whole site as one document. The assistant crawlers — GPTBot, ClaudeBot, PerplexityBot and the rest — are allowed by name in robots.txt rather than left to the wildcard: a product that sells visibility in search cannot credibly block the engines that are becoming search.

    The markdown twins are generated from the same modules the pages render, never transcribed from them, so a rate change reaches the machine-readable copy in the same commit.

  4. A tracker is a standing commitment to spend credits on a schedule, so its settings deserved a screen rather than a dialog. Schedule, devices and depth are all editable, and each change says what it does to the cost of a check before it is saved.

    The same pass put a price on every metric refresh in the product. A button that spends money and does not say so is the thing this product exists not to be.

  5. Two very different failures used to read the same way: one means the workspace cannot afford the call, the other means it asked too quickly. The first is cleared by buying credits and the second by waiting, so presenting them identically sent people to the wrong fix.

    A 402 now arrives with available and required, and the interface offers the top-up that would cover the difference. A 429 arrives with Retry-After, and the interface says how long. Both are documented on the API page.

  6. The strategist reads what the workspace already knows about the project and answers with a plan. It is restricted to figures read back through tools, so it cannot state a number the product did not measure, and the turn reserves credits at a ceiling before it runs and settles against what the model actually used.

    That second part matters more than it sounds. An AI feature that bills in arrears is an AI feature whose cost is unknown until the invoice; one that reserves a ceiling is one that can be refused before it spends.

  7. Crawling a page costs one credit, because the crawler is ours and the cost is compute. Measuring that page’s performance costs thirty, because it is not.

    On a five-hundred-page audit that ratio is the difference between a routine run and a third of a month’s allowance, so the option is presented with its price attached before the run starts rather than switched on by default and explained afterwards. The arithmetic is written up in what a 500-page crawl costs.

  8. A failing response now carries a human sentence in error and a stable machine code in code. The sentence is free to change; the code is a contract, and each one has exactly one HTTP status so a name never means two different things.

    Rank tracking, projects, keywords, Google and the dashboard all got their unnamed refusals named in the same pass. A code nobody can trigger is a promise the API does not keep, so a new one is only added when the path that emits it is.

    The whole contract is on the API page.

  9. There is no free tier, so a workspace with no subscription hits a wall the first time it tries to do anything. Sending that person to a pricing page makes them reconstruct which limit they hit and which plan clears it. Offering the plans at the point of refusal, with the refusal still on screen, does not.

  10. A workspace holds projects, and every question netweft answers is asked against one of them. The overview is built from the projects themselves rather than from a summary table kept alongside them — a summary that has to be maintained is a summary that eventually disagrees with what it summarises.

  11. The first thing written down was not a feature but a record of features being used. Archiving a project, restoring one, creating an API key and revoking one all write an audit event, so a workspace can answer the question of who did what without anybody having to have thought to log it at the time.

    Revocation leaves the key’s row in place rather than deleting it. A deleted key takes the evidence that it existed away with the access it granted, which is exactly backwards.

The reasoning is in the guides.

The guides are where the longer arguments behind these changes get written up, with the arithmetic attached.

There is no free tier. Three plans from $50 a month, each opening with a free trial.