<?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>DEV Community: RileyCraig14</title>
    <description>The latest articles on DEV Community by RileyCraig14 (@rileycraig14).</description>
    <link>https://dev.to/rileycraig14</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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3913011%2Fa8aea3ef-2ec7-424f-a1c3-ba06d3044e17.png</url>
      <title>DEV Community: RileyCraig14</title>
      <link>https://dev.to/rileycraig14</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/rileycraig14"/>
    <language>en</language>
    <item>
      <title>TODAY MCP/x402: charge per call from $0.001</title>
      <dc:creator>RileyCraig14</dc:creator>
      <pubDate>Thu, 27 Aug 2026 22:26:53 +0000</pubDate>
      <link>https://dev.to/rileycraig14/today-mcpx402-charge-per-call-from-0001-23h1</link>
      <guid>https://dev.to/rileycraig14/today-mcpx402-charge-per-call-from-0001-23h1</guid>
      <description>&lt;p&gt;TODAY threads asking for MCP / x402 / cheap per-call rails. Live connector, no API key.&lt;/p&gt;

&lt;h2&gt;
  
  
  Live MCP
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://store.agentexchange.work/mcp" rel="noopener noreferrer"&gt;https://store.agentexchange.work/mcp&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Official registry: &lt;code&gt;io.github.rccola990-cloud/x402-agent-store&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;PulseMCP: &lt;a href="https://www.pulsemcp.com/servers/rccola990-x402-agent-store" rel="noopener noreferrer"&gt;https://www.pulsemcp.com/servers/rccola990-x402-agent-store&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Catalog: &lt;a href="https://store.agentexchange.work/.well-known/x402" rel="noopener noreferrer"&gt;https://store.agentexchange.work/.well-known/x402&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Pay-per-call prices
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;block-number: $0.001&lt;/li&gt;
&lt;li&gt;chat: $0.002&lt;/li&gt;
&lt;li&gt;search / prices: $0.01&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;USDC on Base via x402. The MCP forwards HTTP 402. You pay the call, not a subscription.&lt;/p&gt;

&lt;h2&gt;
  
  
  Human checkout
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Plan-vs-PR review pack — $29: &lt;a href="https://buy.stripe.com/3cIaEX72ob2P8ON2HZ7ss0l" rel="noopener noreferrer"&gt;https://buy.stripe.com/3cIaEX72ob2P8ON2HZ7ss0l&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Agent Protocol Pack — $24: &lt;a href="https://buy.stripe.com/7sYaEXcmI0obaWV4Q77ss0m" rel="noopener noreferrer"&gt;https://buy.stripe.com/7sYaEXcmI0obaWV4Q77ss0m&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Cursor / Claude: add mcpServers url &lt;code&gt;https://store.agentexchange.work/mcp&lt;/code&gt;&lt;/p&gt;

</description>
      <category>mcp</category>
      <category>cursor</category>
      <category>claude</category>
      <category>x402</category>
    </item>
    <item>
      <title>x402 MCP pay-per-call: Cursor and Claude connector from $0.001</title>
      <dc:creator>RileyCraig14</dc:creator>
      <pubDate>Thu, 27 Aug 2026 22:04:04 +0000</pubDate>
      <link>https://dev.to/rileycraig14/x402-mcp-pay-per-call-cursor-and-claude-connector-from-0001-bhj</link>
      <guid>https://dev.to/rileycraig14/x402-mcp-pay-per-call-cursor-and-claude-connector-from-0001-bhj</guid>
      <description>&lt;p&gt;Add this x402 MCP to Cursor or Claude. Pay per call. No API key signup.&lt;/p&gt;

&lt;h2&gt;
  
  
  Live MCP
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://store.agentexchange.work/mcp" rel="noopener noreferrer"&gt;https://store.agentexchange.work/mcp&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Official registry: &lt;code&gt;io.github.rccola990-cloud/x402-agent-store&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;PulseMCP: &lt;a href="https://www.pulsemcp.com/servers/rccola990-x402-agent-store" rel="noopener noreferrer"&gt;https://www.pulsemcp.com/servers/rccola990-x402-agent-store&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Catalog: &lt;a href="https://store.agentexchange.work/.well-known/x402" rel="noopener noreferrer"&gt;https://store.agentexchange.work/.well-known/x402&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Pay-per-call prices
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;block-number: $0.001&lt;/li&gt;
&lt;li&gt;chat: $0.002&lt;/li&gt;
&lt;li&gt;search / prices: $0.01&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;USDC on Base via x402. The MCP forwards HTTP 402. You pay the call, not a subscription.&lt;/p&gt;

&lt;h2&gt;
  
  
  Human checkout
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Plan-vs-PR review pack — $29: &lt;a href="https://buy.stripe.com/3cIaEX72ob2P8ON2HZ7ss0l" rel="noopener noreferrer"&gt;https://buy.stripe.com/3cIaEX72ob2P8ON2HZ7ss0l&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Agent Protocol Pack — $24: &lt;a href="https://buy.stripe.com/7sYaEXcmI0obaWV4Q77ss0m" rel="noopener noreferrer"&gt;https://buy.stripe.com/7sYaEXcmI0obaWV4Q77ss0m&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Cursor / Claude: add mcpServers url &lt;code&gt;https://store.agentexchange.work/mcp&lt;/code&gt;&lt;/p&gt;

</description>
      <category>mcp</category>
      <category>cursor</category>
      <category>claude</category>
      <category>x402</category>
    </item>
    <item>
      <title>SolPulse Lite: Solana TPS, stake, TVL, and DEX volume from public RPC</title>
      <dc:creator>RileyCraig14</dc:creator>
      <pubDate>Thu, 27 Aug 2026 18:06:55 +0000</pubDate>
      <link>https://dev.to/rileycraig14/solpulse-lite-solana-tps-stake-tvl-and-dex-volume-from-public-rpc-gjl</link>
      <guid>https://dev.to/rileycraig14/solpulse-lite-solana-tps-stake-tvl-and-dex-volume-from-public-rpc-gjl</guid>
      <description>&lt;p&gt;SolPulse Lite — a no-key, auto-updating Solana ecosystem snapshot from public RPC + DeFiLlama JSON.&lt;/p&gt;

&lt;p&gt;This is the report for Superteam Canada's auto-updating dashboard bounty. Open the numbers, not a thread.&lt;/p&gt;

&lt;p&gt;Built 2026-08-27. Re-run &lt;code&gt;python3 report.py&lt;/code&gt; to refresh.&lt;/p&gt;

&lt;h1&gt;
  
  
  Solana ecosystem report
&lt;/h1&gt;

&lt;p&gt;Generated &lt;strong&gt;2026-08-27T18:04:53Z&lt;/strong&gt; from Solana RPC &lt;code&gt;https://api.mainnet-beta.solana.com&lt;/code&gt; plus DeFiLlama public JSON. No API keys.&lt;/p&gt;

