Skip to main content

Inside Birdie: Injecting JS & Manipulating DOM in Runtime

Author
psilore
Lead developer and systems engineer. Passionate about retro computing, Linux environments, and automation frameworks.

When you are managing dozens of clients who refuse to install your chat widget correctly, you either waste hours debugging their code or you build a tool to inject it yourself. This is the story of Birdie.

During my time as a software engineer building chat experiences, I hit a massive bottleneck: almost every client had a completely custom, fragmented setup for hosting their websites.

I needed a way to speed up my workflow by viewing and manipulating the DOM directly on the client’s website in real-time. Since I was managing 6 to 10 clients at any given time, and few were willing (or knew how) to install our chat framework themselves, setup was stressful, tedious, and filled with friction.

So, I built Birdie to help me automate the setup.


The Ban from the Chrome Web Store
#

Banned by Google: Unsurprisingly, Google did not appreciate an extension with direct runtime DOM manipulation and script injection capabilities. Birdie was ripped from the Chrome Web Store with zero explanation.

While Google likely flagged it as a potential security risk (since it could technically be used maliciously), it was an absolute lifesaver for my day-to-day work. It took the pressure off and brought peace of mind in one of the most demanding agency environments I’ve ever experienced.

Here is a look at the original interface and capabilities:

Birdie Chrome extension user interface
Birdie Extension UI - Overview and connection state
Birdie DOM inspector panel
DOM inspection and configuration panel
Birdie script execution options
Runtime JavaScript execution parameters

The Legacy of Birdie
#

Because of Chrome’s strict security policies, I eventually had to strip out the extension’s best features—removing the Web Store APIs and direct write-access DOM manipulation.

The result of that migration was a read-only successor. You can read about its successor here: Magpie.


Over to You
#

Have you ever built a developer utility that was just a bit too powerful for public app stores? How do you handle client onboarding friction? Let me know in the comments below!