So, I spent some time today messing around with this thing people are calling the ‘marcus button’. Honestly, I heard about it and thought, “how hard can a button be?”. Turns out, it was a bit more fiddly than I expected.

Getting Started
Alright, first thing I did was set up my usual workspace. Just the basics, nothing fancy. I had a rough idea of what this button was supposed to do – not just a simple click, but something with a bit more… personality, let’s say. Needed it to react kinda specifically.
I pulled up my code editor and started slapping together the basic structure. Just a standard button element, you know? Added the usual event listener. Click this, do that. Easy peasy, or so I thought.
Hitting a Wall
Then came the tricky part. The requirement wasn’t just a single action. It needed to trigger a sequence, one after another, with pauses. My first attempt was messy. I tried chaining functions, using timeouts. Man, it looked ugly and felt fragile. Stuff wasn’t firing in the right order. Sometimes it worked, sometimes it just didn’t. Really annoying.
I spent a good hour just tweaking timings and rewriting the logic. It felt like I was wrestling with spaghetti code I’d just made myself. You click the button, and maybe the first thing happens, but the second gets lost, or everything fires at once. Debugging was a pain because the timing issues were inconsistent.
Trying Different Stuff
Okay, deep breath. Threw out the first approach. Thought maybe I needed a more structured way. Started thinking about promises or async functions. Seemed like overkill for a button, but hey, the simple way wasn’t cutting it.

So, I refactored. Made the sequence handling a bit cleaner. Defined each step clearly. Used async/await to manage the flow. This felt better. More organized, at least. It looked less like a hack.
- First action needed to complete.
- Then a specific pause.
- Then the second action.
- Another pause, maybe shorter.
- Finally, the last action.
Testing this felt more reliable. The steps were executing in order. Much better than the timeout chaos.
Finally Got It Working
After a bit more testing and refining the delays, it started behaving exactly like I wanted. Click the ‘marcus button’, and boom-pause-boom-pause-boom, just like clockwork. It wasn’t rocket science in the end, but it definitely needed a more considered approach than just slapping a click handler on.
So yeah, that was my little adventure with the ‘marcus button’. Started simple, got complicated, then found a cleaner path. It works now, looks okay in the code too. Always good when you wrestle something into submission. Another day, another small win.