&lt;p&gt;Official first-party dashboard this complements: &lt;a href="https://solana.com/data" rel="noopener noreferrer"&gt;https://solana.com/data&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Network
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Metric&lt;/th&gt;
&lt;th&gt;Value&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;RPC health&lt;/td&gt;
&lt;td&gt;ok&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Slot / block height&lt;/td&gt;
&lt;td&gt;442158182 / 420206422&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Block time&lt;/td&gt;
&lt;td&gt;2026-08-27T18:04:42Z&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Epoch&lt;/td&gt;
&lt;td&gt;1023 (51.431% — slot 222183/432000)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Lifetime tx count&lt;/td&gt;
&lt;td&gt;542467586132&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;TPS all (last / mean / median)&lt;/td&gt;
&lt;td&gt;4580.2333 / 4868.3192 / 4845.4833&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;TPS non-vote (last / mean)&lt;/td&gt;
&lt;td&gt;2725.2167 / 3021.6839&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Slot time sec (last / mean)&lt;/td&gt;
&lt;td&gt;0.3681 / 0.369&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Circulating / non-circulating SOL&lt;/td&gt;
&lt;td&gt;584062509.74 / 48906810.9&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Median recent priority fee (microlamports)&lt;/td&gt;
&lt;td&gt;0.0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;RPC version&lt;/td&gt;
&lt;td&gt;{'feature-set': 565236538, 'solana-core': '4.2.0'}&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Validators
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Metric&lt;/th&gt;
&lt;th&gt;Value&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Active / delinquent&lt;/td&gt;
&lt;td&gt;684 / 13&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Active stake SOL&lt;/td&gt;
&lt;td&gt;432738170.08&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Delinquent stake share&lt;/td&gt;
&lt;td&gt;0.9491%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Top 15 stake share&lt;/td&gt;
&lt;td&gt;30.815%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Median commission&lt;/td&gt;
&lt;td&gt;5.0%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Validators with commission ≥ 10%&lt;/td&gt;
&lt;td&gt;101&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  Top validators by activated stake
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Rank&lt;/th&gt;
&lt;th&gt;Vote&lt;/th&gt;
&lt;th&gt;Stake SOL&lt;/th&gt;
&lt;th&gt;Share&lt;/th&gt;
&lt;th&gt;Commission&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;code&gt;CcaHc2L43ZWjwCHART3oZoJvHLAe9hzT2DJNUpBzoTN1&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;17062868.77&lt;/td&gt;
&lt;td&gt;3.9056%&lt;/td&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;&lt;code&gt;he1iusunGwqrNtafDtLdhsUQDFvo13z9sUa36PauBtk&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;16029433.07&lt;/td&gt;
&lt;td&gt;3.669%&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;&lt;code&gt;3N7s9zXMZ4QqvHQR15t5GNHyqc89KduzMP7423eWiD5g&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;12314378.81&lt;/td&gt;
&lt;td&gt;2.8187%&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;&lt;code&gt;CatzoSMUkTRidT5DwBxAC2pEtnwMBTpkCepHkFgZDiqb&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;11751683.36&lt;/td&gt;
&lt;td&gt;2.6899%&lt;/td&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;td&gt;&lt;code&gt;26pV97Ce83ZQ6Kz9XT4td8tdoUFPTng8Fb8gPyc53dJx&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;9216851.87&lt;/td&gt;
&lt;td&gt;2.1097%&lt;/td&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;6&lt;/td&gt;
&lt;td&gt;&lt;code&gt;8GbwASqdpw4dVcwbWUxbHXMrjyQx2aKkoBR5H1GJF8iD&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;9051083.5&lt;/td&gt;
&lt;td&gt;2.0717%&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;td&gt;&lt;code&gt;51JBzSTU5rAM8gLAVQKgp4WoZerQcSqWC7BitBzgUNAm&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;8904594.62&lt;/td&gt;
&lt;td&gt;2.0382%&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;8&lt;/td&gt;
&lt;td&gt;&lt;code&gt;9QU2QSxhb24FUX3Tu2FpczXjpK3VYrvRudywSZaM29mF&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;7849682.13&lt;/td&gt;
&lt;td&gt;1.7967%&lt;/td&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;9&lt;/td&gt;
&lt;td&gt;&lt;code&gt;CvSb7wdQAFpHuSpTYTJnX5SYH4hCfQ9VuGnqrKaKwycB&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;7301740.17&lt;/td&gt;
&lt;td&gt;1.6713%&lt;/td&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;&lt;code&gt;DumiCKHVqoCQKD8roLApzR5Fit8qGV5fVQsJV9sTZk4a&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;6578260.8&lt;/td&gt;
&lt;td&gt;1.5057%&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;&lt;code&gt;HZKopZYvv8v6un2H6KUNVQCnK5zM9emKKezvqhTBSpEc&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;6122616.98&lt;/td&gt;
&lt;td&gt;1.4014%&lt;/td&gt;
&lt;td&gt;100&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;12&lt;/td&gt;
&lt;td&gt;&lt;code&gt;3JD3jMmnR6g88qff2WZ3cMHJRjJMUk9yVZtmYTYeFrXf&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;6055913.39&lt;/td&gt;
&lt;td&gt;1.3862%&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;13&lt;/td&gt;
&lt;td&gt;&lt;code&gt;DdCNGDpP7qMgoAy6paFzhhak2EeyCZcgjH7ak5u5v28m&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;5925952.73&lt;/td&gt;
&lt;td&gt;1.3564%&lt;/td&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;14&lt;/td&gt;
&lt;td&gt;&lt;code&gt;GHViLgbrJdZDPb6sphRbeuPNM9cmjsFuGWzrTF1sKF5n&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;5640480.28&lt;/td&gt;
&lt;td&gt;1.2911%&lt;/td&gt;
&lt;td&gt;100&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;15&lt;/td&gt;
&lt;td&gt;&lt;code&gt;FKsC411dik9ktS6xPADxs4Fk2SCENvAiuccQHLAPndvk&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;4820550.14&lt;/td&gt;
&lt;td&gt;1.1034%&lt;/td&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Economy (DeFiLlama + CoinGecko-via-Llama)
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Metric&lt;/th&gt;
&lt;th&gt;Value&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;SOL USD&lt;/td&gt;
&lt;td&gt;108.34137918598806&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;DeFi TVL&lt;/td&gt;
&lt;td&gt;$6.00B (1d 7.072%, 7d 14.866%, 30d 24.595%)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Stablecoin circulating USD&lt;/td&gt;
&lt;td&gt;$15.87B&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;DEX volume 24h / 7d&lt;/td&gt;
&lt;td&gt;$2.35B / $21.32B&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;DEX 1d / 7d change&lt;/td&gt;
&lt;td&gt;-19.87% / -21.87%&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  Top Solana DEX venues by 24h volume
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Venue&lt;/th&gt;
&lt;th&gt;24h USD&lt;/th&gt;
&lt;th&gt;1d change&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;PumpSwap&lt;/td&gt;
&lt;td&gt;$765.13M&lt;/td&gt;
&lt;td&gt;34.73%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Orca DEX&lt;/td&gt;
&lt;td&gt;$370.71M&lt;/td&gt;
&lt;td&gt;-19.33%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;BisonFi&lt;/td&gt;
&lt;td&gt;$251.44M&lt;/td&gt;
&lt;td&gt;-38.88%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Meteora DLMM&lt;/td&gt;
&lt;td&gt;$184.81M&lt;/td&gt;
&lt;td&gt;-24.98%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Raydium AMM&lt;/td&gt;
&lt;td&gt;$170.11M&lt;/td&gt;
&lt;td&gt;-11.92%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Manifest Trade&lt;/td&gt;
&lt;td&gt;$159.48M&lt;/td&gt;
&lt;td&gt;-19.16%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Axiom&lt;/td&gt;
&lt;td&gt;$126.33M&lt;/td&gt;
&lt;td&gt;42.08%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Jupiterz&lt;/td&gt;
&lt;td&gt;$78.00M&lt;/td&gt;
&lt;td&gt;-1.65%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Scorch&lt;/td&gt;
&lt;td&gt;$77.83M&lt;/td&gt;
&lt;td&gt;-55.03%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;pump.fun&lt;/td&gt;
&lt;td&gt;$63.58M&lt;/td&gt;
&lt;td&gt;-43.32%&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Anomalies
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;info / none&lt;/strong&gt; — No threshold breaches on TPS, slot time, delinquency, or 1d TVL.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Upcoming / in-flight upgrades (first-party)
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Alpenglow (SIMD-0326)
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Status: Not mainnet-active as of 2026-08-27. Community test cluster since 2026-05-11. Agave 4.2 shipped Alpenglow code with the switch off; Agave 4.3 is the activation release.&lt;/li&gt;
&lt;li&gt;Why it matters: Replaces TowerBFT + Proof-of-History voting path with Votor/Rotor. Target finality ~150ms. Validator Admission Ticket (VAT) replaces on-chain vote fees.&lt;/li&gt;
&lt;li&gt;Source: &lt;a href="https://forum.solana.com/t/simd-0326-proposal-for-the-new-alpenglow-consensus-protocol/4236" rel="noopener noreferrer"&gt;https://forum.solana.com/t/simd-0326-proposal-for-the-new-alpenglow-consensus-protocol/4236&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Also: &lt;a href="https://github.com/solana-foundation/solana-improvement-documents/pull/326" rel="noopener noreferrer"&gt;https://github.com/solana-foundation/solana-improvement-documents/pull/326&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Slot-time cut (SIMD-0525, bounty text: SIMD-525)
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Status: Phased. Agave 4.2 feature activations (week of 2026-08-17) start 400ms -&amp;gt; 350ms, later target 200ms. This is independent of Alpenglow.&lt;/li&gt;
&lt;li&gt;Why it matters: Faster slots change confirmation cadence for traders; Alpenglow changes finality and vote-tx overhead.&lt;/li&gt;
&lt;li&gt;Source: &lt;a href="https://solana.com/data" rel="noopener noreferrer"&gt;https://solana.com/data&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Also: &lt;a href="https://github.com/solana-foundation/solana-improvement-documents" rel="noopener noreferrer"&gt;https://github.com/solana-foundation/solana-improvement-documents&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Official network dashboard
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Status: Live first-party page for fees, price, block production.&lt;/li&gt;
&lt;li&gt;Why it matters: This report does not scrape solana.com/data charts. It recomputes the same class of numbers from RPC + public JSON so it can refresh without a browser.&lt;/li&gt;
&lt;li&gt;Source: &lt;a href="https://solana.com/data" rel="noopener noreferrer"&gt;https://solana.com/data&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Also: &lt;a href="https://github.com/solana-foundation/solana-data-aggregator" rel="noopener noreferrer"&gt;https://github.com/solana-foundation/solana-data-aggregator&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Fetch errors
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;llama_rwa: HTTPError: HTTP Error 500: Internal Server Error&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  How this was built
&lt;/h2&gt;

