How I turned IV infusion chair downtime into an interactive experience with no prior web development experience.
There is a particular kind of stillness that settles over an infusion clinic.
Patients sit in chairs for hours, connected to an IV line, watching a bag of medication slowly drain. They might scroll their phone. They might stare at the ceiling. They might quietly wonder what exactly is happening inside their body right now.
I am a pharmacist. I have answered that question plenty of times.
But I kept coming back to a different version of it: what if the answer could show itself?
That question became Dosecraft: Infusion Arcade.
The Idea
Dosecraft is not a course. It is not a quiz. It is not a health education module hiding behind arcade colors.
The idea is more specific than that: a phone-based game patients can play while they are actively receiving an IV medication. The game runs alongside the infusion and uses arcade mechanics to represent what the medication is doing.
A beta-lactam antibiotic weakens the bacterial cell wall, so that game becomes a wall-breaking mechanic. Vancomycin blocks a key building block in cell wall synthesis, so that game plays differently. Daptomycin disrupts the bacterial membrane, so the game has to show insertion, membrane disruption, and loss of membrane potential.
The pharmacology drives the design. That has been the main rule from the beginning.
I do not want Dosecraft to be a generic game with medical vocabulary sprinkled on top. The goal is for the gameplay itself to carry the concept.
The Problem: I Had Never Built a Website
I am a pharmacist, not a software developer.
When I started, I had essentially no web development experience. GitHub, repositories, JavaScript, service workers, browser caching, deployment workflows, and mobile formatting were all new territory.
The gap between “I have an idea” and “this is a working website” felt pretty ridiculous.
I started anyway.
The first version was intentionally simple: React loaded through a CDN, Babel running in the browser, and most of the project living in one JavaScript file. It was not the fanciest setup, but it let me start building without getting buried in tooling before I understood what I was doing.
That choice helped me move quickly, but it also taught me that early shortcuts can become load-bearing walls.
One of the first real technical lessons came from an unpinned CDN dependency. Babel updated, my project silently broke, and I spent hours trying to understand why something that had worked before suddenly did not. The fix was simple once I found it: pin the version.
The lesson stuck harder than the fix.
Invisible failures are some of the worst failures. And “it worked yesterday” is not a debugging strategy.
Building the Game Around the Drug
The project grew one medication class at a time.
The beta-lactam game became a brick-breaker style mode where the player weakens bacterial cell wall structures. Vancomycin required a different approach because the drug is not just smashing an existing wall; it is interfering with the building process. Daptomycin became more layered because its mechanism naturally unfolds in phases. IVIG forced a completely different design because immunoglobulin therapy is not antibacterial in the same way.
That was one of the more interesting parts of the process. The science started telling me what the game should become.
As a pharmacist, I am used to asking whether an explanation is accurate. This project has forced me to ask a second question:
Is this explanation playable?
A medically accurate paragraph can still be bad education if no one wants to read it, or if it makes sense only to someone who already understands the topic. Dosecraft has pushed me to think less like I am writing a lecture and more like I am building a mental model someone can interact with.
That balance is harder than I expected.
Accuracy matters. But so does clarity. So does pacing. So does font size. So does whether the person in the chair can understand what is happening without me standing there explaining it.
The Infusion Companion
The part that made the project feel more real was the infusion companion mode.
Patients can choose their infusion duration, such as 30 minutes, 1 hour, 2 hours, or 3 hours. The app then tracks real elapsed infusion time while they play. An IV bag drains on screen. Progress messages appear as the infusion continues. The game round is not separate from the treatment time; it sits beside it.
That distinction matters.
Dosecraft is not trying to be an app store game that happens to mention medications. It is designed for the infusion chair. The patient is there for the medication. The game exists to make that time more understandable and, hopefully, a little less empty.
Building that feature also taught me a practical design lesson: infusion session state and game round state have to stay separate. Ending a game round should not interfere with the infusion timer. The timer represents the real-world treatment session, so the app needs to treat it as its own thing.
That sounds obvious now. It was less obvious before I had to build around it.
Learning With AI Without Letting AI Drive
AI tools have been a huge part of this process. I have used ChatGPT, Claude, GitHub Copilot, and other tools to help generate code, troubleshoot bugs, explain concepts, and think through design.
They have helped a lot.
They have also caused problems.
The biggest lesson has been that AI works best as a collaborator, not an autopilot. It can produce code quickly, but that does not mean the code fits the project. It can misunderstand the goal. It can overcomplicate simple features. It can drift the game toward something more generic. It can confidently give an answer that sounds right until the browser disagrees.
The more I learn, the better I get at using AI correctly. I am learning to ask smaller questions, give better context, test everything, and avoid blindly pasting code I do not understand.
I still do not know JavaScript anywhere near the way an actual developer does. But I know a lot more than I did two weeks ago, and I am starting to understand the shape of the problems.
That feels like progress.
What I Have Learned So Far
The biggest thing I have learned is that building software is not just writing code.
It is systems thinking.
A change in one file can affect another file. A browser may keep using an old cached version. A service worker can preserve something you thought you replaced. An audio system can behave differently on mobile because the browser requires a user gesture. A game mechanic that makes sense in your head can confuse someone using it for the first time.
The work is less “type code, get app” and more “make a series of decisions, then discover which decisions were secretly connected.”
That part has been frustrating, but also weirdly familiar. Pharmacy is systems thinking too. Medication choice, dosing, labs, access, insurance, compounding, administration, monitoring, patient understanding. None of it happens in isolation.
The tools are different, but the mindset is not completely foreign.
What Is Next
Right now, the goal is not to build the perfect version.
The goal is to build the smallest useful version that can answer a few important questions:
Does this make infusion therapy feel more approachable? Does it help explain the medication? Is it easy enough to use without me explaining it? Is it engaging enough that a patient would actually want to keep playing?
The next steps are clinical accuracy review, cleaner onboarding, better mobile usability, more consistent tutorials, and real feedback from actual users.
There are plenty of bigger ideas waiting in line: more drugs, more polished animations, better audio, provider-facing versions, and maybe eventually a more advanced simulation model.
But for now, I am trying to keep the focus where it belongs.
Build for the chair.
Not the app store. Not the pitch deck. Not the imaginary perfect version.
The chair.
That is where the idea started, and that is where it needs to prove itself.
Dosecraft is still early. It is rough in places. It will probably change several more times.
But two weeks ago, this was mostly an idea in my head.
Now it is something I can open on my phone.
That feels worth documenting.
Dosecraft: Infusion Arcade is built under SharpRX Interactive and is available at dosecraft.io. It is designed for use during active IV infusion treatments and is not a medical education platform, clinical decision support tool, or substitute for professional medical guidance.