<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: nymanjon</title><link>https://news.ycombinator.com/user?id=nymanjon</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Sat, 04 Jul 2026 12:58:20 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=nymanjon" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by nymanjon in "10 years of personal finances in plain text files"]]></title><description><![CDATA[
<p>I created this app to help me track cash transactions that I can then export as a CSV file and then import into my PTA. It works well. It can work offline. I built it to be progressively enhanced. So, no JS needed but, if you don't mind JS being used, then it will have better features and even work offline, saving any transactions for when you are online again.<p><a href="https://github.com/jon49/cash" rel="nofollow">https://github.com/jon49/cash</a></p>
]]></description><pubDate>Wed, 14 Jan 2026 15:36:18 +0000</pubDate><link>https://news.ycombinator.com/item?id=46617245</link><dc:creator>nymanjon</dc:creator><comments>https://news.ycombinator.com/item?id=46617245</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46617245</guid></item><item><title><![CDATA[New comment by nymanjon in "10 years of personal finances in plain text files"]]></title><description><![CDATA[
<p>I created a little app that tracks the cash spending that I can export with a CSV file. You can host it yourself. I had no idea that my wife was using so much cash!<p><a href="https://github.com/jon49/cash" rel="nofollow">https://github.com/jon49/cash</a></p>
]]></description><pubDate>Wed, 14 Jan 2026 15:33:11 +0000</pubDate><link>https://news.ycombinator.com/item?id=46617194</link><dc:creator>nymanjon</dc:creator><comments>https://news.ycombinator.com/item?id=46617194</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46617194</guid></item><item><title><![CDATA[New comment by nymanjon in "Please just try HTMX"]]></title><description><![CDATA[
<p>I took that idea and made it actually usable.<p><a href="https://github.com/jon49/htmz-be" rel="nofollow">https://github.com/jon49/htmz-be</a><p>It's amazing how much further you can go when you flip the server as the one deciding where what should be updated on the page.<p>This was originally conceived by datastar and nomini also implements it this way. And HTMX 4.0 will have this as a first class citizen.</p>
]]></description><pubDate>Wed, 24 Dec 2025 18:46:55 +0000</pubDate><link>https://news.ycombinator.com/item?id=46378091</link><dc:creator>nymanjon</dc:creator><comments>https://news.ycombinator.com/item?id=46378091</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46378091</guid></item><item><title><![CDATA[New comment by nymanjon in "Please just try HTMX"]]></title><description><![CDATA[
<p>HTMX and related libs work just fine as offline apps. I've been doing it with my personal apps I make for myself for a long time.<p>Also, morphdom/idiomorph get you a long way even when you have highly interactive pages, especially if you have to hit the back end anyways. If you don't need to hit the back end then a front end lib is fine. But even then, the simpler pattern of hypermedia-driven applications can be better.<p>See <a href="https://github.com/jon49/Soccer" rel="nofollow">https://github.com/jon49/Soccer</a> as an example of this.</p>
]]></description><pubDate>Wed, 24 Dec 2025 18:44:22 +0000</pubDate><link>https://news.ycombinator.com/item?id=46378074</link><dc:creator>nymanjon</dc:creator><comments>https://news.ycombinator.com/item?id=46378074</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46378074</guid></item><item><title><![CDATA[New comment by nymanjon in "Please just try HTMX"]]></title><description><![CDATA[
<p>There's also htmz-be, nomini.js. Depending on your complexity needs.</p>
]]></description><pubDate>Wed, 24 Dec 2025 18:41:18 +0000</pubDate><link>https://news.ycombinator.com/item?id=46378039</link><dc:creator>nymanjon</dc:creator><comments>https://news.ycombinator.com/item?id=46378039</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46378039</guid></item><item><title><![CDATA[New comment by nymanjon in "Please just try HTMX"]]></title><description><![CDATA[
<p>This exactly. React is spaghetti code with the reducers. Using API end points to fetch HTML makes it super simple to see what is going on.</p>
]]></description><pubDate>Wed, 24 Dec 2025 18:39:59 +0000</pubDate><link>https://news.ycombinator.com/item?id=46378031</link><dc:creator>nymanjon</dc:creator><comments>https://news.ycombinator.com/item?id=46378031</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46378031</guid></item><item><title><![CDATA[New comment by nymanjon in "Please just try HTMX"]]></title><description><![CDATA[
<p>fixi.js, nomini.js, data-star, htmz-be. All have smaller footprints. All work just fine, depending on your needs.</p>
]]></description><pubDate>Wed, 24 Dec 2025 18:38:35 +0000</pubDate><link>https://news.ycombinator.com/item?id=46378019</link><dc:creator>nymanjon</dc:creator><comments>https://news.ycombinator.com/item?id=46378019</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46378019</guid></item><item><title><![CDATA[New comment by nymanjon in "Please just try HTMX"]]></title><description><![CDATA[
<p>Here's an example offline-first hypermedia-driven soccer application. The match page is the most complex part of the application and I use Morphdom to just do a diff on the main section of the page. I find hypermedia-driven development to be super simple.<p>I find React to be really complex. What normally takes me just some HTML rendered from the back end and some interactivity on the front end can be done in just a few lines of code, but React takes 10s of lines of code for what I can write in a single line of code using vanilla js. The virtual dom causes it to make everything state. I always find it odd that people reach for that as their front end. I could understand something like Svelte, but even that is too complex for my needs. But I'm always writing CRUD apps, so there is some complexity but not that much, React just makes something that was simple, super complex.<p><a href="https://github.com/jon49/Soccer" rel="nofollow">https://github.com/jon49/Soccer</a></p>
]]></description><pubDate>Sun, 21 Dec 2025 06:20:24 +0000</pubDate><link>https://news.ycombinator.com/item?id=46342710</link><dc:creator>nymanjon</dc:creator><comments>https://news.ycombinator.com/item?id=46342710</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46342710</guid></item><item><title><![CDATA[New comment by nymanjon in "Please just try HTMX"]]></title><description><![CDATA[
<p>Interesting read. I haven't quite finished it all. I haven't ever needed anything like that when writing web pages with HTMX, html-form (my own), nor htmz-be (another one I wrote based off of htmz but the back end decided where the HTML will go, similar to data-star and nomini). When I write code from the back end and target the front end I can use middleware to common updates.<p>Here's the most complex app I've made with it. The most complex part of the app is the match page. I just use morphdom for that part of the app and it makes it super easy, I just send the whole main part of the page back and let a dom diff happen.<p><a href="https://github.com/jon49/Soccer" rel="nofollow">https://github.com/jon49/Soccer</a></p>
]]></description><pubDate>Sun, 21 Dec 2025 06:15:05 +0000</pubDate><link>https://news.ycombinator.com/item?id=46342694</link><dc:creator>nymanjon</dc:creator><comments>https://news.ycombinator.com/item?id=46342694</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46342694</guid></item><item><title><![CDATA[New comment by nymanjon in "Serving the Back End from a Service Worker"]]></title><description><![CDATA[
<p>This is a offline-first PWA app where I serve the back end from a service worker using JS template literals to stream HTML. This uses a variant of HTMZ to increase the interactivity of the app along with Morphdom for DOM diffing.</p>
]]></description><pubDate>Wed, 19 Nov 2025 15:49:49 +0000</pubDate><link>https://news.ycombinator.com/item?id=45981040</link><dc:creator>nymanjon</dc:creator><comments>https://news.ycombinator.com/item?id=45981040</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45981040</guid></item><item><title><![CDATA[Serving the Back End from a Service Worker]]></title><description><![CDATA[
<p>Article URL: <a href="https://github.com/jon49/Soccer">https://github.com/jon49/Soccer</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=45981039">https://news.ycombinator.com/item?id=45981039</a></p>
<p>Points: 2</p>
<p># Comments: 1</p>
]]></description><pubDate>Wed, 19 Nov 2025 15:49:49 +0000</pubDate><link>https://github.com/jon49/Soccer</link><dc:creator>nymanjon</dc:creator><comments>https://news.ycombinator.com/item?id=45981039</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45981039</guid></item><item><title><![CDATA[New comment by nymanjon in "Marko – A declarative, HTML‑based language"]]></title><description><![CDATA[
<p>Mastro looks like what I do for my offline-first, rendered from Service Workers. I just compose html template string literals and stream them back to the front end. The lib I use for HTML is a bit more powerful though. It is a very elegant way to program.<p><a href="https://github.com/jon49/Soccer" rel="nofollow">https://github.com/jon49/Soccer</a></p>
]]></description><pubDate>Fri, 14 Nov 2025 16:22:31 +0000</pubDate><link>https://news.ycombinator.com/item?id=45928378</link><dc:creator>nymanjon</dc:creator><comments>https://news.ycombinator.com/item?id=45928378</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45928378</guid></item><item><title><![CDATA[New comment by nymanjon in "The 512KB Club"]]></title><description><![CDATA[
<p>I added one site that is mostly a static recipe site that my family uses. It includes VanJS to pick random recipes and you can save them as you go along to pick what you are planning for dinner that night. It also has a filter to find the recipes by name and a filter to filter by type. Mainly for personal use but shows what you can do with not a whole lot of code.[1]<p>I also added a question for my soccer app. Cloudflare doesn't know how to work with service worker-driven applications :-) This one puts the back end in the service worker and uses HTMZ-BE to make it feel like you are using an app. So, basically, a front end MPA with nice interactivity. Super light weight for what it does and easy to use.[2]<p>[1]: <a href="https://github.com/jon49/recipes" rel="nofollow">https://github.com/jon49/recipes</a><p>[2]: <a href="https://github.com/jon49/Soccer" rel="nofollow">https://github.com/jon49/Soccer</a></p>
]]></description><pubDate>Sun, 09 Nov 2025 00:42:48 +0000</pubDate><link>https://news.ycombinator.com/item?id=45861751</link><dc:creator>nymanjon</dc:creator><comments>https://news.ycombinator.com/item?id=45861751</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45861751</guid></item><item><title><![CDATA[New comment by nymanjon in "</> Htmx – The Fetch()ening"]]></title><description><![CDATA[
<p>With highly dynamic page where you would normally start using a front end lib, Idiomorph makes it so you can stick with the hypermedia approach instead.</p>
]]></description><pubDate>Wed, 05 Nov 2025 06:36:55 +0000</pubDate><link>https://news.ycombinator.com/item?id=45819977</link><dc:creator>nymanjon</dc:creator><comments>https://news.ycombinator.com/item?id=45819977</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45819977</guid></item><item><title><![CDATA[New comment by nymanjon in "</> Htmx – The Fetch()ening"]]></title><description><![CDATA[
<p>HTMZ-BE:<p><a id="contact1" href="/contact/1/edit" role="button">Edit</a><p>Hhhmmm..., that's more verbose than both :-(</p>
]]></description><pubDate>Wed, 05 Nov 2025 06:32:19 +0000</pubDate><link>https://news.ycombinator.com/item?id=45819943</link><dc:creator>nymanjon</dc:creator><comments>https://news.ycombinator.com/item?id=45819943</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45819943</guid></item><item><title><![CDATA[New comment by nymanjon in "</> Htmx – The Fetch()ening"]]></title><description><![CDATA[
<p>If you are looking for a very tiny foot print, you might like htmz-be.</p>
]]></description><pubDate>Wed, 05 Nov 2025 06:22:43 +0000</pubDate><link>https://news.ycombinator.com/item?id=45819886</link><dc:creator>nymanjon</dc:creator><comments>https://news.ycombinator.com/item?id=45819886</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45819886</guid></item><item><title><![CDATA[New comment by nymanjon in "React vs. Backbone in 2025"]]></title><description><![CDATA[
<p>I build most of my personal websites with service workers. No need for the framework, I just build it for the specific use case I have at the moment.<p>Here's an offline-first soccer app: <a href="https://github.com/jon49/Soccer" rel="nofollow">https://github.com/jon49/Soccer</a><p>And here's an MPA that caches the pages and save the updates for later when you are back online. So, you can navigate around and see the old data even if you are offline: <a href="https://github.com/jon49/cash" rel="nofollow">https://github.com/jon49/cash</a></p>
]]></description><pubDate>Tue, 28 Oct 2025 20:06:27 +0000</pubDate><link>https://news.ycombinator.com/item?id=45738393</link><dc:creator>nymanjon</dc:creator><comments>https://news.ycombinator.com/item?id=45738393</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45738393</guid></item><item><title><![CDATA[New comment by nymanjon in "React vs. Backbone in 2025"]]></title><description><![CDATA[
<p>No need for HTMX, HTMZ can get you most of the way there if it is going from simple MPA to slightly more complicated. I used a variation of HTMZ to make a offline-first soccer app I use for myself. I thought I would need to use a front end for the match play page, but, nope, I used Morphdom with HTMZ and I was able to keep the simplicity of templating and a back end.<p>[1]: <a href="https://github.com/jon49/htmz-be" rel="nofollow">https://github.com/jon49/htmz-be</a><p>[2]: <a href="https://github.com/jon49/Soccer" rel="nofollow">https://github.com/jon49/Soccer</a></p>
]]></description><pubDate>Tue, 28 Oct 2025 19:53:10 +0000</pubDate><link>https://news.ycombinator.com/item?id=45738184</link><dc:creator>nymanjon</dc:creator><comments>https://news.ycombinator.com/item?id=45738184</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45738184</guid></item><item><title><![CDATA[New comment by nymanjon in "Back-end driven HTMZ development"]]></title><description><![CDATA[
<p>My intent wasn't to say it is a Datastar replacement. Just to say that I used their idea of deciding where to place the returned HTML is based on the back end driving the decision, rather than the front end.<p>Datastar's model of doing it this way really simplifies the front end even more compared to HTMX's model of having the elements on the front end decide where to put the returned HTML.</p>
]]></description><pubDate>Mon, 27 Oct 2025 16:57:21 +0000</pubDate><link>https://news.ycombinator.com/item?id=45723375</link><dc:creator>nymanjon</dc:creator><comments>https://news.ycombinator.com/item?id=45723375</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45723375</guid></item><item><title><![CDATA[New comment by nymanjon in "Back-end driven HTMZ development"]]></title><description><![CDATA[
<p>When HTMZ was announced I thought it was a neat little script. But I didn't understand how this would be practical in the real world. This little "extension" makes it have the full power of hypermedia development but targeted from the back end (similar to data-star). The repository has a link to see the full interactive examples of how this works.<p><a href="https://jon49.github.io/htmz-be/" rel="nofollow">https://jon49.github.io/htmz-be/</a><p>I replaced my `html-form` library with this as it has a smaller foot print and, therefore, easier to maintain.</p>
]]></description><pubDate>Mon, 27 Oct 2025 16:40:34 +0000</pubDate><link>https://news.ycombinator.com/item?id=45723099</link><dc:creator>nymanjon</dc:creator><comments>https://news.ycombinator.com/item?id=45723099</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45723099</guid></item></channel></rss>