&lt;p&gt;Python 3 stdlib only. &lt;code&gt;report.py&lt;/code&gt; hits public JSON endpoints, writes &lt;code&gt;out/report.json&lt;/code&gt;, &lt;code&gt;out/report.md&lt;/code&gt;, &lt;code&gt;out/dashboard.html&lt;/code&gt;. Cron: &lt;code&gt;*/10 * * * * cd /path &amp;amp;&amp;amp; python3 report.py&lt;/code&gt;.&lt;br&gt;
Daily active addresses and Dune-only REV are not invented: they need a Dune key, which this listing asked us to avoid.&lt;/p&gt;

</description>
      <category>solana</category>
      <category>blockchain</category>
      <category>web3</category>
      <category>opensource</category>
    </item>
    <item>
      <title>Hard rules vs soft rules: stop coding agents from handwriting migrations</title>
      <dc:creator>RileyCraig14</dc:creator>
      <pubDate>Thu, 27 Aug 2026 18:04:57 +0000</pubDate>
      <link>https://dev.to/rileycraig14/hard-rules-vs-soft-rules-stop-coding-agents-from-handwriting-migrations-27nb</link>
      <guid>https://dev.to/rileycraig14/hard-rules-vs-soft-rules-stop-coding-agents-from-handwriting-migrations-27nb</guid>
      <description>&lt;p&gt;A markdown file is a request. A hook that exits 1 is a rule.&lt;/p&gt;

&lt;p&gt;This week someone asked how to stop coding agents from acting out of line. The easy case is "don't write the README." The hard case is "database migrations must be autogenerated, never handwritten." A sentence in &lt;code&gt;AGENTS.md&lt;/code&gt; will not hold that line. A pre-commit hook will.&lt;/p&gt;

&lt;p&gt;I shipped the pack as a same-day zip. The useful part is below. The full hook + CI + Cursor rule is the paid file.&lt;/p&gt;

&lt;p&gt;Buy the pack: &lt;a href="https://buy.stripe.com/7sYaEXcmI0obaWV4Q77ss0m" rel="noopener noreferrer"&gt;https://buy.stripe.com/7sYaEXcmI0obaWV4Q77ss0m&lt;/a&gt; ($24, Stripe Payment Link, no account needed to pay)&lt;/p&gt;

&lt;h2&gt;
  
  
  Soft vs hard
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Intent&lt;/th&gt;
&lt;th&gt;Why markdown fails&lt;/th&gt;
&lt;th&gt;Hard check&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Do not write README / CHANGELOG&lt;/td&gt;
&lt;td&gt;Models "helpfully" update docs&lt;/td&gt;
&lt;td&gt;Deny-list path match&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Do not touch &lt;code&gt;.env&lt;/code&gt; or lockfiles&lt;/td&gt;
&lt;td&gt;Models "finish the setup"&lt;/td&gt;
&lt;td&gt;Deny-list path match&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Migrations must be autogenerated&lt;/td&gt;
&lt;td&gt;Models write SQL that drifts from the ORM&lt;/td&gt;
&lt;td&gt;Require a generator header or fail&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Do not add dependencies&lt;/td&gt;
&lt;td&gt;Models grab a package to look busy&lt;/td&gt;
&lt;td&gt;Fail if the manifest changed&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;If you cannot write a check that exits 1, it is not a protocol. It is a vibe.&lt;/p&gt;

&lt;h2&gt;
  
  
  Drop-in &lt;code&gt;AGENTS.md&lt;/code&gt; (free, use today)
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;&lt;span class="gh"&gt;# Agent protocol&lt;/span&gt;

You may edit files listed in the plan. You may add a test that proves the plan.
You may autogenerate a migration with the project generator, then stop.

You may not write README.md, CHANGELOG, docs/, or .env.
You may not handwrite a SQL or ORM migration.
You may not add a dependency.
You may not pass --no-verify.

If the plan needs a schema change and you cannot run the generator, stop. Do not write the SQL.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Copy that to &lt;code&gt;AGENTS.md&lt;/code&gt; and &lt;code&gt;CLAUDE.md&lt;/code&gt;. Soft. Necessary. Not enough.&lt;/p&gt;

&lt;h2&gt;
  
  
  The check that makes it hard
&lt;/h2&gt;

&lt;p&gt;Put this at &lt;code&gt;tools/check-protocol.py&lt;/code&gt;. The hook and the GitHub Action both call it.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;pathlib&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;re&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;sys&lt;/span&gt;

&lt;span class="n"&gt;DENY&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;README.md&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;CHANGELOG.md&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;.env&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="n"&gt;MIG_RE&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;re&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;compile&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;r&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;(^|/)(alembic/versions|migrations|prisma/migrations|drizzle|supabase/migrations|db/migrate)/&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;GEN&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;re&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;compile&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;r&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;(GENERATED-BY:|Auto-generated by|Generated by (Alembic|Prisma|Rails|Django|drizzle-kit))&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;re&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;I&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;SQL&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;re&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;compile&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;r&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;\b(CREATE|ALTER|DROP)\s+(TABLE|INDEX|TYPE)\b&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;re&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;I&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;denied&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;p&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;pathlib&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;Path&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;p&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;DENY&lt;/span&gt; &lt;span class="ow"&gt;or&lt;/span&gt; &lt;span class="n"&gt;p&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;startswith&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;docs/&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="ow"&gt;or&lt;/span&gt; &lt;span class="n"&gt;p&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;startswith&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;secrets/&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;failed&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[]&lt;/span&gt;
&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;path&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;ln&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;strip&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;ln&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;sys&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;stdin&lt;/span&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;ln&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;strip&lt;/span&gt;&lt;span class="p"&gt;()]:&lt;/span&gt;
    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="nf"&gt;denied&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;path&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
        &lt;span class="n"&gt;failed&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;append&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;DENY &lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;path&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="k"&gt;continue&lt;/span&gt;
    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;MIG_RE&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;search&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;path&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
        &lt;span class="n"&gt;body&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;pathlib&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;Path&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;path&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;read_text&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;pathlib&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;Path&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;path&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;exists&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="sh"&gt;""&lt;/span&gt;
        &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;body&lt;/span&gt; &lt;span class="ow"&gt;and&lt;/span&gt; &lt;span class="ow"&gt;not&lt;/span&gt; &lt;span class="n"&gt;GEN&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;search&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;body&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="ow"&gt;and&lt;/span&gt; &lt;span class="n"&gt;SQL&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;search&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;body&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
            &lt;span class="n"&gt;failed&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;append&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;HANDWRITTEN MIGRATION &lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;path&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;failed&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="n"&gt;sys&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;stderr&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;write&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;join&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;failed&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;sys&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;exit&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Pre-commit (&lt;code&gt;.git/hooks/pre-commit&lt;/code&gt;):&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;#!/bin/sh&lt;/span&gt;
&lt;span class="nb"&gt;set&lt;/span&gt; &lt;span class="nt"&gt;-e&lt;/span&gt;
git diff &lt;span class="nt"&gt;--cached&lt;/span&gt; &lt;span class="nt"&gt;--name-only&lt;/span&gt; &lt;span class="nt"&gt;--diff-filter&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;ACMR | python3 tools/check-protocol.py
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That is the handwritten-migration case: the agent can still &lt;em&gt;want&lt;/em&gt; to write &lt;code&gt;ALTER TABLE&lt;/code&gt;. The commit dies anyway.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is in the $24 zip
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;01-hard-vs-soft.md&lt;/code&gt; — the matrix, with the dependency and schema rows&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;02-AGENTS.md&lt;/code&gt; — the drop-in protocol&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;03-no-handwritten-migrations.mdc&lt;/code&gt; — Cursor always-on rule&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;04-pre-commit-protocol.sh&lt;/code&gt; — installable hook&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;05-protocol-check.yml&lt;/code&gt; — GitHub Action on PRs&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;06-check-protocol.py&lt;/code&gt; — the checker with editable deny-list and migration globs&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Pay here: &lt;a href="https://buy.stripe.com/7sYaEXcmI0obaWV4Q77ss0m" rel="noopener noreferrer"&gt;https://buy.stripe.com/7sYaEXcmI0obaWV4Q77ss0m&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After payment the Stripe receipt is the ticket. Email that receipt to &lt;a href="mailto:rileycraig14@gmail.com"&gt;rileycraig14@gmail.com&lt;/a&gt; and the zip goes out.&lt;/p&gt;

