MurphyA/hacker-news huggingface dataset:
Show HN: I built a card-based eldritch IT support game in React
by euphoric_series | 2026-03-14 10:13:14+00:00
Hi HN,

I am the developer behind I.T. Never Ends. It is a card-based resource management game (heavily inspired by Reigns) where you work IT support for a corporation taken over by eldritch horrors. You balance ticket resolution, budget, and entropy while dealing with printers that violate causality.

I wanted to share a technical deep dive into how I built and packaged it, which I recently wrote about in a devlog: https://dadbodgames.itch.io/it-never-ends/devlog/1388428/bui...

Here is a quick overview of the technical architecture and some lessons learned from the process:

The Architecture:
The entire game is built in React and JavaScript. Under the hood, the game is essentially a giant state machine. While I have used engines like Godot for previous dynamic action titles, I am a full-stack developer by day (mostly NextJS). For a text-heavy, UI-driven game like this, I found the traditional object-oriented approach in standard engines required too much manual glue code to wire the game state to the UI. React's declarative approach using state as truth allowed me to iterate incredibly quickly on the content itself, which makes up 90% of the gameplay.

The Build Pipeline (Tauri vs. Electron):
Packaging a web application for Steam and the Steam Deck was the biggest hurdle. I ended up having to split my approach:

Windows: I use Tauri. It is significantly lighter and creates a much smaller binary by hooking into the OS webview.

Steam Deck / Linux: I had to switch to Electron. SteamOS does not have a reliable pre-installed webview for Tauri to hook into out of the box. To handle robust save data persistence without relying on heavy Node.js filesystem modules, I wrote a small "sidecar" binary in Rust. The Electron frontend talks to this sidecar via JSON-RPC to handle atomic writes to the disk, which keeps the game running at a smooth 60fps on the Deck.

The Data & Community Pricing:
I have been fortunate to see over 10,000 plays on the Itch web build in the last two months, plus another 3,000 players on the Steam demo since February 1st.

To gather player feedback efficiently at the edge, I built a custom system directly into the game client. The game has write-only access to a Supabase project. Players use an in-game, thematically fitting feedback form to submit friction points, purchase intent, and pricing data. This pipes directly into a Discord webhook via edge functions and is broadcasted live to our community. The idea is to let the community decide the final price of the game by popular vote (currently converging around the $12 to $13 mark).

You can play the free web build on Itch here: https://dadbodgames.itch.io/it-never-ends
There is also a standalone Steam demo if you prefer: https://store.steampowered.com/app/4225400/IT_Never_Ends/

I would love to hear your thoughts and am happy to answer any questions about the React state management, the Rust sidecar, or the Steam Deck build pipeline!
by figmert | 2026-03-14 10:13:22+00:00
One reason I got the Samsung S24 Ultra a couple of years ago is to run a full Linux desktop environment (via Termux), something you really can do. I even say it up, but I struggled to really get into it. Mostly because I banked on Nexdock, but it's trackpad is impossible.

That is to say, yes. And with that you can also run windows applications, e.g. through Winlator.

I was able to run Intellij IDEA, but of course ymmv as the application really has to be available for Android arm64.
by haritha-j | 2026-03-14 10:13:35+00:00
I'm surprised more people aren't talking about it. Like what do you mean you put an entire computer inside the monitor just to run the webcam? And at the very least, couldn't you have put in the A18 pro that you put in the neo? Did you really need more RAM and compute than the entire Neo uses to be a whole computer to drive a single webcam? In theory that thing could turn into iMac.
by crote | 2026-03-14 10:14:25+00:00
> removing the option of using wired headphones

I am personally a fan of wired headphones with USB-C connectors. I am only ever going to use it with my phone, laptop, or desktop anyways - and all of they have at least one USB-C port.

In theory it could also be the best option for audio quality: if you move the DAC all the way to the headphone itself you minimize the length of the analog chain, which should also reduce the possibility for it to pick up any kind of noise or interference. Additionally, the DAC can be perfectly tuned to compensate for any imperfections in the headset itself, which should result in a better audio output than a random 3.5mm headphone paired with a random external DAC.

