<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Hacker News: emadda</title><link>https://news.ycombinator.com/user?id=emadda</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Thu, 16 Apr 2026 06:11:34 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=emadda" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by emadda in "Vite 8.0 Is Out"]]></title><description><![CDATA[
<p>esbuild has been very stable for my projects too.<p>I think it is the only tool in the JS ecosystem that has not broken after a few years.</p>
]]></description><pubDate>Fri, 13 Mar 2026 12:45:42 +0000</pubDate><link>https://news.ycombinator.com/item?id=47363750</link><dc:creator>emadda</dc:creator><comments>https://news.ycombinator.com/item?id=47363750</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47363750</guid></item><item><title><![CDATA[Show HN: kg Food Log: Don't Track Calories; Track Molecules]]></title><description><![CDATA[
<p>Hello HN,<p>This is my molecule tracking web app.<p>It tracks calories like traditional apps, but goes into much higher detail on micronutrients (vitamins, minerals) and amino acids.<p>It is powered by Google Gemini, so you can just type a rough list of foods for each meal and it will infer the exact foods you meant. No more scanning barcodes!<p>I personally built this because the biochemical nature of foods interests me, and it is much faster to use this tool than looking up every food manually.<p>I hope you will find it useful, and let me know of any feature requests.<p>Thanks, Enzo</p>
<hr>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=47300692">https://news.ycombinator.com/item?id=47300692</a></p>
<p>Points: 2</p>
<p># Comments: 0</p>
]]></description><pubDate>Sun, 08 Mar 2026 19:54:28 +0000</pubDate><link>https://kg.enzom.dev/</link><dc:creator>emadda</dc:creator><comments>https://news.ycombinator.com/item?id=47300692</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47300692</guid></item><item><title><![CDATA[Show HN: kg Food Log: Reveal the molecules in your foods]]></title><description><![CDATA[
<p>Hello HN,<p>This is a food log web app powered by Google Gemini.<p>You can use it from any of your devices.<p>Thanks, Enzo</p>
<hr>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=47270700">https://news.ycombinator.com/item?id=47270700</a></p>
<p>Points: 3</p>
<p># Comments: 0</p>
]]></description><pubDate>Fri, 06 Mar 2026 04:00:05 +0000</pubDate><link>https://kg.enzom.dev/</link><dc:creator>emadda</dc:creator><comments>https://news.ycombinator.com/item?id=47270700</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47270700</guid></item><item><title><![CDATA[Show HN: kg Food Log (Google Gemini powered nutrition tracker)]]></title><description><![CDATA[
<p>Hello HN,<p>It's pretty simple:<p>Type in the foods you consumed in your meal and get a table and charts of nutrients in return!<p>The trial has limited tokens, but email me if you would like an extended trial.<p>Feedback welcome, thanks!</p>
<hr>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=47227302">https://news.ycombinator.com/item?id=47227302</a></p>
<p>Points: 2</p>
<p># Comments: 0</p>
]]></description><pubDate>Tue, 03 Mar 2026 02:43:45 +0000</pubDate><link>https://kg.enzom.dev</link><dc:creator>emadda</dc:creator><comments>https://news.ycombinator.com/item?id=47227302</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47227302</guid></item><item><title><![CDATA[New comment by emadda in "Things I learnt about passkeys when building passkeybot"]]></title><description><![CDATA[
<p>PKCE protects the auth token from interception by making it so that only your code that started the flow can redeem it by proving they have the secret code_verifier on the redeem_token() call.<p>The code_challenge == sha256(code_verifier). You will share the code_challenge at the start of the flow.</p>
]]></description><pubDate>Tue, 23 Dec 2025 16:04:35 +0000</pubDate><link>https://news.ycombinator.com/item?id=46366404</link><dc:creator>emadda</dc:creator><comments>https://news.ycombinator.com/item?id=46366404</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46366404</guid></item><item><title><![CDATA[New comment by emadda in "Things I learnt about passkeys when building passkeybot"]]></title><description><![CDATA[
<p>I just watched this, it is very good.</p>
]]></description><pubDate>Tue, 23 Dec 2025 12:28:00 +0000</pubDate><link>https://news.ycombinator.com/item?id=46364769</link><dc:creator>emadda</dc:creator><comments>https://news.ycombinator.com/item?id=46364769</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46364769</guid></item><item><title><![CDATA[New comment by emadda in "Things I learnt about passkeys when building passkeybot"]]></title><description><![CDATA[
<p>Yes, that is true, I was assuming that any LLM code was going to be checked by the developer. Step 7 in the guide is "review your code and ensure the important logic commented in the example server is still present".<p>The LLM is only for converting the JS based example code into your language X and HTTP framework Y (instead of giving example code for every combination of X and Y).<p>The standard implementation is in a single file `http_server.ts`, which is around 200 lines of well commented code, with important logic commented (around 5 lines). The example code can be run locally with a few commands.<p>The repo also contains a sequence diagram [1], a description of the HTTP handlers needed [2], and a live demo [3] where you can see the request/responses.<p>Thanks for your feedback I have made this clearer in the readme.<p>- [1] <a href="https://github.com/emadda/passkeybot/tree/master?tab=readme-ov-file#sequence-diagrams" rel="nofollow">https://github.com/emadda/passkeybot/tree/master?tab=readme-...</a><p>- [2] <a href="https://github.com/emadda/passkeybot/tree/master?tab=readme-ov-file#http-handlers-you-must-implement-on-your-server" rel="nofollow">https://github.com/emadda/passkeybot/tree/master?tab=readme-...</a><p>- [3] <a href="https://demo.enzom.dev/" rel="nofollow">https://demo.enzom.dev/</a></p>
]]></description><pubDate>Tue, 23 Dec 2025 11:45:24 +0000</pubDate><link>https://news.ycombinator.com/item?id=46364524</link><dc:creator>emadda</dc:creator><comments>https://news.ycombinator.com/item?id=46364524</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46364524</guid></item><item><title><![CDATA[Things I learnt about passkeys when building passkeybot]]></title><description><![CDATA[
<p>Article URL: <a href="https://enzom.dev/b/passkeys/">https://enzom.dev/b/passkeys/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=46357451">https://news.ycombinator.com/item?id=46357451</a></p>
<p>Points: 173</p>
<p># Comments: 146</p>
]]></description><pubDate>Mon, 22 Dec 2025 18:58:45 +0000</pubDate><link>https://enzom.dev/b/passkeys/</link><dc:creator>emadda</dc:creator><comments>https://news.ycombinator.com/item?id=46357451</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46357451</guid></item><item><title><![CDATA[Show HN: Passkeybot.com – add passkey auth with a few server side HTTP handlers]]></title><description><![CDATA[
<p>Article URL: <a href="https://github.com/emadda/passkeybot">https://github.com/emadda/passkeybot</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=46345476">https://news.ycombinator.com/item?id=46345476</a></p>
<p>Points: 3</p>
<p># Comments: 0</p>
]]></description><pubDate>Sun, 21 Dec 2025 15:24:12 +0000</pubDate><link>https://github.com/emadda/passkeybot</link><dc:creator>emadda</dc:creator><comments>https://news.ycombinator.com/item?id=46345476</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46345476</guid></item><item><title><![CDATA[New comment by emadda in "Yep, Passkeys Still Have Problems"]]></title><description><![CDATA[
<p>Related: I released a hosted sign in page for passkey auth today.<p>Take a look:<p><a href="https://passkeybot.com" rel="nofollow">https://passkeybot.com</a></p>
]]></description><pubDate>Wed, 17 Dec 2025 23:18:48 +0000</pubDate><link>https://news.ycombinator.com/item?id=46306981</link><dc:creator>emadda</dc:creator><comments>https://news.ycombinator.com/item?id=46306981</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46306981</guid></item><item><title><![CDATA[Show HN: passkeybot.com - add passkey auth with a few server side HTTP handlers]]></title><description><![CDATA[
<p>Hello HN,<p>Passkeybot is a hosted sign in page that only supports passkeys.<p>Add email verification and user auth to your app with only a few server side HTTP handlers.<p>Feedback appreciated, Thanks, Enzo</p>
<hr>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=46305996">https://news.ycombinator.com/item?id=46305996</a></p>
<p>Points: 4</p>
<p># Comments: 0</p>
]]></description><pubDate>Wed, 17 Dec 2025 21:47:18 +0000</pubDate><link>https://github.com/emadda/passkeybot</link><dc:creator>emadda</dc:creator><comments>https://news.ycombinator.com/item?id=46305996</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46305996</guid></item><item><title><![CDATA[New comment by emadda in "Ghostty compiled to WASM with xterm.js API compatibility"]]></title><description><![CDATA[
<p>I built a macOS app that uses Ghostty and fzy to fuzzy search over Apple Note titles. It is working quite well for me.<p><a href="https://github.com/emadda/hot-notes/" rel="nofollow">https://github.com/emadda/hot-notes/</a></p>
]]></description><pubDate>Tue, 02 Dec 2025 13:00:33 +0000</pubDate><link>https://news.ycombinator.com/item?id=46120770</link><dc:creator>emadda</dc:creator><comments>https://news.ycombinator.com/item?id=46120770</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46120770</guid></item><item><title><![CDATA[New comment by emadda in "Show HN: JSON Query"]]></title><description><![CDATA[
<p>Maybe JS directly?</p>
]]></description><pubDate>Mon, 27 Oct 2025 21:57:54 +0000</pubDate><link>https://news.ycombinator.com/item?id=45726817</link><dc:creator>emadda</dc:creator><comments>https://news.ycombinator.com/item?id=45726817</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45726817</guid></item><item><title><![CDATA[New comment by emadda in "Litestream v0.5.0"]]></title><description><![CDATA[
<p>Cloudflare D1 has this, although you are limited to using JS workers to read/write it.<p><a href="https://developers.cloudflare.com/d1/best-practices/read-replication/" rel="nofollow">https://developers.cloudflare.com/d1/best-practices/read-rep...</a></p>
]]></description><pubDate>Sat, 04 Oct 2025 07:41:26 +0000</pubDate><link>https://news.ycombinator.com/item?id=45471457</link><dc:creator>emadda</dc:creator><comments>https://news.ycombinator.com/item?id=45471457</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45471457</guid></item><item><title><![CDATA[New comment by emadda in "Libghostty is coming"]]></title><description><![CDATA[
<p>I built a macOS app [1] (to fuzzy search Apple Notes) using Ghostty as a base so that I could use its fast rendering for large lists.<p>I think there is space for an Electron-like framework but for standalone terminal apps. Looking forward to using Ghostty as a library.<p>[1]: <a href="https://enzom.dev/hot-notes/" rel="nofollow">https://enzom.dev/hot-notes/</a></p>
]]></description><pubDate>Wed, 24 Sep 2025 12:55:02 +0000</pubDate><link>https://news.ycombinator.com/item?id=45359634</link><dc:creator>emadda</dc:creator><comments>https://news.ycombinator.com/item?id=45359634</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45359634</guid></item><item><title><![CDATA[New comment by emadda in "Web apps in a single, portable, self-updating, vanilla HTML file"]]></title><description><![CDATA[
<p>The local html file can read local resources via src=file_path attributes on html tags (img, audio, video, script etc).<p>But the src-included files must be in the same directory as the root html file (or a descendant directory)<p>I used this in my macOS app Pocket Log to output a local html audio log (<a href="https://enzom.dev" rel="nofollow">https://enzom.dev</a>).</p>
]]></description><pubDate>Mon, 18 Aug 2025 14:26:12 +0000</pubDate><link>https://news.ycombinator.com/item?id=44941015</link><dc:creator>emadda</dc:creator><comments>https://news.ycombinator.com/item?id=44941015</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44941015</guid></item><item><title><![CDATA[New comment by emadda in "Daily Notes Considered Harmful"]]></title><description><![CDATA[
<p>> Instead you should focus on creating notes that you are likely to revisit or likely to share.<p>One interesting thing I have discovered: the interface matters just as much as the content.<p>The faster you can recall notes, the more useful you find them, which makes it more likely you will write more notes.<p>I also put answers in the titles of my notes which allows me to scan a list of previously solved issues. The combination of a vague yyyy-mm-dd.md title and just a file system UI makes recall harder.<p>I have a fuzzy search app for Apple Notes that has been working well for me:<p><a href="https://github.com/emadda/hot-notes">https://github.com/emadda/hot-notes</a></p>
]]></description><pubDate>Mon, 14 Jul 2025 10:58:37 +0000</pubDate><link>https://news.ycombinator.com/item?id=44558628</link><dc:creator>emadda</dc:creator><comments>https://news.ycombinator.com/item?id=44558628</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44558628</guid></item><item><title><![CDATA[New comment by emadda in "I deleted my second brain"]]></title><description><![CDATA[
<p>I think the speed at which you can open previous notes matters.<p>If it takes you 1 minute of scrambling in a GUI to find a previous note, you are less likely to read previous notes.<p>And also less likely to write new ones as you know you’ll never visit it again.<p>I have an app built on the fzy CLI and Ghostty terminal for Apple Notes. It is working well for me:<p><a href="https://github.com/emadda/hot-notes">https://github.com/emadda/hot-notes</a></p>
]]></description><pubDate>Sat, 28 Jun 2025 12:48:55 +0000</pubDate><link>https://news.ycombinator.com/item?id=44404334</link><dc:creator>emadda</dc:creator><comments>https://news.ycombinator.com/item?id=44404334</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44404334</guid></item><item><title><![CDATA[New comment by emadda in "Apple announces Foundation Models and Containerization frameworks, etc"]]></title><description><![CDATA[
<p>Good point, apps are missing the docker layered file system to isolate container file writes.</p>
]]></description><pubDate>Wed, 11 Jun 2025 09:19:27 +0000</pubDate><link>https://news.ycombinator.com/item?id=44245698</link><dc:creator>emadda</dc:creator><comments>https://news.ycombinator.com/item?id=44245698</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44245698</guid></item><item><title><![CDATA[New comment by emadda in "Apple announces Foundation Models and Containerization frameworks, etc"]]></title><description><![CDATA[
<p>> The thing macOS really painfully lacks is not ergonomic ways to run Linux VMs, but actual, native containers-- macOS containers<p>Linux container processes run on the host kernel with extra sandboxing. The container image is an easily sharable and runnable bundle.<p>macOS .app bundles are kind of like container images.<p>You can sign them to ensure they are not modified, and put them into the “registry” (App Store).<p>The Swift ABI ensures it will likely run against future macOS versions, like the Linux  system APIs.<p>There is a sandbox system to restrict file and network access. Any started processes inherit the sandbox, like containers.<p>One thing missing is fine grained network rules though - I think the sandbox can just define “allow outbound/inbound”.<p>Obviously “.app”s are not exactly like container images , but they do cover many of the same features.</p>
]]></description><pubDate>Tue, 10 Jun 2025 11:17:39 +0000</pubDate><link>https://news.ycombinator.com/item?id=44235371</link><dc:creator>emadda</dc:creator><comments>https://news.ycombinator.com/item?id=44235371</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44235371</guid></item></channel></rss>