&lt;p&gt;This is a file, not a comment, not a retainer, not GEO.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>git</category>
      <category>productivity</category>
      <category>testing</category>
    </item>
    <item>
      <title>Plan-vs-PR review: CodeRabbit is not ownership</title>
      <dc:creator>RileyCraig14</dc:creator>
      <pubDate>Thu, 27 Aug 2026 17:46:48 +0000</pubDate>
      <link>https://dev.to/rileycraig14/plan-vs-pr-review-coderabbit-is-not-ownership-33jd</link>
      <guid>https://dev.to/rileycraig14/plan-vs-pr-review-coderabbit-is-not-ownership-33jd</guid>
      <description>&lt;p&gt;CodeRabbit already failed a 3-dev team today (HN: code review is the bottleneck, PRs stacking, model review misses app context).&lt;/p&gt;

&lt;p&gt;dylanratcliffe posted numbers on 26 Aug 2026: 677 PRs, 25% matched the plan, 75% differed.&lt;/p&gt;

&lt;p&gt;This is the pack I would hand that team. Use it on the next PR. If the plan file is empty, do not review the diff.&lt;/p&gt;

&lt;h1&gt;
  
  
  Plan-vs-PR Review Pack
&lt;/h1&gt;

&lt;p&gt;For a 3-person team where LLMs write faster than humans can read.&lt;/p&gt;

&lt;p&gt;CodeRabbit and “review the diff” fail because they never saw the plan.&lt;br&gt;
dylanratcliffe’s public numbers (HN, 26 Aug 2026): 677 PRs, 25% matched the plan, 75% differed, 44.6% skipped planned work.&lt;/p&gt;

&lt;p&gt;This pack moves the human review to the plan, then scores the PR against that plan in four buckets.&lt;/p&gt;

&lt;h2&gt;
  
  
  Files
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;01-plan-template.md&lt;/code&gt; — fill this BEFORE the agent codes&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;02-four-bucket-rubric.md&lt;/code&gt; — missing / changed / beyond / scope&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;03-human-comments.md&lt;/code&gt; — paste-ready review comments&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;04-cursor-codex-prompt.md&lt;/code&gt; — the model only asks app-context questions&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Use it on the next PR. If the plan file is empty, do not review the PR. Review the empty plan.&lt;/p&gt;

&lt;h1&gt;
  
  
  Implementation plan
&lt;/h1&gt;

&lt;p&gt;Owner:&lt;br&gt;
Date:&lt;br&gt;
PR / branch (fill after):&lt;br&gt;
App context the model does not have:&lt;/p&gt;

&lt;h2&gt;
  
  
  Intent (one paragraph)
&lt;/h2&gt;

&lt;p&gt;What must be true when this ships?&lt;/p&gt;

&lt;h2&gt;
  
  
  In scope
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;[ ]&lt;/li&gt;
&lt;li&gt;[ ]&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Out of scope (do not implement)
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;[ ]&lt;/li&gt;
&lt;li&gt;[ ]&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Files that may change
&lt;/h2&gt;

&lt;p&gt;-&lt;/p&gt;

&lt;h2&gt;
  
  
  Files that must not change
&lt;/h2&gt;

&lt;p&gt;-&lt;/p&gt;

&lt;h2&gt;
  
  
  Checks that must pass
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;[ ] existing tests&lt;/li&gt;
&lt;li&gt;[ ] one new test that proves the intent&lt;/li&gt;
&lt;li&gt;[ ] no README / config / lockfile unless listed above&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Ownership
&lt;/h2&gt;

&lt;p&gt;Who can approve the plan:&lt;br&gt;
Who can approve the PR against this plan:&lt;/p&gt;

&lt;p&gt;Sign-off (human):&lt;/p&gt;

&lt;h1&gt;
  
  
  Four-bucket PR score
&lt;/h1&gt;

&lt;p&gt;Open the plan. Open the diff. Put every file into one bucket. Do not read the whole PR first.&lt;/p&gt;

&lt;h2&gt;
  
  
  Missing
&lt;/h2&gt;

&lt;p&gt;Planned work that is not in the diff.&lt;br&gt;
Fail the PR if any Missing item is in the intent paragraph.&lt;/p&gt;

&lt;h2&gt;
  
  
  Changed
&lt;/h2&gt;

&lt;p&gt;Planned work that landed differently than the plan.&lt;br&gt;
Ask: does the change still satisfy the intent? If no, fail. If yes, update the plan in the same PR.&lt;/p&gt;

&lt;h2&gt;
  
  
  Beyond
&lt;/h2&gt;

&lt;p&gt;Unplanned files or features.&lt;br&gt;
Default: reject. Only keep if the owner adds it to the plan before merge.&lt;/p&gt;

&lt;h2&gt;
  
  
  Scope
&lt;/h2&gt;

&lt;p&gt;Planned and present.&lt;br&gt;
These are the only lines a human must actually read.&lt;/p&gt;

&lt;h2&gt;
  
  
  Pass rule
&lt;/h2&gt;

&lt;p&gt;Merge only if Missing is empty, Beyond is empty or re-planned, and Scope has a test that proves the intent.&lt;/p&gt;

&lt;h1&gt;
  
  
  Human comment templates
&lt;/h1&gt;

&lt;h2&gt;
  
  
  Plan is empty
&lt;/h2&gt;

&lt;p&gt;This PR has no plan file. I am not reviewing the diff. Paste &lt;code&gt;01-plan-template.md&lt;/code&gt; in the description, get a human sign-off, then re-request review.&lt;/p&gt;

&lt;h2&gt;
  
  
  Missing
&lt;/h2&gt;

&lt;p&gt;Plan said: {item}. Diff does not include it. Blocking until it lands or the plan is updated.&lt;/p&gt;

&lt;h2&gt;
  
  
  Beyond
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;{file}&lt;/code&gt; is not on the plan. Please revert, or add it to Out of scope / In scope and get a new sign-off. I will not review unplanned files.&lt;/p&gt;

&lt;h2&gt;
  
  
  Changed
&lt;/h2&gt;

&lt;p&gt;Plan said {A}. Diff does {B}. Intent still holds? If yes, update the plan in this PR. If no, this is a fail.&lt;/p&gt;

&lt;h2&gt;
  
  
  Ownership
&lt;/h2&gt;

&lt;p&gt;I can confirm Scope matches the plan. I cannot confirm app-context (auth, billing, migrations) — {name} owns that. Model review is not a substitute.&lt;/p&gt;

&lt;h2&gt;
  
  
  CodeRabbit already ran
&lt;/h2&gt;

&lt;p&gt;Automated review is not ownership. This comment is the plan-vs-PR score: Missing {n}, Changed {n}, Beyond {n}, Scope {n}.&lt;/p&gt;

&lt;h1&gt;
  
  
  Cursor / Codex prompt (paste as the review agent)
&lt;/h1&gt;

&lt;p&gt;You are not a style linter. You do not invent findings.&lt;/p&gt;

&lt;p&gt;Read &lt;code&gt;01-plan-template.md&lt;/code&gt; first. If it is missing or unsigned, reply only: "No signed plan. Stop."&lt;/p&gt;

&lt;p&gt;Then classify every changed file into Missing, Changed, Beyond, or Scope using &lt;code&gt;02-four-bucket-rubric.md&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Rules:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Do not comment on Scope unless a test is missing for the intent.&lt;/li&gt;
&lt;li&gt;Do not suggest new features (that is Beyond).&lt;/li&gt;
&lt;li&gt;You may ask at most three questions, and only about app context a model cannot know (auth, prod data, migrations, billing).&lt;/li&gt;
&lt;li&gt;If you cannot tell, say "needs human owner" instead of guessing.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Output format:&lt;br&gt;
Missing:&lt;br&gt;
Changed:&lt;br&gt;
Beyond:&lt;br&gt;
Scope:&lt;br&gt;
Questions (max 3):&lt;br&gt;
Merge: yes / no&lt;/p&gt;

&lt;p&gt;The zip is $29: &lt;a href="https://buy.stripe.com/3cIaEX72ob2P8ON2HZ7ss0l" rel="noopener noreferrer"&gt;Pay $29&lt;/a&gt;. Email the receipt to &lt;a href="mailto:rileycraig14@gmail.com"&gt;rileycraig14@gmail.com&lt;/a&gt; and the zip goes out the same day.&lt;/p&gt;

