<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: mb2100</title><link>https://news.ycombinator.com/user?id=mb2100</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Fri, 17 Apr 2026 13:47:05 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=mb2100" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by mb2100 in "TanStack Start Now Support React Server Components"]]></title><description><![CDATA[
<p>Agree that TypeScript is nice, especially for sharing templates and types between server and client. But you can still use TypeScript on the server without sending it all to the client, and without a complex and insecure protocol like RSC. I’m working on making this as simple and dependency-free as possible: <a href="https://mastrojs.github.io" rel="nofollow">https://mastrojs.github.io</a></p>
]]></description><pubDate>Tue, 14 Apr 2026 14:31:12 +0000</pubDate><link>https://news.ycombinator.com/item?id=47766163</link><dc:creator>mb2100</dc:creator><comments>https://news.ycombinator.com/item?id=47766163</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47766163</guid></item><item><title><![CDATA[New comment by mb2100 in "The End of Eleventy"]]></title><description><![CDATA[
<p>That was exactly my experience as well, hence I created a "Minimal Astro": <a href="https://mastrojs.github.io" rel="nofollow">https://mastrojs.github.io</a></p>
]]></description><pubDate>Mon, 13 Apr 2026 11:01:11 +0000</pubDate><link>https://news.ycombinator.com/item?id=47750294</link><dc:creator>mb2100</dc:creator><comments>https://news.ycombinator.com/item?id=47750294</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47750294</guid></item><item><title><![CDATA[Deno Employees Leave]]></title><description><![CDATA[
<p>Article URL: <a href="https://dbushell.com/notes/2026-03-18T07:00Z/">https://dbushell.com/notes/2026-03-18T07:00Z/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=47426555">https://news.ycombinator.com/item?id=47426555</a></p>
<p>Points: 6</p>
<p># Comments: 1</p>
]]></description><pubDate>Wed, 18 Mar 2026 14:53:39 +0000</pubDate><link>https://dbushell.com/notes/2026-03-18T07:00Z/</link><dc:creator>mb2100</dc:creator><comments>https://news.ycombinator.com/item?id=47426555</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47426555</guid></item><item><title><![CDATA[New comment by mb2100 in "A simple web we own"]]></title><description><![CDATA[
<p>Yeah, for that a git-based CMS like Sveltia is really nice.<p>And for people that actually want to learn a bit of HTML, CSS and JavaScript, Mastro JS is as simple a static site generator as I could make it.</p>
]]></description><pubDate>Tue, 24 Feb 2026 10:33:37 +0000</pubDate><link>https://news.ycombinator.com/item?id=47135361</link><dc:creator>mb2100</dc:creator><comments>https://news.ycombinator.com/item?id=47135361</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47135361</guid></item><item><title><![CDATA[New comment by mb2100 in "Modern CSS Code Snippets: Stop writing CSS like it's 2015"]]></title><description><![CDATA[
<p>if you're not using CSS modules, why would you import the css file into your javascript?
But anyway, I think we agree. Feel free to read the linked blog post ;-)</p>
]]></description><pubDate>Mon, 16 Feb 2026 20:32:05 +0000</pubDate><link>https://news.ycombinator.com/item?id=47039940</link><dc:creator>mb2100</dc:creator><comments>https://news.ycombinator.com/item?id=47039940</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47039940</guid></item><item><title><![CDATA[New comment by mb2100 in "Modern CSS Code Snippets: Stop writing CSS like it's 2015"]]></title><description><![CDATA[
<p>button, .button { /* my button styles */ }</p>
]]></description><pubDate>Mon, 16 Feb 2026 20:30:19 +0000</pubDate><link>https://news.ycombinator.com/item?id=47039920</link><dc:creator>mb2100</dc:creator><comments>https://news.ycombinator.com/item?id=47039920</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47039920</guid></item><item><title><![CDATA[New comment by mb2100 in "Modern CSS Code Snippets: Stop writing CSS like it's 2015"]]></title><description><![CDATA[
<p>If everything in your code is a React component, I get why you would just want to write the styles right there.[0]
Then again, why write `<Button>` if you could just write `<button>` and style it with standard CSS.<p>[0]: <a href="https://mastrojs.github.io/blog/2025-11-27-why-not-just-use-inline-styles-tailwind/" rel="nofollow">https://mastrojs.github.io/blog/2025-11-27-why-not-just-use-...</a></p>
]]></description><pubDate>Mon, 16 Feb 2026 10:43:31 +0000</pubDate><link>https://news.ycombinator.com/item?id=47033472</link><dc:creator>mb2100</dc:creator><comments>https://news.ycombinator.com/item?id=47033472</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47033472</guid></item><item><title><![CDATA[New comment by mb2100 in "[dead]"]]></title><description><![CDATA[
<p>In Unix, everything is a file. In Mastro, everything is an HTTP route. You use the standards-based Request/Response-API not only for writing your server, but also for static site and asset generation. And it's beautiful.</p>
]]></description><pubDate>Fri, 30 Jan 2026 10:53:09 +0000</pubDate><link>https://news.ycombinator.com/item?id=46822887</link><dc:creator>mb2100</dc:creator><comments>https://news.ycombinator.com/item?id=46822887</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46822887</guid></item><item><title><![CDATA[New comment by mb2100 in "Android’s desktop interface leaks"]]></title><description><![CDATA[
<p>Tell me you're nostalgic for Win95 without telling me...</p>
]]></description><pubDate>Thu, 29 Jan 2026 12:43:51 +0000</pubDate><link>https://news.ycombinator.com/item?id=46809431</link><dc:creator>mb2100</dc:creator><comments>https://news.ycombinator.com/item?id=46809431</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46809431</guid></item><item><title><![CDATA[New comment by mb2100 in "The Overcomplexity of the Shadcn Radio Button"]]></title><description><![CDATA[
<p>As company size grows, managers want to settle on a "standardized" tech stack that doesn't get in the way when they want to hire and fire people at will.<p>Nobody was ever fired for choosing React (or IBM). But everyone can get fired when they're working on a React app.</p>
]]></description><pubDate>Tue, 20 Jan 2026 16:40:51 +0000</pubDate><link>https://news.ycombinator.com/item?id=46693989</link><dc:creator>mb2100</dc:creator><comments>https://news.ycombinator.com/item?id=46693989</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46693989</guid></item><item><title><![CDATA[New comment by mb2100 in "jQuery 4"]]></title><description><![CDATA[
<p>That's a very nice pattern indeed. If you add signals, the update function even gets called automatically. That's basically what we do in [Reactive Mastro](<a href="https://mastrojs.github.io/reactive/" rel="nofollow">https://mastrojs.github.io/reactive/</a>) ;-)</p>
]]></description><pubDate>Sun, 18 Jan 2026 13:35:31 +0000</pubDate><link>https://news.ycombinator.com/item?id=46667702</link><dc:creator>mb2100</dc:creator><comments>https://news.ycombinator.com/item?id=46667702</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46667702</guid></item><item><title><![CDATA[New comment by mb2100 in "Cloudflare acquires Astro"]]></title><description><![CDATA[
<p>that very much depends on your definition of "modern web framework".</p>
]]></description><pubDate>Sat, 17 Jan 2026 17:18:47 +0000</pubDate><link>https://news.ycombinator.com/item?id=46659788</link><dc:creator>mb2100</dc:creator><comments>https://news.ycombinator.com/item?id=46659788</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46659788</guid></item><item><title><![CDATA[New comment by mb2100 in "Cloudflare acquires Astro"]]></title><description><![CDATA[
<p>Congrats to Fred and team! Developing and maintaining a complex framework takes lots of funding, and I’m glad Astro found a new home that provides that.<p>With [Mastro], we have a different approach. The name originally stood for "minimal Astro", and we’re staying true to that. At just ~700 lines of TypeScript, Mastro will always be easily maintainable – even if by just a single person. And it's amazing how much you can do if you're very deliberate in your API's design.<p>[Mastro]: <a href="https://mastrojs.github.io/" rel="nofollow">https://mastrojs.github.io/</a></p>
]]></description><pubDate>Fri, 16 Jan 2026 18:41:05 +0000</pubDate><link>https://news.ycombinator.com/item?id=46650185</link><dc:creator>mb2100</dc:creator><comments>https://news.ycombinator.com/item?id=46650185</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46650185</guid></item><item><title><![CDATA[New comment by mb2100 in "Ruby website redesigned"]]></title><description><![CDATA[
<p>It even loads the code snippets in separate HTTP requests :-(
But the snippets themselves are really good! I'm going to update mine on <a href="https://mastrojs.github.io" rel="nofollow">https://mastrojs.github.io</a></p>
]]></description><pubDate>Sun, 21 Dec 2025 16:30:28 +0000</pubDate><link>https://news.ycombinator.com/item?id=46345978</link><dc:creator>mb2100</dc:creator><comments>https://news.ycombinator.com/item?id=46345978</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46345978</guid></item><item><title><![CDATA[New comment by mb2100 in "Ask HN: What Are You Working On? (December 2025)"]]></title><description><![CDATA[
<p><a href="https://mastrojs.github.io" rel="nofollow">https://mastrojs.github.io</a><p>The simplest web framework and site generator yet – no leaky abstractions between you and the high-performance engine that is a modern browser.</p>
]]></description><pubDate>Mon, 15 Dec 2025 12:35:11 +0000</pubDate><link>https://news.ycombinator.com/item?id=46273672</link><dc:creator>mb2100</dc:creator><comments>https://news.ycombinator.com/item?id=46273672</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46273672</guid></item><item><title><![CDATA[New comment by mb2100 in "JSDoc is TypeScript"]]></title><description><![CDATA[
<p>This. Or use ts-blank-space if you prefer TypeScript over JSDoc. That's what we do in <a href="https://mastrojs.github.io" rel="nofollow">https://mastrojs.github.io</a></p>
]]></description><pubDate>Mon, 15 Dec 2025 10:06:58 +0000</pubDate><link>https://news.ycombinator.com/item?id=46272480</link><dc:creator>mb2100</dc:creator><comments>https://news.ycombinator.com/item?id=46272480</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46272480</guid></item><item><title><![CDATA[New comment by mb2100 in "Bureau of Meteorology's new boss asked to examine $96M bill for website redesign"]]></title><description><![CDATA[
<p>It has data-drupal attributes in the source. Not sure where the Perl and Java things would have come from.</p>
]]></description><pubDate>Mon, 24 Nov 2025 14:04:41 +0000</pubDate><link>https://news.ycombinator.com/item?id=46034230</link><dc:creator>mb2100</dc:creator><comments>https://news.ycombinator.com/item?id=46034230</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46034230</guid></item><item><title><![CDATA[New comment by mb2100 in "The fate of "small" open source"]]></title><description><![CDATA[
<p>I totally agree that the goal should be teaching. But I do wonder which code someone is more likely to actually read and understand: the LLM-generated one in their own codebase, or the one hidden in some npm package they installed to just ship things. I honestly don’t know. Careless devs probably won’t read either as long as it seems to work<p>I’ve been trying to encourage forking my libraries, or have people just copy them into their codebase and adapt them, e.g. <a href="https://github.com/mastrojs/mastro/" rel="nofollow">https://github.com/mastrojs/mastro/</a> (especially the “extension” libs.) But it’s an uphill battle against the culture of convenience over understanding.</p>
]]></description><pubDate>Tue, 18 Nov 2025 10:44:44 +0000</pubDate><link>https://news.ycombinator.com/item?id=45963491</link><dc:creator>mb2100</dc:creator><comments>https://news.ycombinator.com/item?id=45963491</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45963491</guid></item><item><title><![CDATA[New comment by mb2100 in "Marko – A declarative, HTML‑based language"]]></title><description><![CDATA[
<p>Thanks, this one? <a href="https://github.com/jon49/html-template-tag-async" rel="nofollow">https://github.com/jon49/html-template-tag-async</a>
Looks very similar indeed! What makes it "more powerful" than Mastro's html template?</p>
]]></description><pubDate>Sat, 15 Nov 2025 16:21:13 +0000</pubDate><link>https://news.ycombinator.com/item?id=45938463</link><dc:creator>mb2100</dc:creator><comments>https://news.ycombinator.com/item?id=45938463</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45938463</guid></item><item><title><![CDATA[New comment by mb2100 in "Marko – A declarative, HTML‑based language"]]></title><description><![CDATA[
<p>Since we're sharing HTML in JS syntaxes. Don't forget JS tagged template literals like <a href="https://jsr.io/@mastrojs/mastro/doc/~/html" rel="nofollow">https://jsr.io/@mastrojs/mastro/doc/~/html</a></p>
]]></description><pubDate>Sun, 09 Nov 2025 12:42:41 +0000</pubDate><link>https://news.ycombinator.com/item?id=45865150</link><dc:creator>mb2100</dc:creator><comments>https://news.ycombinator.com/item?id=45865150</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45865150</guid></item></channel></rss>