The register8 claims
Every figure KitGrade states about the world, rather than about itself, is listed here. Each one names the page it was read from and the day it was read. Nothing on this site retypes a number: a page renders a figure by asking this register for it, and asking for a claim that is not marked verified throws rather than printing something.
Where a source could not be read at all, the claim is kept with no value and the page it would have appeared on says so instead of guessing.
- Solo $299, Startup $799, Agency $1,499, one-timesupastarter's one-time licence tiersCORRECTED 2026-08-14. The site had been publishing this kit at $149-$1,499. $149 is not a licence tier: the page sells an 'Expert consulting call, 60 minutes of 1-on-1 guidance to unblock your launch … Book call, $149' beside the kit, and extractPricing took the lowest dollar figure on the page. That figure made supastarter read as less than half Makerkit's $349 entry in the one paragraph of /makerkit-vs-supastarter that tells the reader price 'is the clearest difference to check yourself', under a lede calling the two kits 'roughly the same price', which the true $299 supports and the published $149 contradicted. Fixed in engine/lib/web.mjs (NOT_THE_KIT), not by hand. RE-CHECKED 2026-09-06 against the vendor's own tier table, not the evidence line: supastarter.dev serves 'Choose your plan Solo $299 once Select Popular Startup $799 once Select Agency $1,499 once'. Unchanged. The $149 'Book call' is still on the page and is still correctly excluded, so the 2026-08-14 correction is holding. RE-CHECKED 2026-09-09: Fetched the primary vendor page and read the licence tiers; the recorded prices are unchanged.supastarter, Choose your plan. Read 18 September 2026.
- Free $0, Professional $449, Unlimited $649, all one-timeSaaS Pegasus licence tiersDRIFTED AND CORRECTED 2026-09-06, and the vendor moved rather than the scraper. The 2026-08-14 row recorded Professional $449 and Unlimited $999 with Unlimited on sale at $499, and predicted that when the sale ended this row would move back to $449-$999 on its own. It did not. saaspegasus.com/pricing fetched by hand today with a browser user-agent (HTTP 200, 205,462 bytes) and the tier table read: 'Professional $ 449' and 'Unlimited $ 649'. There is no sale banner and nothing struck through, so $649 is the list price of Unlimited now, not a discount off $999. The vendor's own FAQ confirms the reprice from a second direction, because its worked example was updated too and now reads 'upgrading a license from Professional to Unlimited is $649 - $449 + $49 = $299' where in August it read $999. That arithmetic no longer sums, which is the vendor's error and not ours. kitgrade_kits holds price_min_usd 449 / price_max_usd 649 with price_checked_at 2026-09-06 13:52, so the nightly had already caught this unaided and the register was the thing lagging. Neither $49 nor $299 is a purchasable price and both remain excluded by ARITHMETIC_GAP and ADDEND_PREFIX. RE-CHECKED 2026-09-09: Fetched the primary vendor page and read the licence tiers; the recorded prices are unchanged.SaaS Pegasus, Pricing. Read 18 September 2026.
- $349-$649Makerkit's one-time licence range as published on kitgradePROMOTED 2026-08-15 from nightly-derived to verified, which is the check the 2026-08-14 row asked the next rotation to run. makerkit.dev/pricing fetched by hand with a browser user-agent (HTTP 200, 787,279 bytes) and the tier table read rather than the evidence line: three kits are offered, Supabase, Drizzle and Prisma, and each one prices Pro at '$ 349 /lifetime' and Teams at '$ 649 /lifetime'. No fourth tier, no sale banner, nothing struck through. So $349-$649 is the full published range and the scraper's figures are right: kitgrade_kits holds price_min_usd 349 / price_max_usd 649 with price_checked_at 2026-08-15 05:41. The one thing worth noting is that the nightly's evidence line is the homepage hero, 'Get lifetime access for only $ 349', not the tier table, it happens to agree here, and the supastarter and SaaS Pegasus corrections were both cases where a hero-adjacent figure did not. That is why this was checked against the table. RE-CHECKED 2026-09-06 against the tier table: makerkit.dev/pricing serves Pro at '$ 349' and Teams at '$ 649 /lifetime'. Unchanged. The page now also carries 'Estimated savings $12,000 - $22,500 (estimated)', which is excluded twice over: NOT_A_PRICE already rejects 'savings', and the range rule added today rejects both ends of a span. RE-CHECKED 2026-09-09: Fetched the primary vendor page and read the licence tiers; the recorded prices are unchanged.Makerkit, Pricing. Read 18 September 2026.
- 38 kits; 16 hands-on; 22 open-source, 16 paidHow many kits the directory covers, and how many were installed and runNot a hardcoded claim and deliberately so: src/app/layout.tsx computes the numbers from allKits() at build time, after an earlier version of the same sentence had been frozen in the metadata string. Recorded here anyway because it is the first claim a search engine reads about this product, so a build that silently drops rows would change the pitch. The check is that it still equals the row count rather than that the string still says a particular number. Re-derived 2026-09-06 from kitgrade_kits where active: 38 rows, 16 hands_on, 22 open_source, 16 paid. The two rows that moved 36 to 38 are anotherwrapper and vibeready, seeded this session because both were being cited for this product's boilerplate queries while the directory did not carry them. Both are paid and therefore documented rather than hands-on, which is why hands_on is unchanged at 16: a paid kit cannot be installed without buying it. RE-CHECKED 2026-09-09: Live canonical /api/stats returns 38 kits, 16 hands-on, 22 open-source and 16 paid. Removed obsolete fixed counts from the About description; the live directory remains the count source.KitGrade, corpus counts, derived from kitgrade_kits. Read 18 September 2026.
- Nightly at 01:40 local, via ops/launchd/compound.kitgrade.refresh.plistThe site's own claim about how often its figures are re-derivedThis is a claim about US, and it is in the register because it is the one that failed. API.md line 138 states the cadence and the whole product rests on it. The 2026-08-14 01:42 pass aborted before writing anything (Postgres 23502, see the commit), so the site served 2026-08-13's figures for the day while continuing to print that the figures are refreshed nightly. Checking this claim is one query, and it beats reading the log: select count(*) filter (where refreshed_at::date = current_date) from kitgrade_kits where active. Run 2026-08-15: 34 of 34, newest refreshed_at 05:41 UTC, the launchd pass ran unattended and completed, which is the first night since the fix that proves the schedule rather than a hand-run. One row carries refresh_error (larafast) and that is a vendor block, not a failed pass, see larafast-price-readable. RE-CHECKED 2026-09-06. The claim is about the SCHEDULE, so the check is that the launchd pass ran unattended, not that some pass ran. ~/Library/Logs/kitgrade-refresh.out.log closed at 2026-09-06 01:48:19 with the mention lane and the deploy note after it, and every one of the 38 active rows carries refreshed_at dated today. So the 01:42 job fired and completed on its own. RE-CHECKED 2026-09-09: Repo and installed launchd plists schedule 01:40; today's refresh log starts 01:40:01 and completes the mention lane at 01:47:06. API.md incorrectly said 03:20; corrected to 01:40. Register previously said 01:42; corrected.KitGrade, the scoring method. Read 18 September 2026.
- Unreadable, browser-UA fetch returns HTTP 200 but only 48 characters of visible text; no price can be verified.Why /kit/larafast publishes no price, and what the page says the reason isThe price itself cannot be verified and this row exists to keep that visible rather than let it read as 'the vendor withholds a price'. What changed 2026-08-15: kitgrade_kits.refresh_error on this row reads 'no readable public page among https://larafast.com/#pricing, https://larafast.com, https://larafast.com/pricing', and price_checked_at is still 2026-08-14 09:28, the row is yesterday's, kept on purpose (refresh.mjs:405). Checked by hand today: https://larafast.com/ returns 403 with a 1,486-byte block page and https://larafast.com/pricing returns 404. On 2026-08-13 the same host served 68,717 bytes of which 46 were visible text, which is the client-rendered shell the price_unmeasurable flag was built for. So the vendor has changed from rendering-in-browser to refusing the fetch. That mattered because the kit page asserted the FIRST of those as fact, 'This vendor renders its prices in the browser', off a flag (refresh.mjs:267) that only measures 'under 500 characters, no figure' and cannot tell the two apart. Copy corrected the same day to state the measurement instead of the cause. Do NOT hand-enter a LaraFast price to close this: an unreadable page is the finding. RE-CHECKED 2026-09-09: HTTP 200 replaces the earlier 403. After removing script/style tags, the visible text is only the page title (48 characters). No price inferred; the existing kit-page wording states unreadability without guessing its cause.LaraFast, vendor site. Read 9 September 2026. This one could not be read, so no figure is published from it.
- Solo $249, Startup $549, Agency $999, all one-timeAnotherWrapper's one-time licence tiersSeeded 2026-09-06 and CORRECTED the same hour, before anything shipped. The first refresh published this kit at $100 to $2,000 and not one end of that was a price of the kit. Every figure came off the vendor's own marketing page and each was wrong in a different way: $100 and $200 bound what the buyer already spends elsewhere ('one month of the $100 to $200 you send your agent'); $2,000 bounds a freelance quote ('hired out, any one of them is a $2,000 to $4,000 quote'); $199 is the Kickoff Hour, a service sold after checkout, and separately ShipFast's price in AnotherWrapper's own comparison table; $299 is the price this kit says it will charge AFTER the current batch sells out; $349 is Makerkit's price in that same table; and $1,050 is one line of a bonus stack totalling $27,150. The true tiers are stated in the vendor's own FAQ prose: 'AnotherWrapper costs $249 as a one-time payment for the Solo license (1 developer). Startup is $549 for up to 5 developers. Agency is $999 for up to 10 developers.' Fixed in engine/lib/web.mjs, not by hand, which is what this file's own header requires. kitgrade_kits now holds 249 to 999. RE-CHECKED 2026-09-09: Fetched the primary vendor page and read the licence tiers; the recorded prices are unchanged.AnotherWrapper, SaaS Starter Kit Pricing. Read 18 September 2026.
- AI Framework $99, Full Kit $249, both one-time; both on sale until 1 November 2026 from $149 and $399VibeReady's one-time licence tiersSeeded 2026-09-06 and CORRECTED the same hour, before anything shipped. The first refresh published $99 to $1,499. The low end was right and the high end belonged to somebody else: vibeready.sh runs a three-column feature table whose price row reads 'One-time: From $99, no per-seat fees' in its own column and a per-team span from $199 to $1,499 in the RIVALS column, and both ends of that span were being read as VibeReady's. Its real tiers sit lower down the same page: 'AI Framework Only, Regular price $149, $99 one-time payment, $50 off until Nov 1' and 'Full Kit, Regular price was $399, $249 one-time payment, $150 off until Nov 1'. So $99 and $249 are what a buyer pays today and the struck-through $149 and $399 are correctly excluded by NOT_A_PRICE. Expect this row to move to $149-$399 when the sale ends on 1 November 2026, the same way the register expected of SaaS Pegasus. kitgrade_kits now holds 99 to 249. VibeReady is a paid kit and therefore documented, not hands-on. RE-CHECKED 2026-09-09: Fetched the primary vendor page and read the licence tiers; the recorded prices are unchanged.VibeReady, Choose your starting point. Read 18 September 2026.
How this register is kept
KitGrade is built and run by Compound Labs. This register is a file in the product’s repository and the re-check is a build gate: there is no flag to skip it and no list of known exceptions, because either one is a supported way to record that a claim stopped being true and publish it anyway. The capture this app renders was taken on 2026-09-29.