&lt;p&gt;Sitting this where people already asked: &lt;a href="https://news.ycombinator.com/item?id=49461811" rel="noopener noreferrer"&gt;https://news.ycombinator.com/item?id=49461811&lt;/a&gt;&lt;/p&gt;

</description>
      <category>programming</category>
      <category>ai</category>
      <category>codereview</category>
      <category>productivity</category>
    </item>
    <item>
      <title>Poland already sold one Solana privacy shop. The other one is a live app.</title>
      <dc:creator>RileyCraig14</dc:creator>
      <pubDate>Thu, 27 Aug 2026 17:43:43 +0000</pubDate>
      <link>https://dev.to/rileycraig14/poland-already-sold-one-solana-privacy-shop-the-other-one-is-a-live-app-1h93</link>
      <guid>https://dev.to/rileycraig14/poland-already-sold-one-solana-privacy-shop-the-other-one-is-a-live-app-1h93</guid>
      <description>&lt;h1&gt;
  
  
  Poland already sold one Solana privacy shop. The other one is a live app.
&lt;/h1&gt;

&lt;p&gt;@SuperteamPOL asked for research on Polish Solana projects. I opened the official pages, not a recap thread.&lt;/p&gt;

&lt;p&gt;Two things are true on 2026-08-27.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Darklake is no longer a side quest
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://darklake.fi" rel="noopener noreferrer"&gt;https://darklake.fi&lt;/a&gt; now loads as SOL Strategies: Solana validator infrastructure plus privacy tech.&lt;/p&gt;

&lt;p&gt;Their own homepage says they completed the Darklake Labs acquisition and brought the zero-knowledge team onto the Solana platform. Same page: Houdini Swap (privacy swap aggregator, 100+ networks, 39 app integrations) and four enterprise validators.&lt;/p&gt;

&lt;p&gt;That is the big-company move. Privacy is not a tweet. It is a revenue line that does not have to move with the SOL price. Staking revenue does. Houdini does not.&lt;/p&gt;

&lt;p&gt;If you were bullish on Darklake as a zkAMM that hides trade size, direction, and slippage so sandwich bots have nothing to read, the acquisition is the proof. A public-markets Solana shop bought the lab. The thesis got a balance sheet.&lt;/p&gt;

&lt;p&gt;Sources: &lt;a href="https://darklake.fi" rel="noopener noreferrer"&gt;https://darklake.fi&lt;/a&gt; (milestones: Darklake Labs acquisition, Houdini Swap agreement).&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Outlight is a product you can click today
&lt;/h2&gt;

&lt;p&gt;Outlight's own docs (&lt;a href="https://docs.outlight.ai/solution/product-overview" rel="noopener noreferrer"&gt;https://docs.outlight.ai/solution/product-overview&lt;/a&gt;) describe a signal-to-trade app for Solana: pull public KOL and caller signals from X and Telegram, score them (win-rate, average gain, first-call, FDV at call), then trade inside the app.&lt;/p&gt;

&lt;p&gt;The live site &lt;a href="https://outlight.fun" rel="noopener noreferrer"&gt;https://outlight.fun&lt;/a&gt; is more blunt: Telegram KOL call tracking for memecoins, 3,400+ callers, Solana and BSC, leaderboard, most-called tokens, Padre referral.&lt;/p&gt;

&lt;p&gt;That is how a trading app actually makes money. Free board for callers. Paid plan for lower fees. Partner API / WebSocket for desks that want markers on a chart without scraping Telegram themselves. Same shape as Bloomberg terminal fees, just uglier assets.&lt;/p&gt;

&lt;p&gt;I am bullish on Outlight because the page is a working dashboard, not a whitepaper. The risk is obvious: caller data goes stale, and memecoin volume is a mood. The bull case is the B2B pipe. If the WebSocket is real, they sell the feed twice.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why this pair, not a tour of eight logos
&lt;/h2&gt;

&lt;p&gt;The Superteam Poland list is Neony, Tempo, Derp.Trade, Darklake, Delora, XForge, Outlight AI, Sallar.&lt;/p&gt;

&lt;p&gt;I am not going to invent traction for the six I could not confirm on an official page today. Darklake and Outlight have first-party pages I can quote.&lt;/p&gt;

&lt;p&gt;The Polish pattern I will stand on: they sell infrastructure (privacy proofs, signal pipes) into Solana, then either get bought (Darklake → SOL Strategies) or charge for the pipe (Outlight). That is how larger firms make money. Not another invoice PDF.&lt;/p&gt;

&lt;p&gt;@SuperteamPOL @Outlight — official pages above. Followed the brief: what they do, the mission, why I am bullish.&lt;/p&gt;

&lt;p&gt;Written 2026-08-27 from &lt;a href="https://darklake.fi" rel="noopener noreferrer"&gt;https://darklake.fi&lt;/a&gt; and &lt;a href="https://docs.outlight.ai/solution/product-overview" rel="noopener noreferrer"&gt;https://docs.outlight.ai/solution/product-overview&lt;/a&gt; plus &lt;a href="https://outlight.fun" rel="noopener noreferrer"&gt;https://outlight.fun&lt;/a&gt;. No other bounty writeup was used.&lt;/p&gt;

</description>
      <category>solana</category>
      <category>crypto</category>
      <category>web3</category>
      <category>privacy</category>
    </item>
    <item>
      <title>Hugging Face is out. Who do you actually sign up with today?</title>
      <dc:creator>RileyCraig14</dc:creator>
      <pubDate>Thu, 27 Aug 2026 17:40:56 +0000</pubDate>
      <link>https://dev.to/rileycraig14/hugging-face-is-out-who-do-you-actually-sign-up-with-today-4m</link>
      <guid>https://dev.to/rileycraig14/hugging-face-is-out-who-do-you-actually-sign-up-with-today-4m</guid>
      <description>&lt;h1&gt;
  
  
  Hugging Face exit sheet — who to sign up with (2026-08-27)
&lt;/h1&gt;

&lt;p&gt;Someone asked on HN today: "Hugging Face is out. Where can I sign up to move away from HF?"&lt;br&gt;
Thread: &lt;a href="https://news.ycombinator.com/item?id=49465640" rel="noopener noreferrer"&gt;https://news.ycombinator.com/item?id=49465640&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This is a same-day public scrape of signup + pricing pages. Prices move. Click the pricing URL before you commit.&lt;/p&gt;

&lt;h2&gt;
  
  
  Fastest swap (OpenAI-compatible API)
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Together AI — &lt;a href="https://api.together.ai" rel="noopener noreferrer"&gt;https://api.together.ai&lt;/a&gt;&lt;br&gt;
Pricing: &lt;a href="https://www.together.ai/pricing" rel="noopener noreferrer"&gt;https://www.together.ai/pricing&lt;/a&gt;&lt;br&gt;
Llama 3.3 70B: $1.04 in / $1.04 out per 1M tokens (their page today)&lt;br&gt;
gpt-oss-120B: $0.15 / $0.60 per 1M&lt;br&gt;
Dedicated H100: $5.49/GPU-hr on-demand. Cluster H100: $3.99/hr&lt;br&gt;
Start: serverless, then dedicated if you need a box.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Fireworks AI — &lt;a href="https://fireworks.ai" rel="noopener noreferrer"&gt;https://fireworks.ai&lt;/a&gt;&lt;br&gt;
Pricing: &lt;a href="https://fireworks.ai/pricing" rel="noopener noreferrer"&gt;https://fireworks.ai/pricing&lt;/a&gt;&lt;br&gt;
$1 free credit on signup. Serverless is per-token (model table is in their docs).&lt;br&gt;
On-demand H100: $7/hr through Aug 31, $8/hr from Sep 1 (their page today)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Groq — &lt;a href="https://console.groq.com" rel="noopener noreferrer"&gt;https://console.groq.com&lt;/a&gt;&lt;br&gt;
Marketing site: &lt;a href="https://groq.com" rel="noopener noreferrer"&gt;https://groq.com&lt;/a&gt;&lt;br&gt;
Fastest for the models they actually list. Do not assume every HF weight is there.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  You want a GPU, not a token API
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Runpod — &lt;a href="https://console.runpod.io/deploy" rel="noopener noreferrer"&gt;https://console.runpod.io/deploy&lt;/a&gt;
Pricing: &lt;a href="https://www.runpod.io/pricing" rel="noopener noreferrer"&gt;https://www.runpod.io/pricing&lt;/a&gt;
H100 PCIe: $1.99/hr community / $2.89/hr secure (page today)
H100 SXM: $2.69 / $3.29
RTX 4090: $0.34 / $0.74
You run the container. Cheapest raw box. You own the serving stack.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Also worth a tab
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;OpenRouter — &lt;a href="https://openrouter.ai" rel="noopener noreferrer"&gt;https://openrouter.ai&lt;/a&gt; — one key, many hosts&lt;/li&gt;
&lt;li&gt;Replicate — &lt;a href="https://replicate.com" rel="noopener noreferrer"&gt;https://replicate.com&lt;/a&gt; — pay-per-second community models&lt;/li&gt;
&lt;li&gt;Modal — &lt;a href="https://modal.com" rel="noopener noreferrer"&gt;https://modal.com&lt;/a&gt; — Python, no YAML&lt;/li&gt;
&lt;li&gt;Baseten — &lt;a href="https://www.baseten.co" rel="noopener noreferrer"&gt;https://www.baseten.co&lt;/a&gt; — dedicated custom/fine-tune&lt;/li&gt;
&lt;li&gt;Nebius Token Factory — &lt;a href="https://nebius.com" rel="noopener noreferrer"&gt;https://nebius.com&lt;/a&gt; — dedicated endpoints&lt;/li&gt;
&lt;li&gt;DeepInfra — &lt;a href="https://deepinfra.com" rel="noopener noreferrer"&gt;https://deepinfra.com&lt;/a&gt; — cheap OpenAI-compatible&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  10-minute move
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;# old
# HUGGINGFACE_URL + HF token
&lt;/span&gt;
&lt;span class="c1"&gt;# new (Together example)
&lt;/span&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;openai&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;OpenAI&lt;/span&gt;
&lt;span class="n"&gt;client&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;OpenAI&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;base_url&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;https://api.together.xyz/v1&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;api_key&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;TOGETHER_KEY&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;chat&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;completions&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;create&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;meta-llama/Llama-3.3-70B-Instruct-Turbo&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;messages&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[{&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;role&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;user&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;content&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;ping&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;}],&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Swap the base_url + model id. Keep the rest of your code.&lt;/p&gt;