The obvious downsides are that you lose any kind of influence on the audio signal itself by forcing you to use a specific DAC, that the integrated DAC is yet another component which can break and be basically impossible to replace, and that a 3.5mm plug is far less likely to break than a USB-C one.

On the absolutely high end you probably want headphone and DAC separate, but for a Teams call or some casual on-the-go Spotify a fully integrated mid-tier headset / headphone seems to be the better option to me.
by abbadadda | 2026-03-14 10:14:35+00:00
Great. Now do Roblox. In the game "Steal a Brainrot" the kinds of things kids can spend money on in the game that's supposedly safe for seven-year-olds is disgusting. £29.99 for a "secret lucky block" - and that's BEFORE price discrimination. Literally wiring the brains of kids as early as possible to have a tendency/preference towards "random variance rewards." I am really pleased to see any government doing something about this and protecting kids from this disgusting, predatory, and exploitative behavior.

By all means game developers deserve to make a living... However, if they're going to operate a casino, they should be treated and licensed as such.
by Huppie | 2026-03-14 10:15:05+00:00
More recently I've been doing the implement phase without resetting the whole context when context is still < 60% full and must say I find it to be a better workflow in many cases (depends a bit on the size of the plan I suppose.)

It's faster because it has already read most relevant files, still has the caveats / discussion from the research phase in its context window, etc.

With the context clear the plan may be good / thorough but I've had one too many times that key choices from the research phase didn't persist because halfway through implementation Opus runs into an issue and says "You know what? I know a simpler solution." and continues down a path I explicitly voted down.
by bonoboTP | 2026-03-14 10:15:23+00:00
Too many people stay in academia out of inertia and being comfortable with the "school" mode of existence and are afraid of the broad wide world and the decisions involved. They finish their masters and liked the classes and the thesis topic and so they stay.

But as you said, a PhD is quite different than all schooling before that. And that's good. A PhD is supposed to signify that you contributed new scientific value as judged by the expert international community, not just your teacher. Of course there are many wrinkles on this story like sloppy knee-jerk reviews etc.

But anything in life where you "just show up" and fulfill some explicit assignments tends not to be very valuable. If just showing up and doing what someone else decided for you is enough for a thing, that thing will lose value very soon. Similarly if you make sure almost everyone can do it, it won't have value, but will become a participation trophy.

But nothing in real life work like that. School is fake. You don't get a job just by showing up or having a diploma. Nobody will fall in love and start a relationship/family with you for showing up and fulfilling some list of criteria. Nobody will fund your startup or strike a business deal with your company because you showed up and did some assigned tasks.

In almost all aspects of life being proactive and exercising agency will get you much further than the teacher's pet mindset that school instills. And unfortunately rather than selecting for it, the PhD selects against such agency again because it's the safe option and people who are ready for an adventure usually dislike the academic environment. Not all of couse, I obviously don't mean every single person fits this. But in my experience this explains part of the mismatch in expectations and reality for the "I was a good student so a PhD felt natural" people. Not those come into the PhD with a well thought out plan, and knowing exactly why they want to pursue it, the upsides and downsides etc.
by allreduce | 2026-03-14 10:15:50+00:00
Not all software development will be automated immediatly. But I've noticed that many skills I've built are lessened in worth with every model release.

Having a lot of specifics about a programming environment memorized for example used to be the difference between building something in a few hours and a week, but now is pretty unimportant. Same with being able to do some quick data wrangling on the command line. LLMs are also good at parsing a lot of code or even binary format quickly and explaining how it works. That used to be a skill. Knowing a toolbox of technologies to use is needed less. Et cetera.

They haven't come for the meat of what makes a good engineer yet. For example, the systems-level interfacing with external needs and solving those pragmatically is still hard. But the tide is rising.
by yoopla_dev | 2026-03-14 10:16:46+00:00
Hi HN,

This is Yoopla, a platform with more than 400 free tools for developers and creators.

Examples include JSON formatting, Base64 encoding, UUID generation, password tools, image converters and many more.

