<p>A few weeks ago I saw a post about someone converting an entire C++ codebase to Rust using AI in under two weeks.<p>That inspired me — if AI can rewrite a whole language stack that fast, I wanted to try building a programming language from scratch with AI assistance.<p>I've also been noticing growing global interest in Korean language and culture, and I wondered: what would a programming language look like if every keyword was in Hangul (the Korean writing system)?<p>Han is the result. It'...
<p>Look, every journaling app out there wants you to organize things into folders and tags and templates. I just wanted to write something down every day.<p>So I built this. One note per day. That's the whole deal.<p>- Can't edit yesterday. What's done is done. Keeps you from fussing over old entries instead of writing today's.<p>- Year view with dots showing which days you actually wrote. It's a streak chart. Works better than it should.<p>- No signup required. Opens right up, stores everyth...
{
"feed": {
"url": "https://hnrss.org/frontpage",
"title": "Hacker News: Front Page",
"link": "https://news.ycombinator.com/",
"posts": [
{
"guid": "http://news.ycombinator.com/item?id=47384619",
"title": "Jeff Bezos Upended the Washington Post",
"link": "https://www.nytimes.com/2026/03/14/business/media/washington-post-jeff-bezos-layoffs.html",
"published": 1773552960,
"summary": "<p>Article URL: <a href=\"https://www.nytimes.com/2026/03/14/business/media/washington-post-jeff-bezos-layoffs.html\">https://www.nytimes.com/2026/03/14/business/media/washington-post-jeff-bezos-layoffs.html</a></p>\n<p>Comments URL: <a href=\"https://news.ycombinator.com/item?id=47384619\">https://news.ycombinator.com/item?id=47384619</a></p>\n<p>Points: 9</p>\n<p># Comments: 5</p>",
"favicon": "",
"did_match_filter": true,
"matched_filters": null
},
{
"guid": "http://news.ycombinator.com/item?id=47384352",
"title": "Rack-Mount Hydroponics",
"link": "https://sa.lj.am/rack-mount-hydroponics/",
"published": 1773548623,
"summary": "<p>Article URL: <a href=\"https://sa.lj.am/rack-mount-hydroponics/\">https://sa.lj.am/rack-mount-hydroponics/</a></p>\n<p>Comments URL: <a href=\"https://news.ycombinator.com/item?id=47384352\">https://news.ycombinator.com/item?id=47384352</a></p>\n<p>Points: 58</p>\n<p># Comments: 14</p>",
"favicon": "",
"did_match_filter": true,
"matched_filters": null
},
{
"guid": "http://news.ycombinator.com/item?id=47384032",
"title": "A most elegant TCP hole punching algorithm",
"link": "https://robertsdotpm.github.io/cryptography/tcp_hole_punching.html",
"published": 1773545357,
"summary": "<p>Article URL: <a href=\"https://robertsdotpm.github.io/cryptography/tcp_hole_punching.html\">https://robertsdotpm.github.io/cryptography/tcp_hole_punching.html</a></p>\n<p>Comments URL: <a href=\"https://news.ycombinator.com/item?id=47384032\">https://news.ycombinator.com/item?id=47384032</a></p>\n<p>Points: 24</p>\n<p># Comments: 2</p>",
"favicon": "",
"did_match_filter": true,
"matched_filters": null
},
{
"guid": "http://news.ycombinator.com/item?id=47383059",
"title": "Tree Search Distillation for Language Models Using PPO",
"link": "https://ayushtambde.com/blog/tree-search-distillation-for-language-models-using-ppo/",
"published": 1773535915,
"summary": "<p>Article URL: <a href=\"https://ayushtambde.com/blog/tree-search-distillation-for-language-models-using-ppo/\">https://ayushtambde.com/blog/tree-search-distillation-for-language-models-using-ppo/</a></p>\n<p>Comments URL: <a href=\"https://news.ycombinator.com/item?id=47383059\">https://news.ycombinator.com/item?id=47383059</a></p>\n<p>Points: 45</p>\n<p># Comments: 2</p>",
"favicon": "",
"did_match_filter": true,
"matched_filters": null
},
{
"guid": "http://news.ycombinator.com/item?id=47382791",
"title": "How Kernel Anti-Cheats Work",
"link": "https://s4dbrd.github.io/posts/how-kernel-anti-cheats-work/",
"published": 1773533710,
"summary": "<p>Article URL: <a href=\"https://s4dbrd.github.io/posts/how-kernel-anti-cheats-work/\">https://s4dbrd.github.io/posts/how-kernel-anti-cheats-work/</a></p>\n<p>Comments URL: <a href=\"https://news.ycombinator.com/item?id=47382791\">https://news.ycombinator.com/item?id=47382791</a></p>\n<p>Points: 105</p>\n<p># Comments: 82</p>",
"favicon": "",
"did_match_filter": true,
"matched_filters": null
},
{
"guid": "http://news.ycombinator.com/item?id=47382398",
"title": "SBCL Fibers – Lightweight Cooperative Threads",
"link": "https://atgreen.github.io/repl-yell/posts/sbcl-fibers/",
"published": 1773530559,
"summary": "<p>Article URL: <a href=\"https://atgreen.github.io/repl-yell/posts/sbcl-fibers/\">https://atgreen.github.io/repl-yell/posts/sbcl-fibers/</a></p>\n<p>Comments URL: <a href=\"https://news.ycombinator.com/item?id=47382398\">https://news.ycombinator.com/item?id=47382398</a></p>\n<p>Points: 67</p>\n<p># Comments: 10</p>",
"favicon": "",
"did_match_filter": true,
"matched_filters": null
},
{
"guid": "http://news.ycombinator.com/item?id=47382277",
"title": "Airbus is preparing two uncrewed combat aircraft",
"link": "https://www.airbus.com/en/newsroom/press-releases/2026-03-airbus-is-preparing-two-uncrewed-combat-aircraft-from-kratos-for-first-flight-with-a-european",
"published": 1773529824,
"summary": "<p>Article URL: <a href=\"https://www.airbus.com/en/newsroom/press-releases/2026-03-airbus-is-preparing-two-uncrewed-combat-aircraft-from-kratos-for-first-flight-with-a-european\">https://www.airbus.com/en/newsroom/press-releases/2026-03-airbus-is-preparing-two-uncrewed-combat-aircraft-from-kratos-for-first-flight-with-a-european</a></p>\n<p>Comments URL: <a href=\"https://news.ycombinator.com/item?id=47382277\">https://news.ycombinator.com/item?id=47382277</a></p>\n<p>Points: 114</p>\n<p># Comments: 62</p>",
"favicon": "",
"did_match_filter": true,
"matched_filters": null
},
{
"guid": "http://news.ycombinator.com/item?id=47382072",
"title": "Show HN: GrobPaint: Somewhere Between MS Paint and Paint.net",
"link": "https://github.com/groverburger/grobpaint",
"published": 1773528088,
"summary": "<p>Article URL: <a href=\"https://github.com/groverburger/grobpaint\">https://github.com/groverburger/grobpaint</a></p>\n<p>Comments URL: <a href=\"https://news.ycombinator.com/item?id=47382072\">https://news.ycombinator.com/item?id=47382072</a></p>\n<p>Points: 37</p>\n<p># Comments: 5</p>",
"favicon": "",
"did_match_filter": true,
"matched_filters": null
},
{
"guid": "http://news.ycombinator.com/item?id=47381791",
"title": "Ageless Linux – Software for humans of indeterminate age",
"link": "https://agelesslinux.org/",
"published": 1773526226,
"summary": "<p>Article URL: <a href=\"https://agelesslinux.org/\">https://agelesslinux.org/</a></p>\n<p>Comments URL: <a href=\"https://news.ycombinator.com/item?id=47381791\">https://news.ycombinator.com/item?id=47381791</a></p>\n<p>Points: 504</p>\n<p># Comments: 321</p>",
"favicon": "",
"did_match_filter": true,
"matched_filters": null
},
{
"guid": "http://news.ycombinator.com/item?id=47381746",
"title": "Changes to OpenTTD Distribution on Steam",
"link": "https://www.openttd.org/news/2026/03/14/steam-changes",
"published": 1773525888,
"summary": "<p>Article URL: <a href=\"https://www.openttd.org/news/2026/03/14/steam-changes\">https://www.openttd.org/news/2026/03/14/steam-changes</a></p>\n<p>Comments URL: <a href=\"https://news.ycombinator.com/item?id=47381746\">https://news.ycombinator.com/item?id=47381746</a></p>\n<p>Points: 143</p>\n<p># Comments: 95</p>",
"favicon": "",
"did_match_filter": true,
"matched_filters": null
},
{
"guid": "http://news.ycombinator.com/item?id=47381736",
"title": "Allow me to get to know you, mistakes and all",
"link": "https://sebi.io/posts/2026-03-14-allow-me-to-get-to-know-you-mistakes-and-all/",
"published": 1773525827,
"summary": "<p>Article URL: <a href=\"https://sebi.io/posts/2026-03-14-allow-me-to-get-to-know-you-mistakes-and-all/\">https://sebi.io/posts/2026-03-14-allow-me-to-get-to-know-you-mistakes-and-all/</a></p>\n<p>Comments URL: <a href=\"https://news.ycombinator.com/item?id=47381736\">https://news.ycombinator.com/item?id=47381736</a></p>\n<p>Points: 81</p>\n<p># Comments: 26</p>",
"favicon": "",
"did_match_filter": true,
"matched_filters": null
},
{
"guid": "http://news.ycombinator.com/item?id=47381731",
"title": "Learning Creative Coding",
"link": "https://stigmollerhansen.dk/resume/learning-creative-coding/",
"published": 1773525768,
"summary": "<p>Article URL: <a href=\"https://stigmollerhansen.dk/resume/learning-creative-coding/\">https://stigmollerhansen.dk/resume/learning-creative-coding/</a></p>\n<p>Comments URL: <a href=\"https://news.ycombinator.com/item?id=47381731\">https://news.ycombinator.com/item?id=47381731</a></p>\n<p>Points: 64</p>\n<p># Comments: 23</p>",
"favicon": "",
"did_match_filter": true,
"matched_filters": null
},
{
"guid": "http://news.ycombinator.com/item?id=47381382",
"title": "Show HN: Han – A Korean programming language written in Rust",
"link": "https://github.com/xodn348/han",
"published": 1773523653,
"summary": "<p>A few weeks ago I saw a post about someone converting an entire C++ codebase to Rust using AI in under two weeks.<p>That inspired me — if AI can rewrite a whole language stack that fast, I wanted to try building a programming language from scratch with AI assistance.<p>I've also been noticing growing global interest in Korean language and culture, and I wondered: what would a programming language look like if every keyword was in Hangul (the Korean writing system)?<p>Han is the result. It's a statically-typed language written in Rust with a full compiler pipeline (lexer → parser → AST → interpreter + LLVM IR codegen).<p>It supports arrays, structs with impl blocks, closures, pattern matching, try/catch, file I/O, module imports, a REPL, and a basic LSP server.<p>This is a side project, not a \"you should use this instead of Python\" pitch. \nFeedback on language design, compiler architecture, or the Korean keyword choices is very welcome.<p><a href=\"https://github.com/xodn348/han\" rel=\"nofollow\">https://github.com/xodn348/han</a></p>\n<hr>\n<p>Comments URL: <a href=\"https://news.ycombinator.com/item?id=47381382\">https://news.ycombinator.com/item?id=47381382</a></p>\n<p>Points: 146</p>\n<p># Comments: 84</p>",
"favicon": "",
"did_match_filter": true,
"matched_filters": null
},
{
"guid": "http://news.ycombinator.com/item?id=47381340",
"title": "Launching the Claude Partner Network",
"link": "https://www.anthropic.com/news/claude-partner-network",
"published": 1773523422,
"summary": "<p>Article URL: <a href=\"https://www.anthropic.com/news/claude-partner-network\">https://www.anthropic.com/news/claude-partner-network</a></p>\n<p>Comments URL: <a href=\"https://news.ycombinator.com/item?id=47381340\">https://news.ycombinator.com/item?id=47381340</a></p>\n<p>Points: 123</p>\n<p># Comments: 56</p>",
"favicon": "",
"did_match_filter": true,
"matched_filters": null
},
{
"guid": "http://news.ycombinator.com/item?id=47381238",
"title": "Postgres with Builtin File Systems",
"link": "https://db9.ai/",
"published": 1773522843,
"summary": "<p>Article URL: <a href=\"https://db9.ai/\">https://db9.ai/</a></p>\n<p>Comments URL: <a href=\"https://news.ycombinator.com/item?id=47381238\">https://news.ycombinator.com/item?id=47381238</a></p>\n<p>Points: 56</p>\n<p># Comments: 14</p>",
"favicon": "",
"did_match_filter": true,
"matched_filters": null
},
{
"guid": "http://news.ycombinator.com/item?id=47381011",
"title": "Bumblebee queens breathe underwater to survive drowning",
"link": "https://www.smithsonianmag.com/science-nature/bumblebee-queens-breathe-underwater-to-survive-drowning-revealing-how-they-can-live-submerged-for-a-week-180988330/",
"published": 1773521350,
"summary": "<p>Article URL: <a href=\"https://www.smithsonianmag.com/science-nature/bumblebee-queens-breathe-underwater-to-survive-drowning-revealing-how-they-can-live-submerged-for-a-week-180988330/\">https://www.smithsonianmag.com/science-nature/bumblebee-queens-breathe-underwater-to-survive-drowning-revealing-how-they-can-live-submerged-for-a-week-180988330/</a></p>\n<p>Comments URL: <a href=\"https://news.ycombinator.com/item?id=47381011\">https://news.ycombinator.com/item?id=47381011</a></p>\n<p>Points: 99</p>\n<p># Comments: 25</p>",
"favicon": "",
"did_match_filter": true,
"matched_filters": null
},
{
"guid": "http://news.ycombinator.com/item?id=47380726",
"title": "Library of Short Stories",
"link": "https://www.libraryofshortstories.com/",
"published": 1773519379,
"summary": "<p>Article URL: <a href=\"https://www.libraryofshortstories.com/\">https://www.libraryofshortstories.com/</a></p>\n<p>Comments URL: <a href=\"https://news.ycombinator.com/item?id=47380726\">https://news.ycombinator.com/item?id=47380726</a></p>\n<p>Points: 64</p>\n<p># Comments: 2</p>",
"favicon": "",
"did_match_filter": true,
"matched_filters": null
},
{
"guid": "http://news.ycombinator.com/item?id=47380512",
"title": "Fedora 44 on the Raspberry Pi 5",
"link": "https://nullr0ute.com/2026/03/fedora-44-on-the-raspberry-pi-5/",
"published": 1773518198,
"summary": "<p>Article URL: <a href=\"https://nullr0ute.com/2026/03/fedora-44-on-the-raspberry-pi-5/\">https://nullr0ute.com/2026/03/fedora-44-on-the-raspberry-pi-5/</a></p>\n<p>Comments URL: <a href=\"https://news.ycombinator.com/item?id=47380512\">https://news.ycombinator.com/item?id=47380512</a></p>\n<p>Points: 83</p>\n<p># Comments: 21</p>",
"favicon": "",
"did_match_filter": true,
"matched_filters": null
},
{
"guid": "http://news.ycombinator.com/item?id=47380295",
"title": "Marketing for Founders",
"link": "https://github.com/EdoStra/Marketing-for-Founders",
"published": 1773516940,
"summary": "<p>Article URL: <a href=\"https://github.com/EdoStra/Marketing-for-Founders\">https://github.com/EdoStra/Marketing-for-Founders</a></p>\n<p>Comments URL: <a href=\"https://news.ycombinator.com/item?id=47380295\">https://news.ycombinator.com/item?id=47380295</a></p>\n<p>Points: 150</p>\n<p># Comments: 57</p>",
"favicon": "",
"did_match_filter": true,
"matched_filters": null
},
{
"guid": "http://news.ycombinator.com/item?id=47379898",
"title": "Show HN: Ichinichi – One note per day, E2E encrypted, local-first",
"link": "https://news.ycombinator.com/item?id=47379898",
"published": 1773514632,
"summary": "<p>Look, every journaling app out there wants you to organize things into folders and tags and templates. I just wanted to write something down every day.<p>So I built this. One note per day. That's the whole deal.<p>- Can't edit yesterday. What's done is done. Keeps you from fussing over old entries instead of writing today's.<p>- Year view with dots showing which days you actually wrote. It's a streak chart. Works better than it should.<p>- No signup required. Opens right up, stores everything locally in your browser. Optional cloud sync if you want it<p>- E2E encrypted with AES-GCM, zero-knowledge, the whole nine yards.<p>Tech-wise: React, TypeScript, Vite, Zustand, IndexedDB. Supabase for optional sync. Deployed on Cloudflare. PWA-capable.<p>The name means \"one day\" in Japanese (いちにち).<p>The read-only past turned out to be the thing that actually made me stick with it. Can't waste time perfecting yesterday if yesterday won't let you in.<p>Live at <a href=\"https://ichinichi.app\" rel=\"nofollow\">https://ichinichi.app</a> | Source: <a href=\"https://github.com/katspaugh/ichinichi\" rel=\"nofollow\">https://github.com/katspaugh/ichinichi</a></p>\n<hr>\n<p>Comments URL: <a href=\"https://news.ycombinator.com/item?id=47379898\">https://news.ycombinator.com/item?id=47379898</a></p>\n<p>Points: 91</p>\n<p># Comments: 32</p>",
"favicon": "",
"did_match_filter": true,
"matched_filters": null
}
]
},
"error": "",
"friendly_error": ""
}