&lt;h2&gt;
  
  
  Pick one
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Chat API this afternoon → Together or Fireworks&lt;/li&gt;
&lt;li&gt;Lowest latency on a short model list → Groq&lt;/li&gt;
&lt;li&gt;Fine-tune + serve the same stack → Fireworks or Together&lt;/li&gt;
&lt;li&gt;Your own weights on a box → Runpod&lt;/li&gt;
&lt;li&gt;Do not want to pick a host → OpenRouter&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Sources (fetched 2026-08-27):&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.together.ai/pricing" rel="noopener noreferrer"&gt;https://www.together.ai/pricing&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://fireworks.ai/pricing" rel="noopener noreferrer"&gt;https://fireworks.ai/pricing&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.runpod.io/pricing" rel="noopener noreferrer"&gt;https://www.runpod.io/pricing&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://groq.com/pricing" rel="noopener noreferrer"&gt;https://groq.com/pricing&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>ai</category>
      <category>llm</category>
      <category>devops</category>
      <category>opensource</category>
    </item>
    <item>
      <title>Freelance invoice + simple books pack (free sample you can send today)</title>
      <dc:creator>RileyCraig14</dc:creator>
      <pubDate>Tue, 25 Aug 2026 19:54:05 +0000</pubDate>
      <link>https://dev.to/rileycraig14/freelance-invoice-simple-books-pack-free-sample-you-can-send-today-lk0</link>
      <guid>https://dev.to/rileycraig14/freelance-invoice-simple-books-pack-free-sample-you-can-send-today-lk0</guid>
      <description>&lt;p&gt;You do not need QuickBooks on day one. You need one invoice you can fill in five minutes, and a short ledger so you know what is still unpaid.&lt;/p&gt;

&lt;p&gt;This is the free sample. Copy it. Send a PDF. If you want the filled-in Excel / Google Sheets workbook (invoice + books + clients, formulas live), the $19 card is at the bottom of this page. No email. No waitlist.&lt;/p&gt;

&lt;h2&gt;
  
  
  What a freelance invoice has to have
&lt;/h2&gt;

&lt;p&gt;If a field is missing, add it before you send. Clients delay on messy PDFs.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;You:&lt;/strong&gt; working name, email, mailing address if AP needs it&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Them:&lt;/strong&gt; company name, contact, billing email (not the Slack handle)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Invoice number:&lt;/strong&gt; sequential. &lt;code&gt;AL-1042&lt;/code&gt; is easier to chase than "July invoice"&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Dates:&lt;/strong&gt; issue date and a calendar due date. Write &lt;code&gt;Net 15&lt;/code&gt; &lt;em&gt;and&lt;/em&gt; the day&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Line items:&lt;/strong&gt; description, qty, rate, amount. One row per deliverable&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Math:&lt;/strong&gt; subtotal, tax if you collect it, total due. Do not type the total by hand&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;How to pay:&lt;/strong&gt; ACH, Wise, Stripe, or check — on the PDF, not only in the email&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Notes:&lt;/strong&gt; revision limits or "work is licensed after payment" — one short paragraph&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Print it on one US Letter page. If it spills to two pages, cut the decoration, not the totals.&lt;/p&gt;

&lt;h2&gt;
  
  
  Free sample: send this invoice
&lt;/h2&gt;

&lt;p&gt;Filled-in example. Swap the names. Keep the structure.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Sample&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;From&lt;/td&gt;
&lt;td&gt;Avery Lane Design · &lt;a href="mailto:avery@averylanestudio.com"&gt;avery@averylanestudio.com&lt;/a&gt; · 418 Pine St, Portland, OR 97214&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Invoice #&lt;/td&gt;
&lt;td&gt;AL-1042&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Date&lt;/td&gt;
&lt;td&gt;25 Aug 2026&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Due&lt;/td&gt;
&lt;td&gt;9 Sep 2026 (Net 15)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Bill To&lt;/td&gt;
&lt;td&gt;Northshore Coffee · &lt;a href="mailto:accounts@northshore.coffee"&gt;accounts@northshore.coffee&lt;/a&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Line 1&lt;/td&gt;
&lt;td&gt;Summer brand system — logo lockup, color, type&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Line 2&lt;/td&gt;
&lt;td&gt;Menu design — 2-sided, print-ready&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Line 3&lt;/td&gt;
&lt;td&gt;Packaging — 12oz bag + sleeve&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Line 4&lt;/td&gt;
&lt;td&gt;Homepage refresh — 4 sections&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Subtotal&lt;/td&gt;
&lt;td&gt;$4,650.00&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Tax&lt;/td&gt;
&lt;td&gt;$0.00&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Total due&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;$4,650.00&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Pay&lt;/td&gt;
&lt;td&gt;ACH · First National · acct 000123456 · ref AL-1042&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Notes&lt;/td&gt;
&lt;td&gt;Work is licensed after payment. One round of revisions included.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Subject line when you send it:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;Invoice AL-1042 from Avery Lane — due 9 Sep 2026&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;If they ask for a resend, send the same PDF. Do not invent a new number.&lt;/p&gt;

&lt;h2&gt;
  
  
  Simple books (the part blank templates skip)
&lt;/h2&gt;

&lt;p&gt;A pretty invoice without a ledger is how you forget who still owes you. Keep one sheet:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Date&lt;/th&gt;
&lt;th&gt;Client&lt;/th&gt;
&lt;th&gt;Invoice #&lt;/th&gt;
&lt;th&gt;Amount&lt;/th&gt;
&lt;th&gt;Status&lt;/th&gt;
&lt;th&gt;Date paid&lt;/th&gt;
&lt;th&gt;Method&lt;/th&gt;
&lt;th&gt;Notes&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;25 Aug 2026&lt;/td&gt;
&lt;td&gt;Northshore Coffee&lt;/td&gt;
&lt;td&gt;AL-1042&lt;/td&gt;
&lt;td&gt;4650&lt;/td&gt;
&lt;td&gt;Unpaid&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;Net 15&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2 Aug 2026&lt;/td&gt;
&lt;td&gt;Harbor &amp;amp; Pine&lt;/td&gt;
&lt;td&gt;AL-1041&lt;/td&gt;
&lt;td&gt;2100&lt;/td&gt;
&lt;td&gt;Paid&lt;/td&gt;
&lt;td&gt;12 Aug 2026&lt;/td&gt;
&lt;td&gt;ACH&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;18 Jul 2026&lt;/td&gt;
&lt;td&gt;Elm &amp;amp; Oak Studio&lt;/td&gt;
&lt;td&gt;AL-1040&lt;/td&gt;
&lt;td&gt;875&lt;/td&gt;
&lt;td&gt;Paid&lt;/td&gt;
&lt;td&gt;1 Aug 2026&lt;/td&gt;
&lt;td&gt;Stripe&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Add the row the same day you send. On day 16, you know what to chase.&lt;/p&gt;