Most tools run entirely client-side and don’t require any login.

The idea was to create a fast toolbox for everyday tasks without ads or friction.

Would love to hear your feedback.

https://www.yoopla.net
by latexr | 2026-03-14 10:16:53+00:00
Are you interest in arguing in good faith, or just being snarky on the internet? That doesn’t contradict the point in the slightest. In fact, it supports it. Or did you conveniently forget the book burnings?

Evil people use records in evil ways, righteous people use them in righteous ways.

Again, them being perishable being a feature or a bug depends entirely on what the records hold and who is interpreting the event.
by ralferoo | 2026-03-14 10:17:07+00:00
It's just one more thing to buy and lose. I know I own both Apple's lightning-to-3.5mm adapter and the USB-C-to-3.5mm. Right now, I know where my nice big-cans headphones are, but it's not with either adapter. I'm pretty such I know where my cheap wireless buds are. The lightning adapter should live in the same travel pouch, but I'm not 100% sure if it's there because I frequently use those with devices that have a 3.5mm jack, so they might have been separated. I know for a fact my USB-C-to-3.5mm adapter has been separated, and I've not seen it for over a year. I know it's in the house somewhere, so I certainly wouldn't buy another one (especially considering how infrequently I used it before), but I have no idea where it is and so if I did want to use my iPad with my nice headphones, I can't.

Contrast that to the simplicity with devices that still have a 3.5mm phone - my daily Android phone, my Macbook Air - I can just plug any old headphones in and not have to go searching for the adapter.

And despite the fact that I also own two bluetooth headphones, my wired big-cans headphones have far superior sound quality to either of them. I know it's not a fair comparison because they were well over $100 compared to $10 for the others, but I'm still limited to what I can use them with - which in my case is absolutely everything except my Apple kit (laptop excepted).
by hrmtst93837 | 2026-03-14 10:18:31+00:00
Maxing out context is only useful if all the information is directly relevant and tightly scoped to the task. The model's performance tends to degrade with too much loosely related data, leading to more hallucinations and slower results. Targeted chunking and making sure context stays focused almost always yields better outcomes unless you're attempting something atypical, like analyzing an entire monorepo in one shot.
by Aardwolf | 2026-03-14 10:18:31+00:00
"The dangling cables of wired headphones are a must-have fashion accessory in 2026"

Gee, is that the kind of stuff that makes people want this, rather than actual usefulness related reasons?

