<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: pst</title><link>https://news.ycombinator.com/user?id=pst</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Thu, 09 Apr 2026 18:21:53 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=pst" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by pst in "Datastar: Lightweight hypermedia framework for building interactive web apps"]]></title><description><![CDATA[
<p>I've been building a frontend with Go, Templ and Datastar for a few months now. I really like the @actions and how the page is updated with the response.<p>I'm on the fence about signals though. They are fine for simple things like individual text form fields or opening closing a drop-down. But my backend is a Kubernetes style API server. And storing a JSON Kubernetes style resource in a signal does not work because of how Datastar implements parsing the structure into child signals. For me it would be better to just be able to turn this off.<p>One example where it breaks are K8s labels. They are map[string]string and the key is often hostname prefixed. E.g. example.com/label-key. Datastar can't handle these keys at all and the resulting signals are a mess.<p>I'm aware that I may be using signals not as intended. But something as simple as data-signals-resource="k8sJson" and then data-bind="resource.metatdata.name" is a great way to work. And it works for metadata name. But it doesn't work if any part of the path needs to be an index in a list or a label key in hostname style.<p>The other thing I find painful about Datastar signals are the magic about how attributes written something-something in HTML become somethingSomething in JS and all all the snake, camel etc. __modifiers. It's just error prone to work with. Not a great experience.<p>But overall I still stuck with it so far and am happy with the general idea of HTMX and Alpine functionalities implemented as one and using hypermedia as a general approach. Anything so I can avoid the NodeJS ecosystem really.<p>When a few RCs back the wire format changed, it was quite a laborious update for me, because using Fiber I can't use the Go SDK and implemented my own. But the wire format clearly changed for the better so it was worth it.<p>I think the developers are on to something and should keep iterating.</p>
]]></description><pubDate>Fri, 10 Oct 2025 22:27:03 +0000</pubDate><link>https://news.ycombinator.com/item?id=45544553</link><dc:creator>pst</dc:creator><comments>https://news.ycombinator.com/item?id=45544553</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45544553</guid></item><item><title><![CDATA[New comment by pst in "Stategraph: Terraform state as a distributed systems problem"]]></title><description><![CDATA[
<p>This is awesome. Having a single state for all resources in an environment is critical for keeping all the moving pieces in check and a core design aspect of Kubestack. But the growing state files quickly become a bottleneck. I'm definitely giving this a good test drive. Very excited.</p>
]]></description><pubDate>Wed, 17 Sep 2025 09:55:42 +0000</pubDate><link>https://news.ycombinator.com/item?id=45273809</link><dc:creator>pst</dc:creator><comments>https://news.ycombinator.com/item?id=45273809</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45273809</guid></item><item><title><![CDATA[New comment by pst in "The Deletion of Docker.io/Bitnami"]]></title><description><![CDATA[
<p>A lot of work that apparently is not valued enough to justify paying for.</p>
]]></description><pubDate>Thu, 28 Aug 2025 12:38:58 +0000</pubDate><link>https://news.ycombinator.com/item?id=45051426</link><dc:creator>pst</dc:creator><comments>https://news.ycombinator.com/item?id=45051426</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45051426</guid></item><item><title><![CDATA[New comment by pst in "The Deletion of Docker.io/Bitnami"]]></title><description><![CDATA[
<p>You're not wrong. They add miniscule value. But what does that say about the people using these images who are now struggling to replace them?</p>
]]></description><pubDate>Thu, 28 Aug 2025 11:18:59 +0000</pubDate><link>https://news.ycombinator.com/item?id=45050800</link><dc:creator>pst</dc:creator><comments>https://news.ycombinator.com/item?id=45050800</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45050800</guid></item><item><title><![CDATA[New comment by pst in "Show HN: templUI – The UI Kit for templ (CLI-based, like shadcn/UI)"]]></title><description><![CDATA[
<p>Everything under internal did discourage me from trying templUI too. What's the reason for it?</p>
]]></description><pubDate>Fri, 30 May 2025 22:48:13 +0000</pubDate><link>https://news.ycombinator.com/item?id=44140507</link><dc:creator>pst</dc:creator><comments>https://news.ycombinator.com/item?id=44140507</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44140507</guid></item><item><title><![CDATA[New comment by pst in "Show HN: templUI – The UI Kit for templ (CLI-based, like shadcn/UI)"]]></title><description><![CDATA[
<p>I'm working on an application and use Fiber, Templ and Datastar to keep my frontend in Go, like my backend. I'm overall quite happy with this approach.<p>But Datastar tries to do both, AlpineJS stuff like show/hide dropdow options, as well as HTMX stuff like talk to backend and merge/replace parts of the DOM.<p>I came across TemplUI a few times while working on this app so far. But always felt the Vanilla JS plus HTMX approach of TemplUI conflicts with Datastar. Too much overlap in different components doing the same stuff for my taste. While at the same time, I spent way too much time converting Tailwind UI components into Tempo. Time I could spend better.<p>Datastar is quite on the experimental/unstable side of things. And its concept of signals doesn't quite work for my Kubernetes style API resources. So maybe I need to revisit this decision at some point.<p>What I really like about Datastar and what made me choose it in the first place is how easy it makes using server sent events.<p>So yeah, exciting times. Still some rough edges I would say. But for me personally I already prefer hypermedia over the predominant React frontends approach.</p>
]]></description><pubDate>Fri, 30 May 2025 22:41:38 +0000</pubDate><link>https://news.ycombinator.com/item?id=44140466</link><dc:creator>pst</dc:creator><comments>https://news.ycombinator.com/item?id=44140466</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44140466</guid></item><item><title><![CDATA[New comment by pst in "AWS Icon Quiz"]]></title><description><![CDATA[
<p>But is the icon going to be a syringe, a pill or a tombstone?</p>
]]></description><pubDate>Fri, 01 Sep 2023 05:09:04 +0000</pubDate><link>https://news.ycombinator.com/item?id=37347020</link><dc:creator>pst</dc:creator><comments>https://news.ycombinator.com/item?id=37347020</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=37347020</guid></item><item><title><![CDATA[Ask HN: How to ensure correct access across all SaaS services]]></title><description><![CDATA[
<p>Here's the problem, whenever I get onboarded to a new team, it's an endless stream or asking someone to be added to this other GHE repository, get access to a specific Jira board or be added to the correct AAD group so I can access the K8s namespaces.<p>SSO only makes sure I have an identity in each of these. But granting access to all the various things any team member needs requires the identity to be added to (tool specific) groups/teams/whatever. It seems all the companies large and small I have worked for so far rely on peers or managers to maintain this manually. What better options have you seen?</p>
<hr>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=36611711">https://news.ycombinator.com/item?id=36611711</a></p>
<p>Points: 1</p>
<p># Comments: 0</p>
]]></description><pubDate>Thu, 06 Jul 2023 05:35:52 +0000</pubDate><link>https://news.ycombinator.com/item?id=36611711</link><dc:creator>pst</dc:creator><comments>https://news.ycombinator.com/item?id=36611711</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=36611711</guid></item><item><title><![CDATA[New comment by pst in "Show HN: Torb – make Kubernetes DevOps easier"]]></title><description><![CDATA[
<p>We've got some overlap on the stack part. But I am more focused on the infra side of platform engineering (including bootstrapping clusters), seems for you it's more app dependencies. Check <a href="https://www.kubestack.com" rel="nofollow">https://www.kubestack.com</a> and ping me if you're interested in chatting.</p>
]]></description><pubDate>Sun, 23 Apr 2023 15:43:30 +0000</pubDate><link>https://news.ycombinator.com/item?id=35677199</link><dc:creator>pst</dc:creator><comments>https://news.ycombinator.com/item?id=35677199</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=35677199</guid></item><item><title><![CDATA[Terraform Platform Engineering Framework]]></title><description><![CDATA[
<p>Article URL: <a href="https://www.kubestack.com/">https://www.kubestack.com/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=35495619">https://news.ycombinator.com/item?id=35495619</a></p>
<p>Points: 3</p>
<p># Comments: 0</p>
]]></description><pubDate>Sat, 08 Apr 2023 17:32:35 +0000</pubDate><link>https://www.kubestack.com/</link><dc:creator>pst</dc:creator><comments>https://news.ycombinator.com/item?id=35495619</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=35495619</guid></item><item><title><![CDATA[New comment by pst in "DWARF-Based Stack Walking Using eBPF"]]></title><description><![CDATA[
<p>Giving teams more insights into their apps at runtime without requiring changes to the apps is as close as one gets to a superpower.</p>
]]></description><pubDate>Tue, 29 Nov 2022 16:05:47 +0000</pubDate><link>https://news.ycombinator.com/item?id=33789276</link><dc:creator>pst</dc:creator><comments>https://news.ycombinator.com/item?id=33789276</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=33789276</guid></item><item><title><![CDATA[New comment by pst in "The best Go framework: no framework?"]]></title><description><![CDATA[
<p>It's funny, as someone proposing frameworks make sense in IaC (Terraform in my case), how the framework/no-framework topic apparently never gets old.</p>
]]></description><pubDate>Tue, 29 Nov 2022 13:18:38 +0000</pubDate><link>https://news.ycombinator.com/item?id=33787201</link><dc:creator>pst</dc:creator><comments>https://news.ycombinator.com/item?id=33787201</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=33787201</guid></item><item><title><![CDATA[New comment by pst in "Terraform should have remained stateless"]]></title><description><![CDATA[
<p>But if you create a configmap to store that label isn't that state? It may be more lightweight than what Terraform or Helm store, but it's still state.</p>
]]></description><pubDate>Sun, 29 May 2022 13:52:40 +0000</pubDate><link>https://news.ycombinator.com/item?id=31549123</link><dc:creator>pst</dc:creator><comments>https://news.ycombinator.com/item?id=31549123</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=31549123</guid></item><item><title><![CDATA[New comment by pst in "Terraform should have remained stateless"]]></title><description><![CDATA[
<p>Yes, conditionals and loops in TF are limited and have various annoying and surprising edge cases. But if something is hard to do with the Terraform DSL it's usually a good idea to reconsider if it is really something that one should be doing.<p>We want infrastructure automation to be boring and just work.<p>The risk with general purpose programming languages is that people will always find a way to outsmart themselves. Yes, sure, you can use the testing tool chain of the language of your choosing. But it's not like we have figured out to write software without bugs, despite all the awesomeness of modern languages.</p>
]]></description><pubDate>Sat, 28 May 2022 13:27:46 +0000</pubDate><link>https://news.ycombinator.com/item?id=31540172</link><dc:creator>pst</dc:creator><comments>https://news.ycombinator.com/item?id=31540172</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=31540172</guid></item><item><title><![CDATA[New comment by pst in "Terraform should have remained stateless"]]></title><description><![CDATA[
<p>Flux, IIRC, uses labels or annotations to do purging. Helm I'd argue falls into the state category with the secrets if uses to track releases.<p>I do everything with Terraform so I'm not super familiar with either of them. But teams are free to choose their poison.</p>
]]></description><pubDate>Sat, 28 May 2022 13:14:31 +0000</pubDate><link>https://news.ycombinator.com/item?id=31540092</link><dc:creator>pst</dc:creator><comments>https://news.ycombinator.com/item?id=31540092</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=31540092</guid></item><item><title><![CDATA[New comment by pst in "Terraform should have remained stateless"]]></title><description><![CDATA[
<p>It's not trivial to get the labels correct to avoid collateral deletions. Also, while it makes sense, I and many teams I consulted with found it rather unintuitive that apply --purge with a label selector will also only update resources with the label. Not all resources that are in the list of resources. Last time I checked it was also still marked experimental and has been for years.</p>
]]></description><pubDate>Sat, 28 May 2022 13:10:15 +0000</pubDate><link>https://news.ycombinator.com/item?id=31540058</link><dc:creator>pst</dc:creator><comments>https://news.ycombinator.com/item?id=31540058</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=31540058</guid></item><item><title><![CDATA[New comment by pst in "Terraform should have remained stateless"]]></title><description><![CDATA[
<p>Keeping the tombstones around in the configuration I have to maintain instead of the state the tool maintains for me also increases the effort for me though. So either I have the effort of setting up the remote state and handling some edge cases. Or handling the shortcomings of stateless in my own code base.</p>
]]></description><pubDate>Sat, 28 May 2022 13:04:51 +0000</pubDate><link>https://news.ycombinator.com/item?id=31540024</link><dc:creator>pst</dc:creator><comments>https://news.ycombinator.com/item?id=31540024</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=31540024</guid></item><item><title><![CDATA[New comment by pst in "Terraform should have remained stateless"]]></title><description><![CDATA[
<p>Yes, but setting up and handling edge cases of Terraform state causes the effort. Once you have it, storing just IDs or more doesn't make a difference anymore.</p>
]]></description><pubDate>Sat, 28 May 2022 13:03:01 +0000</pubDate><link>https://news.ycombinator.com/item?id=31540012</link><dc:creator>pst</dc:creator><comments>https://news.ycombinator.com/item?id=31540012</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=31540012</guid></item><item><title><![CDATA[New comment by pst in "Terraform should have remained stateless"]]></title><description><![CDATA[
<p>This doesn't work unless your infrastructure is entirely static. As soon as you have active control loops like e.g. an autoscaler it will create resources that you don't know about and would then delete.</p>
]]></description><pubDate>Sat, 28 May 2022 06:09:35 +0000</pubDate><link>https://news.ycombinator.com/item?id=31538008</link><dc:creator>pst</dc:creator><comments>https://news.ycombinator.com/item?id=31538008</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=31538008</guid></item><item><title><![CDATA[New comment by pst in "Terraform should have remained stateless"]]></title><description><![CDATA[
<p>The delete this approach is imperative though. If you aim to be declarative you need a way for the tool to be able to determine actions necessary to go from current to new desired configuration. You need to store previous applied config somewhere, to be able to determine if something needs purging in a declarative way.</p>
]]></description><pubDate>Sat, 28 May 2022 05:58:23 +0000</pubDate><link>https://news.ycombinator.com/item?id=31537970</link><dc:creator>pst</dc:creator><comments>https://news.ycombinator.com/item?id=31537970</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=31537970</guid></item></channel></rss>