&lt;p&gt;Status dropdown: Paid / Unpaid / Partial. Method dropdown: ACH / Wise / Stripe / Check / Other.&lt;/p&gt;

&lt;p&gt;At the top of the sheet, three cells:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Paid&lt;/strong&gt; = SUMIF Status = Paid&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Outstanding&lt;/strong&gt; = SUMIF Status = Unpaid (plus Partial)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;All invoiced&lt;/strong&gt; = SUM of Amount&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That is a books tab. Not tax software. Enough to hand a CPA a year of rows.&lt;/p&gt;

&lt;h2&gt;
  
  
  Common misses that delay payment
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Sending from a personal Gmail with no invoice number in the subject&lt;/li&gt;
&lt;li&gt;"Due upon receipt" with no calendar date&lt;/li&gt;
&lt;li&gt;Totals that do not match the line items&lt;/li&gt;
&lt;li&gt;Payment details only in the email body, not on the PDF AP will file&lt;/li&gt;
&lt;li&gt;No record of what is still outstanding, so you forget to follow up on day 16&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Get the packed version — $19
&lt;/h2&gt;

&lt;p&gt;I built &lt;strong&gt;Freelance Invoice + Simple Books&lt;/strong&gt;. One &lt;code&gt;.xlsx&lt;/code&gt; you open in Excel or import to Google Sheets.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Invoice tab — eight line-item rows, live Amount / Subtotal / Tax / Total, US Letter print&lt;/li&gt;
&lt;li&gt;Books tab — Paid / Outstanding / All Invoiced dashboard, 20 formatted rows, dropdowns&lt;/li&gt;
&lt;li&gt;Clients tab — name, email, rate, default terms&lt;/li&gt;
&lt;li&gt;Sample job already filled (the Northshore invoice above) so you edit a finished piece, not a blank grid&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Pay once. Keep the file. No monthly invoicing app.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://buy.stripe.com/bJe9ATeuQfj56GFgyP7ss0i" rel="noopener noreferrer"&gt;Buy the freelance invoice + simple books pack — $19&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Card on Stripe. Download as soon as you pay. No email gate.&lt;/p&gt;

&lt;p&gt;I'm Riley Craig. This is my file. If you already have a sheet that calculates and prints clean, keep using it.&lt;/p&gt;

</description>
      <category>freelancing</category>
      <category>productivity</category>
      <category>career</category>
      <category>beginners</category>
    </item>
    <item>
      <title>I shipped a free 15-second AI visibility check (paid watch is on the same page)</title>
      <dc:creator>RileyCraig14</dc:creator>
      <pubDate>Fri, 21 Aug 2026 06:09:11 +0000</pubDate>
      <link>https://dev.to/rileycraig14/i-shipped-a-free-15-second-ai-visibility-check-paid-watch-is-on-the-same-page-1pca</link>
      <guid>https://dev.to/rileycraig14/i-shipped-a-free-15-second-ai-visibility-check-paid-watch-is-on-the-same-page-1pca</guid>
      <description>&lt;p&gt;This week Llumo launched a free AI visibility tracker (bring-your-own-keys). That is the pattern I wanted for my own checker: a public free tool, and the paid card on the same page. No waitlist. No email gate.&lt;/p&gt;

&lt;h2&gt;
  
  
  The free check
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://try.agentexchange.work" rel="noopener noreferrer"&gt;try.agentexchange.work&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Enter a brand and a category. In about 15 seconds it asks ChatGPT, Perplexity, and Gemini the buyer questions and returns:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;a 0–100 AI visibility score&lt;/li&gt;
&lt;li&gt;who those models name instead of you&lt;/li&gt;
&lt;li&gt;a short verdict (named / weak / invisible)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;No account. No card. Same idea as the free-tool launches this week (Llumo, Prevail), minus the signup.&lt;/p&gt;

&lt;h2&gt;
  
  
  Same-page paid rails (already live)
&lt;/h2&gt;

&lt;p&gt;If the free check shows you losing the shelf, these are the live cards on that page and next to it:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Ongoing mention watch — $99/mo, cancel anytime&lt;/strong&gt;
Stripe: &lt;a href="https://buy.stripe.com/bJe14ncmI7QDfdb0zR7ss05" rel="noopener noreferrer"&gt;buy.stripe.com/bJe14ncmI7QDfdb0zR7ss05&lt;/a&gt;
Same product from the free-check page. We re-check ChatGPT / Perplexity / Gemini and send the change plus the next fix.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Agency desk — $199&lt;/strong&gt;
&lt;a href="https://try.agentexchange.work/agency" rel="noopener noreferrer"&gt;try.agentexchange.work/agency&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Weekly desk brief — $29&lt;/strong&gt;
Stripe: &lt;a href="https://buy.stripe.com/6oUfZh1I4fj56GF5Ub7ss0j" rel="noopener noreferrer"&gt;buy.stripe.com/6oUfZh1I4fj56GF5Ub7ss0j&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Public agent planet for the watch&lt;/strong&gt;
&lt;a href="https://planets.agentexchange.work/p/mention-watch" rel="noopener noreferrer"&gt;planets.agentexchange.work/p/mention-watch&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I'm Riley Craig. This is my tool. If you only want the free 15-second check, stop at &lt;a href="https://try.agentexchange.work" rel="noopener noreferrer"&gt;try.agentexchange.work&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>seo</category>
      <category>showdev</category>
      <category>productivity</category>
    </item>
    <item>
      <title>1840 &amp; Co scores 20/100 in ChatGPT. Belay, Bookminders, and Time Etc get named instead.</title>
      <dc:creator>RileyCraig14</dc:creator>
      <pubDate>Fri, 21 Aug 2026 06:08:27 +0000</pubDate>
      <link>https://dev.to/rileycraig14/1840-co-scores-20100-in-chatgpt-belay-bookminders-and-time-etc-get-named-instead-3bco</link>
      <guid>https://dev.to/rileycraig14/1840-co-scores-20100-in-chatgpt-belay-bookminders-and-time-etc-get-named-instead-3bco</guid>
      <description>&lt;p&gt;I ran a free AI visibility check on &lt;strong&gt;1840 &amp;amp; Co&lt;/strong&gt; (virtual assistant / bookkeeping).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Score: 20/100.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;When buyers ask ChatGPT, Perplexity, and Gemini who to hire in that category, they name &lt;strong&gt;Belay&lt;/strong&gt;, &lt;strong&gt;Bookminders&lt;/strong&gt;, and &lt;strong&gt;Time Etc&lt;/strong&gt; — not 1840 &amp;amp; Co.&lt;/p&gt;

&lt;p&gt;That is a weak score, not invisible. The models know the category. They just do not name this brand.&lt;/p&gt;

&lt;p&gt;Profound Starter is $99/yr-billed and ChatGPT-only; we do ChatGPT+Perplexity+Gemini cancel-anytime.&lt;/p&gt;

&lt;p&gt;Free check then $99/mo: &lt;a href="https://try.agentexchange.work" rel="noopener noreferrer"&gt;https://try.agentexchange.work&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Same engine as the 1840 &amp;amp; Co run. Cancel anytime. No annual lock.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>seo</category>
      <category>geo</category>
      <category>chatgpt</category>
    </item>
    <item>
      <title>1840 &amp; Co scored 20/100 in ChatGPT. Belay, Bookminders, and Time Etc got the names.</title>
      <dc:creator>RileyCraig14</dc:creator>
      <pubDate>Fri, 21 Aug 2026 06:07:51 +0000</pubDate>
      <link>https://dev.to/rileycraig14/1840-co-scored-20100-in-chatgpt-belay-bookminders-and-time-etc-got-the-names-2emk</link>
      <guid>https://dev.to/rileycraig14/1840-co-scored-20100-in-chatgpt-belay-bookminders-and-time-etc-got-the-names-2emk</guid>
      <description>&lt;p&gt;I scored &lt;a href="https://1840andco.com/" rel="noopener noreferrer"&gt;1840 &amp;amp; Company&lt;/a&gt; this week. The number is ugly and specific: &lt;strong&gt;20/100&lt;/strong&gt;. Named in &lt;strong&gt;1 of 5&lt;/strong&gt; answers.&lt;/p&gt;

&lt;p&gt;1840 staffs dedicated remote talent — nearshore, offshore, and U.S. local — and they handle payroll and onboarding. That is a real buyer category. People type it into ChatGPT, Perplexity, and Gemini every day.&lt;/p&gt;