I want it because I don't want yet another thing to have to charge, and because I'd want to be able to throw some cheap headphones in my backpack that I can use the one time in a month that I actually need them in combination with a phone (which of course isn't possible anymore today)

Also, why are ANC headphones today worse for gaming than in the year 2018 when they supported aptx that had less lag? Technology is going backwards?
by RobertSerber | 2026-03-14 10:20:35+00:00
Yes — that layer is part of the runtime design. The AI never mutates structure directly. It only proposes a DSL change, which goes through a deterministic compile pipeline before it becomes canonical.

Schema evolution is treated as a runtime operation with versioning, migration logs, and a deterministic state hash (dslHash). Every compile produces a new schema version and writes a structured change plan to dsl_change_log, so structural mutations are fully auditable.

There’s also a cryptographic validation attestation step: the compiled DSL is hashed and attested so the runtime can verify that the schema being executed is exactly the one that passed the pipeline. That prevents unauthorized structural drift outside the compiler path.

Breaking changes, data compatibility, and migrations are evaluated before commit, so structural mutations are gated much like data mutations.

The stack to support this is admittedly quite complex, but most of that complexity lives in the runtime so the AI-facing interface can remain simple and safe. The big shift was treating AI as proposing structure, but never owning execution.

One thing I'm still unsure about is where the long-term governance layer should live once models can mutate system structure — inside the runtime itself, or higher up at the application/policy level. Curious how others are thinking about that boundary.
by kakacik | 2026-03-14 10:20:53+00:00
This. We moved to 'agile' roughly at same time llms started coming. You know who is mostly missing from the wider IT teams landscape now? Most of PMs and BAs, on purpose. Who is keeping their work - devs or more like devops, surprisingly testers (since our stuff seems ridiculously complex to test well for many use cases and we can't just break our bank by destroying production by fast half-assed deliveries).

And then admins/unix/network/windows/support team, nobody replacing those anytime soon. Those few PMs left are there only for big efforts requiring organizing many teams, and we rarely do those now.

I don't like it, chasing people, babysitting processes and so on, but certainly just more work for me.
by ChrisMarshallNY | 2026-03-14 10:21:51+00:00
I’ve never had an SSD crap out because of read/write cycle exhaustion, and I’ve been using SSD almost exclusively, for over a dozen years. I’ve had plenty of spinning rust ones croak, though. You don’t solder those in, so it’s not really a fair comparison.

I did have one of those dodgy Sandisks, but that was a manufacturing defect.
by keithnz | 2026-03-14 10:22:13+00:00
I didn't miss the point, it just feels like the people saying that really aren't using these tools as it just is not my experience at all. I've been a Vim user for multi decades now. There's just no way, it's far easier to type a prompt except maybe if you know exactly what file and exactly where in the file, you might be able to do it as fast as telling the AI to do it. It's not hard to get a minor fix done with a prompt and doesn't take too much English in my experience.
by mort96 | 2026-03-14 10:24:12+00:00
No, you can't argue that the best medium is dirt. Just like you can't argue that the best medium is vinyl.

But you could maybe argue that there are advantages to dirt (at least a hypothetical dirt which can be used as a musical medium somehow) which you lose by going to CD or vinyl. If this hypothetical dirt managed to be constraining in such a way that it produces kinds of musical works which would not have been produced for CD, is that not an advantage?
by tlonny | 2026-03-14 10:24:52+00:00
HN may not be “mainstream” but it is certainly _very_ vulnerable to bot spam given the topics discussed and the make-up of the audience.

You can already see it happening now - at least the bots that write like vanilla Claude/ChatGPT. Presumably there is a much larger hidden cohort of bots that are instructed to talk more naturally and thus are better adept at flying under the radar…
by consp | 2026-03-14 10:25:52+00:00
No clue about the actual reliability of this[1] article but the mechanism mentioned (new pathways due to changes in crystalline structure due to uneven heating) sounds possible.

1. https://incompliancemag.com/how-and-why-varistor-failure-occ...

Reread your wondering and now conclude its about chained situations which this also does not answer.
by stared | 2026-03-14 10:26:33+00:00
> The main problem is that you were raised in a school system where if you show up, study and do your assignments you are pretty much guaranteed to succeed sooner or later. A PhD is not like that.

It was not my case and bold of you to assume so. I had peer-reviewed publications before I even applied for PhD.

While I do know some people who expected PhD to be "more classes with more difficult assignments", the mast majority of PhDs I know had nothing to do with mentality you described.
by fjfaase | 2026-03-14 10:26:35+00:00
I think Frank Herbert was not interested in how the Jihad could work out, but just used it in his plot. The science in Dune does not work. (One example are the stillsuits.) He is not a 'hard' S.F. author, but more of a political and psychology author. It is that what makes this story stand out.
by baq | 2026-03-14 10:26:59+00:00
yeah gemini is dumb when you tell it to do stuff - but the things it finds (and critically confirms, including doing tool calls while validating hypotheses) in reviews absolutely destroy both gpt and opus.

if you're a one-model shop you're losing out on quality of software you deliver, today. I predict we'll all have at least two harness+model subscriptions as a matter of course in 6-12 months since every model's jagged frontier is different at the margins, and the margins are very fractal.
by armchairhacker | 2026-03-14 10:27:02+00:00
Web of trust weakens anonymity, but doesn’t eliminate it.

- You know who your online invitees are, but not your invitees-of-invitees-of-…

- You can create an account, get it invited, then create an alt account and invite it. Now the alt account is still linked to you, but others don’t know whether it’s your friend or yourself. (Importantly, you can’t evade bans with alts; if your invited users keep getting banned, you’ll be prevented from inviting more if not banned yourself)
by codingdave | 2026-03-14 10:27:02+00:00
Show HNs have been getting slammed/spammed with low-effort projects, often from new accounts, often more about trying to do marketing than engage with the community. Because of that, there was definitely discussion of putting some limits on who can post them. I have no direct knowledge of what change they may have put in, but from your description, it looks like they went ahead and added some limits.
by alembic_fumes | 2026-03-14 10:27:14+00:00
> Software enables the enforcement of arbitrary rules that no human being would have the heart or foolishness to enforce.

For a long time I've been wanting to write an essay about this exact topic. Once you start paying attention, it's everywhere: the automatic upselling attempts at self-service kiosks, the automatic pre-filled tipping inputs in the card payment terminals, and some horribly long forms that require extremely pedantic input filled just correctly, that no human would bother on paper.

I've come to think of this as a kind of automated tyranny. Few real humans would have the heart to keep trying to upsell with such persistence when most of their customers reject the sale. And very few humans would dare to ask every single human to tip a pre-filled amount of 10% or even up in such a bold manner. But because "the machine does it", there's no alternative but to accept it, or to boycott the machines.

My condolences to the author for having to witness their children live through such an experience. It sounds like hell.
by dijit | 2026-03-14 10:28:48+00:00
sadly, a nice idea that is painfully naive with how computers are used in reality.

One need only remember how easy it was to take over IRC channels with a few hundred bots to see the endgame of this rationale… it cannot be patched out, it’s inherent to the internet.

That which would make a vote valid; can (and will) be gamed.
by alpaca128 | 2026-03-14 10:29:11+00:00
Because that small audio jack converter cannot drive my wired headphones, so now it's not a small dongle but another smartphone-sized gadget with usually another rechargeable battery, and at that point I might as well use my laptop as portable music player.

And if you ever held e.g. Apple's adapter in your hand you'll know how incredibly flimsy its cable is, and how such adapters easily act as levers to mechanically strain the USB-C port.
There's a reason headphone jacks are robust - they were actually designed for use with audio devices in mind.
by drcongo | 2026-03-14 10:29:32+00:00
Could be pure coincidence, but my Claude Code session last night was an absolute nightmare. It kept forgetting things it had done earlier in the session and why it had done them, messed up a git merge so badly that it lost the CLAUDE.md file along with a lot of other stuff, and then started running commands on the host machine instead of inside the container because it no longer had a CLAUDE.md to tell it not to. Last night was the first time I've ever sworn at it.
by anonnon | 2026-03-14 10:29:39+00:00
> The MIT license

I still can't believe that developers got memed into this being the default license. 20 years ago, you'd always default to GPL and only opt for something else if it was a complete non-starter, and then you'd turn to LGPL (e.g., if it was a C library), and failing that, some BSD variant. But developers were always cautious to prefer GPL wherever they could to prevent exploitation and maximize user freedom.

It's crazy that even in compiled languages like Rust, MIT is now the default, though I think that's probably due to the lack of a stable ABI complicating dynamic linking enough to make LGPL less viable.
by LoganDark | 2026-03-14 10:29:41+00:00
I can think of new colors, but I don't have a way to relate them to stimuli I've experienced, which makes it difficult to make sense of them the same way I can recall seeing existing colors. Still, I and many others have a notion of color that encompasses more than what my eyes can actually see, and I even have some friends that see much, much more in terms of color (such as texture, sensation, etc.)
by ChrisMarshallNY | 2026-03-14 10:30:26+00:00
This strikes me as a bit of a “camel’s nose” kind of thing. Once a protected market starts getting flooded with crap, the bottom falls out. We’ve seen this many times, throughout history. Usually, a small number of folks get very rich, though.

One reason that US-flagged shipping is more expensive, is because we have stricter requirements than many other nations. It’s not a guarantee of safety (Exxon Valdez, anyone?), but it does raise the floor. That’s why you have all these whacky-flagged rustbuckets [barely] floating around (occasionally with disastrous consequences).