b5d12d0e-2fe3-465b-9dff-42309c2fff4a
[]
[
{
"author": "earthboundkid",
"description": "\n\u003cp\u003eArticle URL: \u003ca href=\"https://health.aws.amazon.com/health/status\"\u003ehttps://health.aws.amazon.com/health/status\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eComments URL: \u003ca href=\"https://news.ycombinator.com/item?id=47209781\"\u003ehttps://news.ycombinator.com/item?id=47209781\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003ePoints: 19\u003c/p\u003e\n\u003cp\u003e# Comments: 4\u003c/p\u003e\n",
"link": "https://health.aws.amazon.com/health/status",
"published": "2026-03-01T19:24:30Z",
"title": "AWS Middle East Central Down, apparently struck in war"
},
{
"author": "doener",
"description": "\n\u003cp\u003eArticle URL: \u003ca href=\"https://xcancel.com/cabsav456/status/2027937130995921119\"\u003ehttps://xcancel.com/cabsav456/status/2027937130995921119\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eComments URL: \u003ca href=\"https://news.ycombinator.com/item?id=47209773\"\u003ehttps://news.ycombinator.com/item?id=47209773\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003ePoints: 41\u003c/p\u003e\n\u003cp\u003e# Comments: 20\u003c/p\u003e\n",
"link": "https://xcancel.com/cabsav456/status/2027937130995921119",
"published": "2026-03-01T19:22:47Z",
"title": "A new account made over $515,000 betting on the U.S. strike against Iran"
},
{
"author": "birdculture",
"description": "\n\u003cp\u003eArticle URL: \u003ca href=\"https://servo.org/blog/2026/02/28/january-in-servo/\"\u003ehttps://servo.org/blog/2026/02/28/january-in-servo/\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eComments URL: \u003ca href=\"https://news.ycombinator.com/item?id=47208744\"\u003ehttps://news.ycombinator.com/item?id=47208744\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003ePoints: 23\u003c/p\u003e\n\u003cp\u003e# Comments: 2\u003c/p\u003e\n",
"link": "https://servo.org/blog/2026/02/28/january-in-servo/",
"published": "2026-03-01T17:31:29Z",
"title": "January in Servo: preloads, better forms, details styling, and more"
},
{
"author": "ejholmes",
"description": "\n\u003cp\u003eArticle URL: \u003ca href=\"https://ejholmes.github.io/2026/02/28/mcp-is-dead-long-live-the-cli.html\"\u003ehttps://ejholmes.github.io/2026/02/28/mcp-is-dead-long-live-the-cli.html\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eComments URL: \u003ca href=\"https://news.ycombinator.com/item?id=47208398\"\u003ehttps://news.ycombinator.com/item?id=47208398\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003ePoints: 95\u003c/p\u003e\n\u003cp\u003e# Comments: 68\u003c/p\u003e\n",
"link": "https://ejholmes.github.io/2026/02/28/mcp-is-dead-long-live-the-cli.html",
"published": "2026-03-01T16:54:49Z",
"title": "When does MCP make sense vs CLI?"
},
{
"author": "stevehiehn",
"description": "\n\u003cp\u003eArticle URL: \u003ca href=\"https://github.com/shiehn/sas-audio-processor\"\u003ehttps://github.com/shiehn/sas-audio-processor\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eComments URL: \u003ca href=\"https://news.ycombinator.com/item?id=47207806\"\u003ehttps://news.ycombinator.com/item?id=47207806\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003ePoints: 19\u003c/p\u003e\n\u003cp\u003e# Comments: 1\u003c/p\u003e\n",
"link": "https://github.com/shiehn/sas-audio-processor",
"published": "2026-03-01T15:52:02Z",
"title": "Show HN: Audio Toolkit for Agents"
},
{
"author": "surprisetalk",
"description": "\n\u003cp\u003eArticle URL: \u003ca href=\"https://taylor.town/scrapscript-001\"\u003ehttps://taylor.town/scrapscript-001\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eComments URL: \u003ca href=\"https://news.ycombinator.com/item?id=47207531\"\u003ehttps://news.ycombinator.com/item?id=47207531\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003ePoints: 22\u003c/p\u003e\n\u003cp\u003e# Comments: 2\u003c/p\u003e\n",
"link": "https://taylor.town/scrapscript-001",
"published": "2026-03-01T15:23:42Z",
"title": "Lil' Fun Langs' Guts"
},
{
"author": "gradus_ad",
"description": "\n\u003cp\u003eArticle URL: \u003ca href=\"https://www.sciencedaily.com/releases/2026/02/260228093456.htm\"\u003ehttps://www.sciencedaily.com/releases/2026/02/260228093456.htm\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eComments URL: \u003ca href=\"https://news.ycombinator.com/item?id=47207404\"\u003ehttps://news.ycombinator.com/item?id=47207404\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003ePoints: 129\u003c/p\u003e\n\u003cp\u003e# Comments: 42\u003c/p\u003e\n",
"link": "https://www.sciencedaily.com/releases/2026/02/260228093456.htm",
"published": "2026-03-01T15:09:55Z",
"title": "New iron nanomaterial wipes out cancer cells without harming healthy tissue"
},
{
"author": "glth",
"description": "\n\u003cp\u003eArticle URL: \u003ca href=\"https://glthr.com/XML-fundamental-to-Claude\"\u003ehttps://glthr.com/XML-fundamental-to-Claude\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eComments URL: \u003ca href=\"https://news.ycombinator.com/item?id=47207236\"\u003ehttps://news.ycombinator.com/item?id=47207236\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003ePoints: 87\u003c/p\u003e\n\u003cp\u003e# Comments: 40\u003c/p\u003e\n",
"link": "https://glthr.com/XML-fundamental-to-Claude",
"published": "2026-03-01T14:52:22Z",
"title": "Why XML Tags Are So Fundamental to Claude"
},
{
"author": "oli5679",
"description": "\n\u003cp\u003eArticle URL: \u003ca href=\"https://ghostty.org/docs\"\u003ehttps://ghostty.org/docs\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eComments URL: \u003ca href=\"https://news.ycombinator.com/item?id=47206009\"\u003ehttps://news.ycombinator.com/item?id=47206009\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003ePoints: 411\u003c/p\u003e\n\u003cp\u003e# Comments: 184\u003c/p\u003e\n",
"link": "https://ghostty.org/docs",
"published": "2026-03-01T12:13:03Z",
"title": "Ghostty – Terminal Emulator"
},
{
"author": "nickk81",
"description": "\n\u003cp\u003eArticle URL: \u003ca href=\"https://99helpers.com/tools/ad-supported-chat\"\u003ehttps://99helpers.com/tools/ad-supported-chat\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eComments URL: \u003ca href=\"https://news.ycombinator.com/item?id=47205890\"\u003ehttps://news.ycombinator.com/item?id=47205890\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003ePoints: 356\u003c/p\u003e\n\u003cp\u003e# Comments: 219\u003c/p\u003e\n",
"link": "https://99helpers.com/tools/ad-supported-chat",
"published": "2026-03-01T11:49:01Z",
"title": "I built a demo of what AI chat will look like when it's \"free\" and ad-supported"
},
{
"author": "LukeB42",
"description": "\n\u003cp\u003eVertex is a 1kloc SPA framework containing everything you need from React, Ractive-Load and jQuery while still being jQuery-compatible.\u003cp\u003evertex.js is a single, self-contained file with no build step and no dependencies.\u003cp\u003eAlso exhibits the curious quality of being faster than over a decade of engineering at Facebook in some cases: \u003ca href=\"https://files.catbox.moe/sqei0d.png\" rel=\"nofollow\"\u003ehttps://files.catbox.moe/sqei0d.png\u003c/a\u003e\u003c/p\u003e\n\u003chr\u003e\n\u003cp\u003eComments URL: \u003ca href=\"https://news.ycombinator.com/item?id=47205659\"\u003ehttps://news.ycombinator.com/item?id=47205659\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003ePoints: 23\u003c/p\u003e\n\u003cp\u003e# Comments: 15\u003c/p\u003e\n",
"link": "https://lukeb42.github.io/vertex-manual.html",
"published": "2026-03-01T11:05:28Z",
"title": "Show HN: Vertex.js – A 1kloc SPA Framework"
},
{
"author": "chromy",
"description": "\n\u003cp\u003eArticle URL: \u003ca href=\"https://atlas.flexport.com/\"\u003ehttps://atlas.flexport.com/\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eComments URL: \u003ca href=\"https://news.ycombinator.com/item?id=47205637\"\u003ehttps://news.ycombinator.com/item?id=47205637\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003ePoints: 120\u003c/p\u003e\n\u003cp\u003e# Comments: 29\u003c/p\u003e\n",
"link": "https://atlas.flexport.com/",
"published": "2026-03-01T11:01:17Z",
"title": "Flightradar24 for Ships"
},
{
"author": "joelsiks",
"description": "\n\u003cp\u003eArticle URL: \u003ca href=\"https://joelsiks.com/posts/cpp-emergency-pool-72kb-allocation/\"\u003ehttps://joelsiks.com/posts/cpp-emergency-pool-72kb-allocation/\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eComments URL: \u003ca href=\"https://news.ycombinator.com/item?id=47205129\"\u003ehttps://news.ycombinator.com/item?id=47205129\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003ePoints: 102\u003c/p\u003e\n\u003cp\u003e# Comments: 19\u003c/p\u003e\n",
"link": "https://joelsiks.com/posts/cpp-emergency-pool-72kb-allocation/",
"published": "2026-03-01T09:27:34Z",
"title": "Why is the first C++ (m)allocation always 72 KB?"
},
{
"author": "mschnell",
"description": "\n\u003cp\u003eArticle URL: \u003ca href=\"https://mlu-explain.github.io/decision-tree/\"\u003ehttps://mlu-explain.github.io/decision-tree/\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eComments URL: \u003ca href=\"https://news.ycombinator.com/item?id=47204964\"\u003ehttps://news.ycombinator.com/item?id=47204964\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003ePoints: 311\u003c/p\u003e\n\u003cp\u003e# Comments: 56\u003c/p\u003e\n",
"link": "https://mlu-explain.github.io/decision-tree/",
"published": "2026-03-01T08:55:52Z",
"title": "Decision trees – the unreasonable power of nested decision rules"
},
{
"author": "doener",
"description": "\n\u003cp\u003eArticle URL: \u003ca href=\"https://claude.com/import-memory\"\u003ehttps://claude.com/import-memory\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eComments URL: \u003ca href=\"https://news.ycombinator.com/item?id=47204571\"\u003ehttps://news.ycombinator.com/item?id=47204571\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003ePoints: 480\u003c/p\u003e\n\u003cp\u003e# Comments: 223\u003c/p\u003e\n",
"link": "https://claude.com/import-memory",
"published": "2026-03-01T07:36:52Z",
"title": "Switch to Claude without starting over"
},
{
"author": "vismit2000",
"description": "\n\u003cp\u003eArticle URL: \u003ca href=\"https://modernaicourse.org\"\u003ehttps://modernaicourse.org\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eComments URL: \u003ca href=\"https://news.ycombinator.com/item?id=47204559\"\u003ehttps://news.ycombinator.com/item?id=47204559\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003ePoints: 178\u003c/p\u003e\n\u003cp\u003e# Comments: 43\u003c/p\u003e\n",
"link": "https://modernaicourse.org",
"published": "2026-03-01T07:35:03Z",
"title": "10-202: Introduction to Modern AI (CMU)"
},
{
"author": "tambourine_man",
"description": "\n\u003cp\u003eArticle URL: \u003ca href=\"http://karpathy.github.io/2026/02/12/microgpt/\"\u003ehttp://karpathy.github.io/2026/02/12/microgpt/\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eComments URL: \u003ca href=\"https://news.ycombinator.com/item?id=47202708\"\u003ehttps://news.ycombinator.com/item?id=47202708\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003ePoints: 1485\u003c/p\u003e\n\u003cp\u003e# Comments: 261\u003c/p\u003e\n",
"link": "http://karpathy.github.io/2026/02/12/microgpt/",
"published": "2026-03-01T01:39:26Z",
"title": "Microgpt"
},
{
"author": "golfer",
"description": "\n\u003cp\u003eArticle URL: \u003ca href=\"https://twitter.com/OpenAI/status/2027846016423321831\"\u003ehttps://twitter.com/OpenAI/status/2027846016423321831\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eComments URL: \u003ca href=\"https://news.ycombinator.com/item?id=47200420\"\u003ehttps://news.ycombinator.com/item?id=47200420\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003ePoints: 735\u003c/p\u003e\n\u003cp\u003e# Comments: 400\u003c/p\u003e\n",
"link": "https://twitter.com/OpenAI/status/2027846016423321831",
"published": "2026-02-28T21:24:16Z",
"title": "We do not think Anthropic should be designated as a supply chain risk"
},
{
"author": "adilmoujahid",
"description": "\n\u003cp\u003eArticle URL: \u003ca href=\"https://help.obsidian.md/sync/headless\"\u003ehttps://help.obsidian.md/sync/headless\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eComments URL: \u003ca href=\"https://news.ycombinator.com/item?id=47197267\"\u003ehttps://news.ycombinator.com/item?id=47197267\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003ePoints: 551\u003c/p\u003e\n\u003cp\u003e# Comments: 182\u003c/p\u003e\n",
"link": "https://help.obsidian.md/sync/headless",
"published": "2026-02-28T16:31:53Z",
"title": "Obsidian Sync now has a headless client"
},
{
"author": "asontha",
"description": "\n\u003cp\u003eArticle URL: \u003ca href=\"https://www.ycombinator.com/companies/kyber/jobs/59yPaCs-enterprise-account-executive-ae\"\u003ehttps://www.ycombinator.com/companies/kyber/jobs/59yPaCs-enterprise-account-executive-ae\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eComments URL: \u003ca href=\"https://news.ycombinator.com/item?id=47183907\"\u003ehttps://news.ycombinator.com/item?id=47183907\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003ePoints: 0\u003c/p\u003e\n\u003cp\u003e# Comments: 0\u003c/p\u003e\n",
"link": "https://www.ycombinator.com/companies/kyber/jobs/59yPaCs-enterprise-account-executive-ae",
"published": "2026-02-27T18:37:53Z",
"title": "Kyber (YC W23) Is Hiring an Enterprise Account Executive"
}
]
[
{
"author": "earthboundkid",
"description": "\n\u003cp\u003eArticle URL: \u003ca href=\"https://health.aws.amazon.com/health/status\"\u003ehttps://health.aws.amazon.com/health/status\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eComments URL: \u003ca href=\"https://news.ycombinator.com/item?id=47209781\"\u003ehttps://news.ycombinator.com/item?id=47209781\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003ePoints: 19\u003c/p\u003e\n\u003cp\u003e# Comments: 4\u003c/p\u003e\n",
"link": "https://health.aws.amazon.com/health/status",
"published": "2026-03-01T19:24:30Z",
"title": "AWS Middle East Central Down, apparently struck in war"
},
{
"author": "doener",
"description": "\n\u003cp\u003eArticle URL: \u003ca href=\"https://xcancel.com/cabsav456/status/2027937130995921119\"\u003ehttps://xcancel.com/cabsav456/status/2027937130995921119\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eComments URL: \u003ca href=\"https://news.ycombinator.com/item?id=47209773\"\u003ehttps://news.ycombinator.com/item?id=47209773\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003ePoints: 41\u003c/p\u003e\n\u003cp\u003e# Comments: 20\u003c/p\u003e\n",
"link": "https://xcancel.com/cabsav456/status/2027937130995921119",
"published": "2026-03-01T19:22:47Z",
"title": "A new account made over $515,000 betting on the U.S. strike against Iran"
},
{
"author": "birdculture",
"description": "\n\u003cp\u003eArticle URL: \u003ca href=\"https://servo.org/blog/2026/02/28/january-in-servo/\"\u003ehttps://servo.org/blog/2026/02/28/january-in-servo/\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eComments URL: \u003ca href=\"https://news.ycombinator.com/item?id=47208744\"\u003ehttps://news.ycombinator.com/item?id=47208744\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003ePoints: 23\u003c/p\u003e\n\u003cp\u003e# Comments: 2\u003c/p\u003e\n",
"link": "https://servo.org/blog/2026/02/28/january-in-servo/",
"published": "2026-03-01T17:31:29Z",
"title": "January in Servo: preloads, better forms, details styling, and more"
},
{
"author": "ejholmes",
"description": "\n\u003cp\u003eArticle URL: \u003ca href=\"https://ejholmes.github.io/2026/02/28/mcp-is-dead-long-live-the-cli.html\"\u003ehttps://ejholmes.github.io/2026/02/28/mcp-is-dead-long-live-the-cli.html\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eComments URL: \u003ca href=\"https://news.ycombinator.com/item?id=47208398\"\u003ehttps://news.ycombinator.com/item?id=47208398\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003ePoints: 95\u003c/p\u003e\n\u003cp\u003e# Comments: 68\u003c/p\u003e\n",
"link": "https://ejholmes.github.io/2026/02/28/mcp-is-dead-long-live-the-cli.html",
"published": "2026-03-01T16:54:49Z",
"title": "When does MCP make sense vs CLI?"
},
{
"author": "stevehiehn",
"description": "\n\u003cp\u003eArticle URL: \u003ca href=\"https://github.com/shiehn/sas-audio-processor\"\u003ehttps://github.com/shiehn/sas-audio-processor\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eComments URL: \u003ca href=\"https://news.ycombinator.com/item?id=47207806\"\u003ehttps://news.ycombinator.com/item?id=47207806\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003ePoints: 19\u003c/p\u003e\n\u003cp\u003e# Comments: 1\u003c/p\u003e\n",
"link": "https://github.com/shiehn/sas-audio-processor",
"published": "2026-03-01T15:52:02Z",
"title": "Show HN: Audio Toolkit for Agents"
},
{
"author": "surprisetalk",
"description": "\n\u003cp\u003eArticle URL: \u003ca href=\"https://taylor.town/scrapscript-001\"\u003ehttps://taylor.town/scrapscript-001\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eComments URL: \u003ca href=\"https://news.ycombinator.com/item?id=47207531\"\u003ehttps://news.ycombinator.com/item?id=47207531\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003ePoints: 22\u003c/p\u003e\n\u003cp\u003e# Comments: 2\u003c/p\u003e\n",
"link": "https://taylor.town/scrapscript-001",
"published": "2026-03-01T15:23:42Z",
"title": "Lil' Fun Langs' Guts"
},
{
"author": "gradus_ad",
"description": "\n\u003cp\u003eArticle URL: \u003ca href=\"https://www.sciencedaily.com/releases/2026/02/260228093456.htm\"\u003ehttps://www.sciencedaily.com/releases/2026/02/260228093456.htm\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eComments URL: \u003ca href=\"https://news.ycombinator.com/item?id=47207404\"\u003ehttps://news.ycombinator.com/item?id=47207404\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003ePoints: 129\u003c/p\u003e\n\u003cp\u003e# Comments: 42\u003c/p\u003e\n",
"link": "https://www.sciencedaily.com/releases/2026/02/260228093456.htm",
"published": "2026-03-01T15:09:55Z",
"title": "New iron nanomaterial wipes out cancer cells without harming healthy tissue"
},
{
"author": "glth",
"description": "\n\u003cp\u003eArticle URL: \u003ca href=\"https://glthr.com/XML-fundamental-to-Claude\"\u003ehttps://glthr.com/XML-fundamental-to-Claude\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eComments URL: \u003ca href=\"https://news.ycombinator.com/item?id=47207236\"\u003ehttps://news.ycombinator.com/item?id=47207236\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003ePoints: 87\u003c/p\u003e\n\u003cp\u003e# Comments: 40\u003c/p\u003e\n",
"link": "https://glthr.com/XML-fundamental-to-Claude",
"published": "2026-03-01T14:52:22Z",
"title": "Why XML Tags Are So Fundamental to Claude"
},
{
"author": "oli5679",
"description": "\n\u003cp\u003eArticle URL: \u003ca href=\"https://ghostty.org/docs\"\u003ehttps://ghostty.org/docs\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eComments URL: \u003ca href=\"https://news.ycombinator.com/item?id=47206009\"\u003ehttps://news.ycombinator.com/item?id=47206009\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003ePoints: 411\u003c/p\u003e\n\u003cp\u003e# Comments: 184\u003c/p\u003e\n",
"link": "https://ghostty.org/docs",
"published": "2026-03-01T12:13:03Z",
"title": "Ghostty – Terminal Emulator"
},
{
"author": "nickk81",
"description": "\n\u003cp\u003eArticle URL: \u003ca href=\"https://99helpers.com/tools/ad-supported-chat\"\u003ehttps://99helpers.com/tools/ad-supported-chat\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eComments URL: \u003ca href=\"https://news.ycombinator.com/item?id=47205890\"\u003ehttps://news.ycombinator.com/item?id=47205890\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003ePoints: 356\u003c/p\u003e\n\u003cp\u003e# Comments: 219\u003c/p\u003e\n",
"link": "https://99helpers.com/tools/ad-supported-chat",
"published": "2026-03-01T11:49:01Z",
"title": "I built a demo of what AI chat will look like when it's \"free\" and ad-supported"
},
{
"author": "LukeB42",
"description": "\n\u003cp\u003eVertex is a 1kloc SPA framework containing everything you need from React, Ractive-Load and jQuery while still being jQuery-compatible.\u003cp\u003evertex.js is a single, self-contained file with no build step and no dependencies.\u003cp\u003eAlso exhibits the curious quality of being faster than over a decade of engineering at Facebook in some cases: \u003ca href=\"https://files.catbox.moe/sqei0d.png\" rel=\"nofollow\"\u003ehttps://files.catbox.moe/sqei0d.png\u003c/a\u003e\u003c/p\u003e\n\u003chr\u003e\n\u003cp\u003eComments URL: \u003ca href=\"https://news.ycombinator.com/item?id=47205659\"\u003ehttps://news.ycombinator.com/item?id=47205659\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003ePoints: 23\u003c/p\u003e\n\u003cp\u003e# Comments: 15\u003c/p\u003e\n",
"link": "https://lukeb42.github.io/vertex-manual.html",
"published": "2026-03-01T11:05:28Z",
"title": "Show HN: Vertex.js – A 1kloc SPA Framework"
},
{
"author": "chromy",
"description": "\n\u003cp\u003eArticle URL: \u003ca href=\"https://atlas.flexport.com/\"\u003ehttps://atlas.flexport.com/\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eComments URL: \u003ca href=\"https://news.ycombinator.com/item?id=47205637\"\u003ehttps://news.ycombinator.com/item?id=47205637\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003ePoints: 120\u003c/p\u003e\n\u003cp\u003e# Comments: 29\u003c/p\u003e\n",
"link": "https://atlas.flexport.com/",
"published": "2026-03-01T11:01:17Z",
"title": "Flightradar24 for Ships"
},
{
"author": "joelsiks",
"description": "\n\u003cp\u003eArticle URL: \u003ca href=\"https://joelsiks.com/posts/cpp-emergency-pool-72kb-allocation/\"\u003ehttps://joelsiks.com/posts/cpp-emergency-pool-72kb-allocation/\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eComments URL: \u003ca href=\"https://news.ycombinator.com/item?id=47205129\"\u003ehttps://news.ycombinator.com/item?id=47205129\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003ePoints: 102\u003c/p\u003e\n\u003cp\u003e# Comments: 19\u003c/p\u003e\n",
"link": "https://joelsiks.com/posts/cpp-emergency-pool-72kb-allocation/",
"published": "2026-03-01T09:27:34Z",
"title": "Why is the first C++ (m)allocation always 72 KB?"
},
{
"author": "mschnell",
"description": "\n\u003cp\u003eArticle URL: \u003ca href=\"https://mlu-explain.github.io/decision-tree/\"\u003ehttps://mlu-explain.github.io/decision-tree/\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eComments URL: \u003ca href=\"https://news.ycombinator.com/item?id=47204964\"\u003ehttps://news.ycombinator.com/item?id=47204964\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003ePoints: 311\u003c/p\u003e\n\u003cp\u003e# Comments: 56\u003c/p\u003e\n",
"link": "https://mlu-explain.github.io/decision-tree/",
"published": "2026-03-01T08:55:52Z",
"title": "Decision trees – the unreasonable power of nested decision rules"
},
{
"author": "doener",
"description": "\n\u003cp\u003eArticle URL: \u003ca href=\"https://claude.com/import-memory\"\u003ehttps://claude.com/import-memory\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eComments URL: \u003ca href=\"https://news.ycombinator.com/item?id=47204571\"\u003ehttps://news.ycombinator.com/item?id=47204571\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003ePoints: 480\u003c/p\u003e\n\u003cp\u003e# Comments: 223\u003c/p\u003e\n",
"link": "https://claude.com/import-memory",
"published": "2026-03-01T07:36:52Z",
"title": "Switch to Claude without starting over"
},
{
"author": "vismit2000",
"description": "\n\u003cp\u003eArticle URL: \u003ca href=\"https://modernaicourse.org\"\u003ehttps://modernaicourse.org\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eComments URL: \u003ca href=\"https://news.ycombinator.com/item?id=47204559\"\u003ehttps://news.ycombinator.com/item?id=47204559\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003ePoints: 178\u003c/p\u003e\n\u003cp\u003e# Comments: 43\u003c/p\u003e\n",
"link": "https://modernaicourse.org",
"published": "2026-03-01T07:35:03Z",
"title": "10-202: Introduction to Modern AI (CMU)"
},
{
"author": "tambourine_man",
"description": "\n\u003cp\u003eArticle URL: \u003ca href=\"http://karpathy.github.io/2026/02/12/microgpt/\"\u003ehttp://karpathy.github.io/2026/02/12/microgpt/\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eComments URL: \u003ca href=\"https://news.ycombinator.com/item?id=47202708\"\u003ehttps://news.ycombinator.com/item?id=47202708\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003ePoints: 1485\u003c/p\u003e\n\u003cp\u003e# Comments: 261\u003c/p\u003e\n",
"link": "http://karpathy.github.io/2026/02/12/microgpt/",
"published": "2026-03-01T01:39:26Z",
"title": "Microgpt"
},
{
"author": "golfer",
"description": "\n\u003cp\u003eArticle URL: \u003ca href=\"https://twitter.com/OpenAI/status/2027846016423321831\"\u003ehttps://twitter.com/OpenAI/status/2027846016423321831\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eComments URL: \u003ca href=\"https://news.ycombinator.com/item?id=47200420\"\u003ehttps://news.ycombinator.com/item?id=47200420\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003ePoints: 735\u003c/p\u003e\n\u003cp\u003e# Comments: 400\u003c/p\u003e\n",
"link": "https://twitter.com/OpenAI/status/2027846016423321831",
"published": "2026-02-28T21:24:16Z",
"title": "We do not think Anthropic should be designated as a supply chain risk"
},
{
"author": "adilmoujahid",
"description": "\n\u003cp\u003eArticle URL: \u003ca href=\"https://help.obsidian.md/sync/headless\"\u003ehttps://help.obsidian.md/sync/headless\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eComments URL: \u003ca href=\"https://news.ycombinator.com/item?id=47197267\"\u003ehttps://news.ycombinator.com/item?id=47197267\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003ePoints: 551\u003c/p\u003e\n\u003cp\u003e# Comments: 182\u003c/p\u003e\n",
"link": "https://help.obsidian.md/sync/headless",
"published": "2026-02-28T16:31:53Z",
"title": "Obsidian Sync now has a headless client"
},
{
"author": "asontha",
"description": "\n\u003cp\u003eArticle URL: \u003ca href=\"https://www.ycombinator.com/companies/kyber/jobs/59yPaCs-enterprise-account-executive-ae\"\u003ehttps://www.ycombinator.com/companies/kyber/jobs/59yPaCs-enterprise-account-executive-ae\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eComments URL: \u003ca href=\"https://news.ycombinator.com/item?id=47183907\"\u003ehttps://news.ycombinator.com/item?id=47183907\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003ePoints: 0\u003c/p\u003e\n\u003cp\u003e# Comments: 0\u003c/p\u003e\n",
"link": "https://www.ycombinator.com/companies/kyber/jobs/59yPaCs-enterprise-account-executive-ae",
"published": "2026-02-27T18:37:53Z",
"title": "Kyber (YC W23) Is Hiring an Enterprise Account Executive"
}
]
[
{
"author": "gradus_ad",
"description": "\n\u003cp\u003eArticle URL: \u003ca href=\"https://www.sciencedaily.com/releases/2026/02/260228093456.htm\"\u003ehttps://www.sciencedaily.com/releases/2026/02/260228093456.htm\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eComments URL: \u003ca href=\"https://news.ycombinator.com/item?id=47207404\"\u003ehttps://news.ycombinator.com/item?id=47207404\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003ePoints: 129\u003c/p\u003e\n\u003cp\u003e# Comments: 42\u003c/p\u003e\n",
"link": "https://www.sciencedaily.com/releases/2026/02/260228093456.htm",
"published": "2026-03-01T15:09:55Z",
"title": "New iron nanomaterial wipes out cancer cells without harming healthy tissue"
},
{
"author": "oli5679",
"description": "\n\u003cp\u003eArticle URL: \u003ca href=\"https://ghostty.org/docs\"\u003ehttps://ghostty.org/docs\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eComments URL: \u003ca href=\"https://news.ycombinator.com/item?id=47206009\"\u003ehttps://news.ycombinator.com/item?id=47206009\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003ePoints: 411\u003c/p\u003e\n\u003cp\u003e# Comments: 184\u003c/p\u003e\n",
"link": "https://ghostty.org/docs",
"published": "2026-03-01T12:13:03Z",
"title": "Ghostty – Terminal Emulator"
},
{
"author": "nickk81",
"description": "\n\u003cp\u003eArticle URL: \u003ca href=\"https://99helpers.com/tools/ad-supported-chat\"\u003ehttps://99helpers.com/tools/ad-supported-chat\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eComments URL: \u003ca href=\"https://news.ycombinator.com/item?id=47205890\"\u003ehttps://news.ycombinator.com/item?id=47205890\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003ePoints: 356\u003c/p\u003e\n\u003cp\u003e# Comments: 219\u003c/p\u003e\n",
"link": "https://99helpers.com/tools/ad-supported-chat",
"published": "2026-03-01T11:49:01Z",
"title": "I built a demo of what AI chat will look like when it's \"free\" and ad-supported"
},
{
"author": "chromy",
"description": "\n\u003cp\u003eArticle URL: \u003ca href=\"https://atlas.flexport.com/\"\u003ehttps://atlas.flexport.com/\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eComments URL: \u003ca href=\"https://news.ycombinator.com/item?id=47205637\"\u003ehttps://news.ycombinator.com/item?id=47205637\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003ePoints: 120\u003c/p\u003e\n\u003cp\u003e# Comments: 29\u003c/p\u003e\n",
"link": "https://atlas.flexport.com/",
"published": "2026-03-01T11:01:17Z",
"title": "Flightradar24 for Ships"
},
{
"author": "joelsiks",
"description": "\n\u003cp\u003eArticle URL: \u003ca href=\"https://joelsiks.com/posts/cpp-emergency-pool-72kb-allocation/\"\u003ehttps://joelsiks.com/posts/cpp-emergency-pool-72kb-allocation/\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eComments URL: \u003ca href=\"https://news.ycombinator.com/item?id=47205129\"\u003ehttps://news.ycombinator.com/item?id=47205129\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003ePoints: 102\u003c/p\u003e\n\u003cp\u003e# Comments: 19\u003c/p\u003e\n",
"link": "https://joelsiks.com/posts/cpp-emergency-pool-72kb-allocation/",
"published": "2026-03-01T09:27:34Z",
"title": "Why is the first C++ (m)allocation always 72 KB?"
},
{
"author": "mschnell",
"description": "\n\u003cp\u003eArticle URL: \u003ca href=\"https://mlu-explain.github.io/decision-tree/\"\u003ehttps://mlu-explain.github.io/decision-tree/\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eComments URL: \u003ca href=\"https://news.ycombinator.com/item?id=47204964\"\u003ehttps://news.ycombinator.com/item?id=47204964\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003ePoints: 311\u003c/p\u003e\n\u003cp\u003e# Comments: 56\u003c/p\u003e\n",
"link": "https://mlu-explain.github.io/decision-tree/",
"published": "2026-03-01T08:55:52Z",
"title": "Decision trees – the unreasonable power of nested decision rules"
},
{
"author": "doener",
"description": "\n\u003cp\u003eArticle URL: \u003ca href=\"https://claude.com/import-memory\"\u003ehttps://claude.com/import-memory\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eComments URL: \u003ca href=\"https://news.ycombinator.com/item?id=47204571\"\u003ehttps://news.ycombinator.com/item?id=47204571\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003ePoints: 480\u003c/p\u003e\n\u003cp\u003e# Comments: 223\u003c/p\u003e\n",
"link": "https://claude.com/import-memory",
"published": "2026-03-01T07:36:52Z",
"title": "Switch to Claude without starting over"
},
{
"author": "vismit2000",
"description": "\n\u003cp\u003eArticle URL: \u003ca href=\"https://modernaicourse.org\"\u003ehttps://modernaicourse.org\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eComments URL: \u003ca href=\"https://news.ycombinator.com/item?id=47204559\"\u003ehttps://news.ycombinator.com/item?id=47204559\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003ePoints: 178\u003c/p\u003e\n\u003cp\u003e# Comments: 43\u003c/p\u003e\n",
"link": "https://modernaicourse.org",
"published": "2026-03-01T07:35:03Z",
"title": "10-202: Introduction to Modern AI (CMU)"
},
{
"author": "tambourine_man",
"description": "\n\u003cp\u003eArticle URL: \u003ca href=\"http://karpathy.github.io/2026/02/12/microgpt/\"\u003ehttp://karpathy.github.io/2026/02/12/microgpt/\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eComments URL: \u003ca href=\"https://news.ycombinator.com/item?id=47202708\"\u003ehttps://news.ycombinator.com/item?id=47202708\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003ePoints: 1485\u003c/p\u003e\n\u003cp\u003e# Comments: 261\u003c/p\u003e\n",
"link": "http://karpathy.github.io/2026/02/12/microgpt/",
"published": "2026-03-01T01:39:26Z",
"title": "Microgpt"
},
{
"author": "golfer",
"description": "\n\u003cp\u003eArticle URL: \u003ca href=\"https://twitter.com/OpenAI/status/2027846016423321831\"\u003ehttps://twitter.com/OpenAI/status/2027846016423321831\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eComments URL: \u003ca href=\"https://news.ycombinator.com/item?id=47200420\"\u003ehttps://news.ycombinator.com/item?id=47200420\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003ePoints: 735\u003c/p\u003e\n\u003cp\u003e# Comments: 400\u003c/p\u003e\n",
"link": "https://twitter.com/OpenAI/status/2027846016423321831",
"published": "2026-02-28T21:24:16Z",
"title": "We do not think Anthropic should be designated as a supply chain risk"
},
{
"author": "adilmoujahid",
"description": "\n\u003cp\u003eArticle URL: \u003ca href=\"https://help.obsidian.md/sync/headless\"\u003ehttps://help.obsidian.md/sync/headless\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eComments URL: \u003ca href=\"https://news.ycombinator.com/item?id=47197267\"\u003ehttps://news.ycombinator.com/item?id=47197267\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003ePoints: 551\u003c/p\u003e\n\u003cp\u003e# Comments: 182\u003c/p\u003e\n",
"link": "https://help.obsidian.md/sync/headless",
"published": "2026-02-28T16:31:53Z",
"title": "Obsidian Sync now has a headless client"
}
]
[
{
"author": "gradus_ad",
"description": "\n\u003cp\u003eArticle URL: \u003ca href=\"https://www.sciencedaily.com/releases/2026/02/260228093456.htm\"\u003ehttps://www.sciencedaily.com/releases/2026/02/260228093456.htm\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eComments URL: \u003ca href=\"https://news.ycombinator.com/item?id=47207404\"\u003ehttps://news.ycombinator.com/item?id=47207404\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003ePoints: 129\u003c/p\u003e\n\u003cp\u003e# Comments: 42\u003c/p\u003e\n",
"link": "https://www.sciencedaily.com/releases/2026/02/260228093456.htm",
"published": "2026-03-01T15:09:55Z",
"title": "New iron nanomaterial wipes out cancer cells without harming healthy tissue"
},
{
"author": "oli5679",
"description": "\n\u003cp\u003eArticle URL: \u003ca href=\"https://ghostty.org/docs\"\u003ehttps://ghostty.org/docs\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eComments URL: \u003ca href=\"https://news.ycombinator.com/item?id=47206009\"\u003ehttps://news.ycombinator.com/item?id=47206009\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003ePoints: 411\u003c/p\u003e\n\u003cp\u003e# Comments: 184\u003c/p\u003e\n",
"link": "https://ghostty.org/docs",
"published": "2026-03-01T12:13:03Z",
"title": "Ghostty – Terminal Emulator"
},
{
"author": "nickk81",
"description": "\n\u003cp\u003eArticle URL: \u003ca href=\"https://99helpers.com/tools/ad-supported-chat\"\u003ehttps://99helpers.com/tools/ad-supported-chat\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eComments URL: \u003ca href=\"https://news.ycombinator.com/item?id=47205890\"\u003ehttps://news.ycombinator.com/item?id=47205890\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003ePoints: 356\u003c/p\u003e\n\u003cp\u003e# Comments: 219\u003c/p\u003e\n",
"link": "https://99helpers.com/tools/ad-supported-chat",
"published": "2026-03-01T11:49:01Z",
"title": "I built a demo of what AI chat will look like when it's \"free\" and ad-supported"
},
{
"author": "chromy",
"description": "\n\u003cp\u003eArticle URL: \u003ca href=\"https://atlas.flexport.com/\"\u003ehttps://atlas.flexport.com/\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eComments URL: \u003ca href=\"https://news.ycombinator.com/item?id=47205637\"\u003ehttps://news.ycombinator.com/item?id=47205637\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003ePoints: 120\u003c/p\u003e\n\u003cp\u003e# Comments: 29\u003c/p\u003e\n",
"link": "https://atlas.flexport.com/",
"published": "2026-03-01T11:01:17Z",
"title": "Flightradar24 for Ships"
},
{
"author": "joelsiks",
"description": "\n\u003cp\u003eArticle URL: \u003ca href=\"https://joelsiks.com/posts/cpp-emergency-pool-72kb-allocation/\"\u003ehttps://joelsiks.com/posts/cpp-emergency-pool-72kb-allocation/\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eComments URL: \u003ca href=\"https://news.ycombinator.com/item?id=47205129\"\u003ehttps://news.ycombinator.com/item?id=47205129\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003ePoints: 102\u003c/p\u003e\n\u003cp\u003e# Comments: 19\u003c/p\u003e\n",
"link": "https://joelsiks.com/posts/cpp-emergency-pool-72kb-allocation/",
"published": "2026-03-01T09:27:34Z",
"title": "Why is the first C++ (m)allocation always 72 KB?"
},
{
"author": "mschnell",
"description": "\n\u003cp\u003eArticle URL: \u003ca href=\"https://mlu-explain.github.io/decision-tree/\"\u003ehttps://mlu-explain.github.io/decision-tree/\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eComments URL: \u003ca href=\"https://news.ycombinator.com/item?id=47204964\"\u003ehttps://news.ycombinator.com/item?id=47204964\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003ePoints: 311\u003c/p\u003e\n\u003cp\u003e# Comments: 56\u003c/p\u003e\n",
"link": "https://mlu-explain.github.io/decision-tree/",
"published": "2026-03-01T08:55:52Z",
"title": "Decision trees – the unreasonable power of nested decision rules"
},
{
"author": "doener",
"description": "\n\u003cp\u003eArticle URL: \u003ca href=\"https://claude.com/import-memory\"\u003ehttps://claude.com/import-memory\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eComments URL: \u003ca href=\"https://news.ycombinator.com/item?id=47204571\"\u003ehttps://news.ycombinator.com/item?id=47204571\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003ePoints: 480\u003c/p\u003e\n\u003cp\u003e# Comments: 223\u003c/p\u003e\n",
"link": "https://claude.com/import-memory",
"published": "2026-03-01T07:36:52Z",
"title": "Switch to Claude without starting over"
},
{
"author": "vismit2000",
"description": "\n\u003cp\u003eArticle URL: \u003ca href=\"https://modernaicourse.org\"\u003ehttps://modernaicourse.org\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eComments URL: \u003ca href=\"https://news.ycombinator.com/item?id=47204559\"\u003ehttps://news.ycombinator.com/item?id=47204559\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003ePoints: 178\u003c/p\u003e\n\u003cp\u003e# Comments: 43\u003c/p\u003e\n",
"link": "https://modernaicourse.org",
"published": "2026-03-01T07:35:03Z",
"title": "10-202: Introduction to Modern AI (CMU)"
},
{
"author": "tambourine_man",
"description": "\n\u003cp\u003eArticle URL: \u003ca href=\"http://karpathy.github.io/2026/02/12/microgpt/\"\u003ehttp://karpathy.github.io/2026/02/12/microgpt/\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eComments URL: \u003ca href=\"https://news.ycombinator.com/item?id=47202708\"\u003ehttps://news.ycombinator.com/item?id=47202708\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003ePoints: 1485\u003c/p\u003e\n\u003cp\u003e# Comments: 261\u003c/p\u003e\n",
"link": "http://karpathy.github.io/2026/02/12/microgpt/",
"published": "2026-03-01T01:39:26Z",
"title": "Microgpt"
},
{
"author": "golfer",
"description": "\n\u003cp\u003eArticle URL: \u003ca href=\"https://twitter.com/OpenAI/status/2027846016423321831\"\u003ehttps://twitter.com/OpenAI/status/2027846016423321831\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eComments URL: \u003ca href=\"https://news.ycombinator.com/item?id=47200420\"\u003ehttps://news.ycombinator.com/item?id=47200420\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003ePoints: 735\u003c/p\u003e\n\u003cp\u003e# Comments: 400\u003c/p\u003e\n",
"link": "https://twitter.com/OpenAI/status/2027846016423321831",
"published": "2026-02-28T21:24:16Z",
"title": "We do not think Anthropic should be designated as a supply chain risk"
},
{
"author": "adilmoujahid",
"description": "\n\u003cp\u003eArticle URL: \u003ca href=\"https://help.obsidian.md/sync/headless\"\u003ehttps://help.obsidian.md/sync/headless\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eComments URL: \u003ca href=\"https://news.ycombinator.com/item?id=47197267\"\u003ehttps://news.ycombinator.com/item?id=47197267\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003ePoints: 551\u003c/p\u003e\n\u003cp\u003e# Comments: 182\u003c/p\u003e\n",
"link": "https://help.obsidian.md/sync/headless",
"published": "2026-02-28T16:31:53Z",
"title": "Obsidian Sync now has a headless client"
}
]
[
{
"author": "tambourine_man",
"description": "\n\u003cp\u003eArticle URL: \u003ca href=\"http://karpathy.github.io/2026/02/12/microgpt/\"\u003ehttp://karpathy.github.io/2026/02/12/microgpt/\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eComments URL: \u003ca href=\"https://news.ycombinator.com/item?id=47202708\"\u003ehttps://news.ycombinator.com/item?id=47202708\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003ePoints: 1485\u003c/p\u003e\n\u003cp\u003e# Comments: 261\u003c/p\u003e\n",
"link": "http://karpathy.github.io/2026/02/12/microgpt/",
"published": "2026-03-01T01:39:26Z",
"title": "Microgpt"
}
]
[
{
"author": "tambourine_man",
"description": "\n\u003cp\u003eArticle URL: \u003ca href=\"http://karpathy.github.io/2026/02/12/microgpt/\"\u003ehttp://karpathy.github.io/2026/02/12/microgpt/\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eComments URL: \u003ca href=\"https://news.ycombinator.com/item?id=47202708\"\u003ehttps://news.ycombinator.com/item?id=47202708\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003ePoints: 1485\u003c/p\u003e\n\u003cp\u003e# Comments: 261\u003c/p\u003e\n",
"link": "http://karpathy.github.io/2026/02/12/microgpt/",
"published": "2026-03-01T01:39:26Z",
"title": "Microgpt"
}
]
[
{
"author": "tambourine_man",
"content": "This is a brief guide to my new art project microgpt, a single file of 200 lines of pure Python with no dependencies that trains and inferences a GPT. This file contains the full algorithmic content of what is needed: dataset of documents, tokenizer, autograd engine, a GPT-2-like neural network architecture, the Adam optimizer, training loop, and inference loop. Everything else is just efficiency. I cannot simplify this any further. This script is the culmination of multiple projects (micrograd, makemore, nanogpt, etc.) and a decade-long obsession to simplify LLMs to their bare essentials, and I think it is beautiful 🥹. It even breaks perfectly across 3 columns:\n\n\n \n\n\nWhere to find it:\n\n\n This GitHub gist has the full source code: microgpt.py\n It’s also available on this web page: https://karpathy.ai/microgpt.html\n Also available as a Google Colab notebook\n\n\nThe following is my guide on stepping an interested reader through the code.\n\nDataset\n\nThe fuel of large language models is a stream of text data, optionally separated into a set of documents. In production-grade applications, each document would be an internet web page but for microgpt we use a simpler example of 32,000 names, one per line:\n\n# Let there be an input dataset `docs`: list[str] of documents (e.g. a dataset of names)\nif not os.path.exists('input.txt'):\n import urllib.request\n names_url = 'https://raw.githubusercontent.com/karpathy/makemore/refs/heads/master/names.txt'\n urllib.request.urlretrieve(names_url, 'input.txt')\ndocs = [l.strip() for l in open('input.txt').read().strip().split('\\n') if l.strip()] # list[str] of documents\nrandom.shuffle(docs)\nprint(f\"num docs: {len(docs)}\")\n\n\nThe dataset looks like this. Each name is a document:\n\nemma\nolivia\nava\nisabella\nsophia\ncharlotte\nmia\namelia\nharper\n... (~32,000 names follow)\n\n\nThe goal of the model is to learn the patterns in the data and then generate similar new documents that share the statistical patterns within. As a preview, by the end of the script our model will generate (“hallucinate”!) new, plausible-sounding names. Skipping ahead, we’ll get:\n\nsample 1: kamon\nsample 2: ann\nsample 3: karai\nsample 4: jaire\nsample 5: vialan\nsample 6: karia\nsample 7: yeran\nsample 8: anna\nsample 9: areli\nsample 10: kaina\nsample 11: konna\nsample 12: keylen\nsample 13: liole\nsample 14: alerin\nsample 15: earan\nsample 16: lenne\nsample 17: kana\nsample 18: lara\nsample 19: alela\nsample 20: anton\n\n\nIt doesn’t look like much, but from the perspective of a model like ChatGPT, your conversation with it is just a funny looking “document”. When you initialize the document with your prompt, the model’s response from its perspective is just a statistical document completion.\n\nTokenizer\n\nUnder the hood, neural networks work with numbers, not characters, so we need a way to convert text into a sequence of integer token ids and back. Production tokenizers like tiktoken (used by GPT-4) operate on chunks of characters for efficiency, but the simplest possible tokenizer just assigns one integer to each unique character in the dataset:\n\n# Let there be a Tokenizer to translate strings to discrete symbols and back\nuchars = sorted(set(''.join(docs))) # unique characters in the dataset become token ids 0..n-1\nBOS = len(uchars) # token id for the special Beginning of Sequence (BOS) token\nvocab_size = len(uchars) + 1 # total number of unique tokens, +1 is for BOS\nprint(f\"vocab size: {vocab_size}\")\n\n\nIn the code above, we collect all unique characters across the dataset (which are just all the lowercase letters a-z), sort them, and each letter gets an id by its index. Note that the integer values themselves have no meaning at all; each token is just a separate discrete symbol. Instead of 0, 1, 2 they might as well be different emoji. In addition, we create one more special token called BOS (Beginning of Sequence), which acts as a delimiter: it tells the model “a new document starts/ends here”. Later during training, each document gets wrapped with BOS on both sides: [BOS, e, m, m, a, BOS]. The model learns that BOS initates a new name, and that another BOS ends it. Therefore, we have a final vocavulary of 27 (26 possible lowercase characters a-z and +1 for the BOS token).\n\nAutograd\n\nTraining a neural network requires gradients: for each parameter in the model, we need to know “if I nudge this number up a little, does the loss go up or down, and by how much?”. The computation graph has many inputs (the model parameters and the input tokens) but funnels down to a single scalar output: the loss (we’ll define exactly what the loss is below). Backpropagation starts at that single output and works backwards through the graph, computing the gradient of the loss with respect to every input. It relies on the chain rule from calculus. In production, libraries like PyTorch handle this automatically. Here, we implement it from scratch in a single class called Value:\n\nclass Value:\n __slots__ = ('data', 'grad', '_children', '_local_grads')\n\n def __init__(self, data, children=(), local_grads=()):\n self.data = data # scalar value of this node calculated during forward pass\n self.grad = 0 # derivative of the loss w.r.t. this node, calculated in backward pass\n self._children = children # children of this node in the computation graph\n self._local_grads = local_grads # local derivative of this node w.r.t. its children\n\n def __add__(self, other):\n other = other if isinstance(other, Value) else Value(other)\n return Value(self.data + other.data, (self, other), (1, 1))\n\n def __mul__(self, other):\n other = other if isinstance(other, Value) else Value(other)\n return Value(self.data * other.data, (self, other), (other.data, self.data))\n\n def __pow__(self, other): return Value(self.data**other, (self,), (other * self.data**(other-1),))\n def log(self): return Value(math.log(self.dat",
"description": "\n\u003cp\u003eArticle URL: \u003ca href=\"http://karpathy.github.io/2026/02/12/microgpt/\"\u003ehttp://karpathy.github.io/2026/02/12/microgpt/\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eComments URL: \u003ca href=\"https://news.ycombinator.com/item?id=47202708\"\u003ehttps://news.ycombinator.com/item?id=47202708\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003ePoints: 1485\u003c/p\u003e\n\u003cp\u003e# Comments: 261\u003c/p\u003e\n",
"http_status": 200,
"link": "http://karpathy.github.io/2026/02/12/microgpt/",
"published": "2026-03-01T01:39:26Z",
"title": "Microgpt"
}
]
[
{
"author": "tambourine_man",
"content": "This is a brief guide to my new art project microgpt, a single file of 200 lines of pure Python with no dependencies that trains and inferences a GPT. This file contains the full algorithmic content of what is needed: dataset of documents, tokenizer, autograd engine, a GPT-2-like neural network architecture, the Adam optimizer, training loop, and inference loop. Everything else is just efficiency. I cannot simplify this any further. This script is the culmination of multiple projects (micrograd, makemore, nanogpt, etc.) and a decade-long obsession to simplify LLMs to their bare essentials, and I think it is beautiful 🥹. It even breaks perfectly across 3 columns:\n\n\n \n\n\nWhere to find it:\n\n\n This GitHub gist has the full source code: microgpt.py\n It’s also available on this web page: https://karpathy.ai/microgpt.html\n Also available as a Google Colab notebook\n\n\nThe following is my guide on stepping an interested reader through the code.\n\nDataset\n\nThe fuel of large language models is a stream of text data, optionally separated into a set of documents. In production-grade applications, each document would be an internet web page but for microgpt we use a simpler example of 32,000 names, one per line:\n\n# Let there be an input dataset `docs`: list[str] of documents (e.g. a dataset of names)\nif not os.path.exists('input.txt'):\n import urllib.request\n names_url = 'https://raw.githubusercontent.com/karpathy/makemore/refs/heads/master/names.txt'\n urllib.request.urlretrieve(names_url, 'input.txt')\ndocs = [l.strip() for l in open('input.txt').read().strip().split('\\n') if l.strip()] # list[str] of documents\nrandom.shuffle(docs)\nprint(f\"num docs: {len(docs)}\")\n\n\nThe dataset looks like this. Each name is a document:\n\nemma\nolivia\nava\nisabella\nsophia\ncharlotte\nmia\namelia\nharper\n... (~32,000 names follow)\n\n\nThe goal of the model is to learn the patterns in the data and then generate similar new documents that share the statistical patterns within. As a preview, by the end of the script our model will generate (“hallucinate”!) new, plausible-sounding names. Skipping ahead, we’ll get:\n\nsample 1: kamon\nsample 2: ann\nsample 3: karai\nsample 4: jaire\nsample 5: vialan\nsample 6: karia\nsample 7: yeran\nsample 8: anna\nsample 9: areli\nsample 10: kaina\nsample 11: konna\nsample 12: keylen\nsample 13: liole\nsample 14: alerin\nsample 15: earan\nsample 16: lenne\nsample 17: kana\nsample 18: lara\nsample 19: alela\nsample 20: anton\n\n\nIt doesn’t look like much, but from the perspective of a model like ChatGPT, your conversation with it is just a funny looking “document”. When you initialize the document with your prompt, the model’s response from its perspective is just a statistical document completion.\n\nTokenizer\n\nUnder the hood, neural networks work with numbers, not characters, so we need a way to convert text into a sequence of integer token ids and back. Production tokenizers like tiktoken (used by GPT-4) operate on chunks of characters for efficiency, but the simplest possible tokenizer just assigns one integer to each unique character in the dataset:\n\n# Let there be a Tokenizer to translate strings to discrete symbols and back\nuchars = sorted(set(''.join(docs))) # unique characters in the dataset become token ids 0..n-1\nBOS = len(uchars) # token id for the special Beginning of Sequence (BOS) token\nvocab_size = len(uchars) + 1 # total number of unique tokens, +1 is for BOS\nprint(f\"vocab size: {vocab_size}\")\n\n\nIn the code above, we collect all unique characters across the dataset (which are just all the lowercase letters a-z), sort them, and each letter gets an id by its index. Note that the integer values themselves have no meaning at all; each token is just a separate discrete symbol. Instead of 0, 1, 2 they might as well be different emoji. In addition, we create one more special token called BOS (Beginning of Sequence), which acts as a delimiter: it tells the model “a new document starts/ends here”. Later during training, each document gets wrapped with BOS on both sides: [BOS, e, m, m, a, BOS]. The model learns that BOS initates a new name, and that another BOS ends it. Therefore, we have a final vocavulary of 27 (26 possible lowercase characters a-z and +1 for the BOS token).\n\nAutograd\n\nTraining a neural network requires gradients: for each parameter in the model, we need to know “if I nudge this number up a little, does the loss go up or down, and by how much?”. The computation graph has many inputs (the model parameters and the input tokens) but funnels down to a single scalar output: the loss (we’ll define exactly what the loss is below). Backpropagation starts at that single output and works backwards through the graph, computing the gradient of the loss with respect to every input. It relies on the chain rule from calculus. In production, libraries like PyTorch handle this automatically. Here, we implement it from scratch in a single class called Value:\n\nclass Value:\n __slots__ = ('data', 'grad', '_children', '_local_grads')\n\n def __init__(self, data, children=(), local_grads=()):\n self.data = data # scalar value of this node calculated during forward pass\n self.grad = 0 # derivative of the loss w.r.t. this node, calculated in backward pass\n self._children = children # children of this node in the computation graph\n self._local_grads = local_grads # local derivative of this node w.r.t. its children\n\n def __add__(self, other):\n other = other if isinstance(other, Value) else Value(other)\n return Value(self.data + other.data, (self, other), (1, 1))\n\n def __mul__(self, other):\n other = other if isinstance(other, Value) else Value(other)\n return Value(self.data * other.data, (self, other), (other.data, self.data))\n\n def __pow__(self, other): return Value(self.data**other, (self,), (other * self.data**(other-1),))\n def log(self): return Value(math.log(self.dat",
"description": "\n\u003cp\u003eArticle URL: \u003ca href=\"http://karpathy.github.io/2026/02/12/microgpt/\"\u003ehttp://karpathy.github.io/2026/02/12/microgpt/\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eComments URL: \u003ca href=\"https://news.ycombinator.com/item?id=47202708\"\u003ehttps://news.ycombinator.com/item?id=47202708\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003ePoints: 1485\u003c/p\u003e\n\u003cp\u003e# Comments: 261\u003c/p\u003e\n",
"http_status": 200,
"link": "http://karpathy.github.io/2026/02/12/microgpt/",
"published": "2026-03-01T01:39:26Z",
"title": "Microgpt"
}
]
[
{
"text": "# Microgpt — concise summary\n\n**What it is:** A tiny, self-contained implementation of a GPT-style model (∼200 lines of pure Python, no dependencies) that both trains and samples text. The page walks through the full minimal recipe for an LLM: dataset, tokenizer, autograd, model, optimizer, training loop, and inference — distilled to the essentials as an educational demonstration.\n\n**Core components covered**\n- Single-file project that contains everything algorithmic (dataset handling, tokenizer, autograd engine, GPT‑2‑like network, Adam optimizer, training and inference loops).\n- Simple dataset example: ~32,000 names (one per line) used to learn and sample plausible new names.\n- Char-level tokenizer plus a special BOS token (vocab ≈ 27 tokens in the example).\n- Hand-rolled autograd via a Value class implementing forward/backward for scalar ops.\n- Compact GPT-like architecture and training loop that produce sampled outputs (e.g., \"kamon\", \"ann\", \"karai\", ...).\n- Educational lineage: builds on ideas from micrograd, makemore, nanogpt to show how LLMs can be reduced to their bare essentials.\n\n**Why read it:** Great for learning — shows end-to-end how a language model works in minimal, readable code and demonstrates that training and sampling can be expressed clearly without heavy frameworks.\n\n**Links \u0026 metadata**\n- Article: http://karpathy.github.io/2026/02/12/microgpt/\n- Discussion (Hacker News): https://news.ycombinator.com/item?id=47202708\n- Source: gist named `microgpt.py` (linked from the page) and a Google Colab is also provided on the page.\n\n**Stats**: Points: 1485 · Comments: 261 · Published: 2026-03-01T01:39:26Z"
}
]
[
{
"text": "# Microgpt — concise summary\n\n**What it is:** A tiny, self-contained implementation of a GPT-style model (∼200 lines of pure Python, no dependencies) that both trains and samples text. The page walks through the full minimal recipe for an LLM: dataset, tokenizer, autograd, model, optimizer, training loop, and inference — distilled to the essentials as an educational demonstration.\n\n**Core components covered**\n- Single-file project that contains everything algorithmic (dataset handling, tokenizer, autograd engine, GPT‑2‑like network, Adam optimizer, training and inference loops).\n- Simple dataset example: ~32,000 names (one per line) used to learn and sample plausible new names.\n- Char-level tokenizer plus a special BOS token (vocab ≈ 27 tokens in the example).\n- Hand-rolled autograd via a Value class implementing forward/backward for scalar ops.\n- Compact GPT-like architecture and training loop that produce sampled outputs (e.g., \"kamon\", \"ann\", \"karai\", ...).\n- Educational lineage: builds on ideas from micrograd, makemore, nanogpt to show how LLMs can be reduced to their bare essentials.\n\n**Why read it:** Great for learning — shows end-to-end how a language model works in minimal, readable code and demonstrates that training and sampling can be expressed clearly without heavy frameworks.\n\n**Links \u0026 metadata**\n- Article: http://karpathy.github.io/2026/02/12/microgpt/\n- Discussion (Hacker News): https://news.ycombinator.com/item?id=47202708\n- Source: gist named `microgpt.py` (linked from the page) and a Google Colab is also provided on the page.\n\n**Stats**: Points: 1485 · Comments: 261 · Published: 2026-03-01T01:39:26Z"
}
]
[
{
"text": "# Microgpt — concise summary\n\nMicrogpt is a tiny, self-contained (~200 lines) pure‑Python implementation of a GPT‑style model that demonstrates the full minimal LLM recipe — dataset, char‑level tokenizer (≈27 tokens), hand‑rolled autograd, compact GPT‑like network, Adam optimizer, training loop, and sampling — trained on a ~32k‑name dataset to produce plausible sampled names. It’s an educational distillation (building on micrograd / makemore / nanogpt) that shows how training and inference can be expressed clearly without heavy frameworks; read the writeup and try the included gist/Colab. Article: http://karpathy.github.io/2026/02/12/microgpt/ · HN discussion: https://news.ycombinator.com/item?id=47202708 \n\n**Stats:** Points: 1485 · Comments: 261 · Published: 2026-03-01T01:39:26Z"
}
]
[
{
"text": "# Microgpt — concise summary\n\nMicrogpt is a tiny, self-contained (~200 lines) pure‑Python implementation of a GPT‑style model that demonstrates the full minimal LLM recipe — dataset, char‑level tokenizer (≈27 tokens), hand‑rolled autograd, compact GPT‑like network, Adam optimizer, training loop, and sampling — trained on a ~32k‑name dataset to produce plausible sampled names. It’s an educational distillation (building on micrograd / makemore / nanogpt) that shows how training and inference can be expressed clearly without heavy frameworks; read the writeup and try the included gist/Colab. Article: http://karpathy.github.io/2026/02/12/microgpt/ · HN discussion: https://news.ycombinator.com/item?id=47202708 \n\n**Stats:** Points: 1485 · Comments: 261 · Published: 2026-03-01T01:39:26Z"
}
]
[
{
"ok": true,
"text": "# Microgpt — concise summary\n\nMicrogpt is a tiny, self-contained (~200 lines) pure‑Python implementation of a GPT‑style model that demonstrates the full minimal LLM recipe — dataset, char‑level tokenizer (≈27 tokens), hand‑rolled autograd, compact GPT‑like network, Adam optimizer, training loop, and sampling — trained on a ~32k‑name dataset to produce plausible sampled names. It’s an educational distillation (building on micrograd / makemore / nanogpt) that shows how training and inference can be expressed clearly without heavy frameworks; read the writeup and try the included gist/Colab. Article: http://karpathy.github.io/2026/02/12/microgpt/ · HN discussion: https://news.ycombinator.com/item?id=47202708 \n\n**Stats:** Points: 1485 · Comments: 261 · Published: 2026-03-01T01:39:26Z"
}
]