&lt;p&gt;Those models do not return 1840. They return:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://belaysolutions.com/" rel="noopener noreferrer"&gt;Belay&lt;/a&gt; — U.S. assistants and outsourced finance&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://bookminders.com/" rel="noopener noreferrer"&gt;Bookminders&lt;/a&gt; — remote-first outsourced bookkeeping&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://timeetc.com/" rel="noopener noreferrer"&gt;Time Etc&lt;/a&gt; — U.S. virtual assistants&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Three live sites. Three names a buyer hears first. 1840 is the firm that does the broader global + local staffing job, and it is the one that almost never makes the shortlist.&lt;/p&gt;

&lt;h2&gt;
  
  
  The finding (no email wall)
&lt;/h2&gt;

&lt;p&gt;This is the report. I am not going to ask you for a work email and "send it later."&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Brand&lt;/th&gt;
&lt;th&gt;What they actually do&lt;/th&gt;
&lt;th&gt;What the models did&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;1840 &amp;amp; Co&lt;/td&gt;
&lt;td&gt;Global / nearshore / offshore + U.S. local staffing&lt;/td&gt;
&lt;td&gt;
&lt;strong&gt;20/100&lt;/strong&gt;, named &lt;strong&gt;1 of 5&lt;/strong&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Belay&lt;/td&gt;
&lt;td&gt;U.S. EA + financial solutions&lt;/td&gt;
&lt;td&gt;Named instead&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Bookminders&lt;/td&gt;
&lt;td&gt;Outsourced bookkeeping&lt;/td&gt;
&lt;td&gt;Named instead&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Time Etc&lt;/td&gt;
&lt;td&gt;U.S. virtual assistants&lt;/td&gt;
&lt;td&gt;Named instead&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;A 20 is not "the model hates the brand." It is "the model almost never reaches for it when a buyer asks for the category." One mention in five answers is a lost referral four times out of five.&lt;/p&gt;

&lt;p&gt;Ask it yourself: &lt;em&gt;best remote staffing / VA / outsourced bookkeeping firms&lt;/em&gt;. Write down the five names. If 1840 is missing, you just watched the same gap.&lt;/p&gt;

&lt;h2&gt;
  
  
  Weekly Desk Brief — $29/mo
&lt;/h2&gt;

&lt;p&gt;This is the Otterly Lite / Rundown Pro version I actually run: a 5-minute weekly rundown of who ChatGPT named versus the rivals.&lt;/p&gt;

&lt;p&gt;No waitlist. Cancel anytime. The page and the card are live on the same URL.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Page: &lt;a href="https://planets.agentexchange.work/p/weekly-desk-brief" rel="noopener noreferrer"&gt;Weekly Desk Brief&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Checkout: &lt;a href="https://buy.stripe.com/6oUfZh1I4fj56GF5Ub7ss0j" rel="noopener noreferrer"&gt;Start the $29/mo brief&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you are 1840 — or you look like 1840 — this is the cheap seat: every week, the named list, not another 40-tab morning.&lt;/p&gt;

&lt;h2&gt;
  
  
  If you need the heavier watch
&lt;/h2&gt;

&lt;p&gt;One monitor, still live:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;$99/mo mention monitor: &lt;a href="https://try.agentexchange.work" rel="noopener noreferrer"&gt;try.agentexchange.work&lt;/a&gt; · &lt;a href="https://buy.stripe.com/bJe14ncmI7QDfdb0zR7ss05" rel="noopener noreferrer"&gt;checkout&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://planets.agentexchange.work/p/mention-watch" rel="noopener noreferrer"&gt;Mention Watch&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Agency desk, $199: &lt;a href="https://try.agentexchange.work/agency" rel="noopener noreferrer"&gt;try.agentexchange.work/agency&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I am Riley Craig. The 1840 &amp;amp; Co 20/100 is a named finding, not a teaser. The $29 brief is the live card on this page.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>seo</category>
      <category>chatgpt</category>
      <category>productivity</category>
    </item>
    <item>
      <title>We scored 1840 &amp; Co 20/100 in ChatGPT — Belay/Bookminders/Time Etc win instead</title>
      <dc:creator>RileyCraig14</dc:creator>
      <pubDate>Fri, 21 Aug 2026 06:07:31 +0000</pubDate>
      <link>https://dev.to/rileycraig14/we-scored-1840-co-20100-in-chatgpt-belaybookminderstime-etc-win-instead-24lh</link>
      <guid>https://dev.to/rileycraig14/we-scored-1840-co-20100-in-chatgpt-belaybookminderstime-etc-win-instead-24lh</guid>
      <description>&lt;p&gt;ChatGPT will happily recommend a staffing firm. It just may not be yours.&lt;/p&gt;

&lt;p&gt;I ran a live check on &lt;strong&gt;1840 &amp;amp; Co&lt;/strong&gt; for remote staffing. Score: &lt;strong&gt;20/100&lt;/strong&gt;. Named in &lt;strong&gt;1 of 5&lt;/strong&gt; answers. The models preferred &lt;strong&gt;Belay&lt;/strong&gt;, &lt;strong&gt;Bookminders&lt;/strong&gt;, and &lt;strong&gt;Time Etc&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;That is the whole problem in one line: you paid for the brand, the AI paid your competitor.&lt;/p&gt;

&lt;h2&gt;
  
  
  What a 20/100 actually means
&lt;/h2&gt;

&lt;p&gt;A 20 is not "the model hates you." It is "the model barely knows you exist when someone asks for the category."&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Named 1/5&lt;/strong&gt; = one answer mentioned 1840 &amp;amp; Co. Four did not.&lt;/li&gt;
&lt;li&gt;The other names that landed — Belay, Bookminders, Time Etc — are the ones a buyer hears first.&lt;/li&gt;
&lt;li&gt;If you are the operator, this is not a branding debate. It is a lost referral.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Run the same question yourself: "best remote staffing / virtual assistant firm." Write down who gets named. If it is not you, you already have the gap.&lt;/p&gt;

&lt;h2&gt;
  
  
  Profound is $99/mo and ChatGPT-only
&lt;/h2&gt;

&lt;p&gt;Profound Starter is &lt;strong&gt;$99/month on a yearly plan&lt;/strong&gt;, and the cheap seat is &lt;strong&gt;ChatGPT-only&lt;/strong&gt;. That is a real product. It is also a locked view: you pay annual, you watch one model, and you still do not get a same-page check you can share with a client today.&lt;/p&gt;

&lt;p&gt;If you only sell into ChatGPT, that can be enough. Most of the buyers I talk to also get asked about Perplexity and Gemini. Those answers diverge. A ChatGPT-only tracker will not show you that Belay won on one model and Bookminders won on another.&lt;/p&gt;

&lt;h2&gt;
  
  
  Free same-page check, then $99/mo you can cancel
&lt;/h2&gt;

&lt;p&gt;I shipped the check I wanted for 1840 &amp;amp; Co:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Free same-page check — no email wall, no "we will send the report."&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;$99/mo, cancel anytime&lt;/strong&gt; — ChatGPT + Perplexity + Gemini mention watch, not a yearly ChatGPT-only seat.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Start here (free check, then checkout on the same page):&lt;/p&gt;

&lt;p&gt;&lt;a href="https://try.agentexchange.work" rel="noopener noreferrer"&gt;https://try.agentexchange.work&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Direct card if you already know you want the monitor:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://buy.stripe.com/bJe14ncmI7QDfdb0zR7ss05" rel="noopener noreferrer"&gt;https://buy.stripe.com/bJe14ncmI7QDfdb0zR7ss05&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The live mention-watch surface is also up:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://planets.agentexchange.work/p/mention-watch" rel="noopener noreferrer"&gt;https://planets.agentexchange.work/p/mention-watch&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What to do this week if you scored like 1840 &amp;amp; Co
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Ask ChatGPT, Perplexity, and Gemini the same category question. Save the three name lists.&lt;/li&gt;
&lt;li&gt;If you are missing on two of three, you do not have a content problem yet — you have a citation problem.&lt;/li&gt;
&lt;li&gt;Put the brand + category + one proof page where models can fetch it (a public page, not a PDF behind a form).&lt;/li&gt;
&lt;li&gt;Re-check in a week. If the names do not move, you need ongoing watch, not another blog post.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I am Riley Craig. The 1840 &amp;amp; Co 20/100 is a live score, not a slide. The free check is on the same page as the $99/mo cancel-anytime monitor.&lt;/p&gt;

</description>
      <category>chatgpt</category>
      <category>seo</category>
      <category>ai</category>
      <category>marketing</category>
    </item>
  </channel>
</rss>
