Vai al contenuto principale

#webdev

(Note: This is the untold story behind the KAVLR launch. If you haven't read the main post, check it out here: [Link to main KAVLR post])

Building a

Altro...

(Note: This is the untold story behind the KAVLR launch. If you haven't read the main post, check it out here: [Link to main KAVLR post])

Building a product is not about writing the first line of code. It’s about surviving the 100th bug.

Here is the story of how I accidentally created a "Terminal Immortal" and spent two days fighting a zombie process on my $150 Android phone.

Act I: The Creation and the Betrayal
It started with a simple goal: build a leash for AI agents. I wrote the code, connected it to Supabase, and created the Bash hook.

The first time I typed cat .env and saw the glowing red [BLOCKED], I felt like a god. I had built a security system on a $150 phone.

But I made a fatal design choice: Fail-Closed. If the server goes down, the hook blocks the command to keep the user safe.
I didn't realize that the "user" would eventually be me.

Act II: The Cloud Despair
I wanted the world to use it, so I moved the backend to the cloud. I tried Vercel. 502 Bad Gateway. I tried Railway. FUNCTION_INVOCATION_FAILED.
I was staring at a 5% battery icon, watching my terminal crash over and over. I felt like David fighting Goliath, except Goliath had infinite cloud credits and I had a 4G connection that kept dropping.

Then, I pivoted to Supabase Edge Functions. It worked. The API was alive.

Act III: The Terminal Immortal
That’s when the real monster woke up.

I tried to read my index.js file to fix a bug, and the terminal printed:
🔍 KAVLR analyzing: ""...
❌ KAVLR Backend Offline or Error. Blocking command.

My own security system locked me out of my own code.

I tried to delete the broken script. Blocked.
I tried to edit my .bashrc. Blocked.
I tried to use cat to look at the file. Blocked.

The Terminal Immortal had taken over. It was a zombie process—a ghost script that refused to die. Even when I deleted the files, Bash held onto the memory. Even when I overwrote the NPM package, the corrupted cache fought back.

I spent hours pasting Python scripts, only for Termux to mangle the text into a single line. I watched my index.js file get corrupted because my own hook intercepted the cat > index.js command and wrote error messages into the file instead of the code.

I was fighting a hydra. Every time I cut off a head, two more grew back.

Act IV: The Epiphany
I was exhausted. I opened a clean terminal session and ran a grep command to find where the ghost was hiding.

grep -rn "analyzing:" /data/data/com.termux/files/home/

And there it was. A trail of corrupted files. index.js was poisoned. node_modules was duplicated. Aliases were stacked 13 layers deep.

I realized I couldn't just patch the bug. I had to perform surgery.
I nuked the .bashrc. I deleted the rogue node_modules. I rewrote the CLI using Base64 to bypass Termux's text-mangling. I manually recreated the symlinks. I cleared the Bash hash table (hash -r).

Act V: The Victory
I held my breath and typed:
kavlr hook cat ~/kavlr/index.js

The screen printed my Express code. The file was alive.
I typed:
kavlr hook cat .env

The screen lit up with red: 🛑 [BLOCKED] THREAT DETECTED.

The Terminal Immortal was dead. The ghost was exorcised.

The Reflection
I am 12 years old. I just spent my entire weekend fighting a zombie process in a mobile terminal.

To every developer out there fighting their own "Terminal Immortal": Don't stop. The bug is stubborn, but you are stubborn and smart. And when you finally see that code print correctly, you will feel like you own the world.

We are HYNAWEB. We don't surrender to ghosts.

🐯️🚀
Iam 12 . I Built a Security Tool So Good It Locked Me Out of My Own Terminal for 48 Hours

#cybersecurity #python #software #coding #community #webdev #engineering #development #programming #inclusive

0

Caricamento...

0
1

Caricamento...

Split Ninja: taglia online video e audio al volo e in totale privacy
@diggita@mastodon.social

https

Altro...

Split Ninja: taglia online video e audio al volo e in totale privacy
@diggita@mastodon.social

https://webappsmagazine.blogspot.com/2026/10/split-ninja-taglia-online-video-e-audio.html

#tech #privacy #video #webdev #tool #multimedia

3

Caricamento...

0
1

Caricamento...

Auto Post: genera e pubblica automaticamente articoli SEO sul tuo blog a costo zero
#

Altro...

Auto Post: genera e pubblica automaticamente articoli SEO sul tuo blog a costo zero
@diggita@mastodon.social

https://webappsmagazine.blogspot.com/2026/10/auto-post-genera-e-pubblica.html

#tech #intelligenzaartificiale #blogging #webdev #digitalmarketing #seo #contentmarketing

4

Caricamento...

0
1

Caricamento...

, especially fedi:

is it possible, using only CSS available to all major browsers, to have an element be of height "whatever smallest

Altro...

, especially fedi:

is it possible, using only CSS available to all major browsers, to have an element be of height "whatever smallest multiple of a length will fit the element's content"? if so, how?

if I were to use experimental features, I could do this with height: calc-size(fit-content, round(size, 1.5rem));. calc-size is not yet available in firefox and safari though

#webdev #askfedi

4

Caricamento...

0
7

Caricamento...

Publii: il CMS desktop Open Source che rivoluziona i siti statici
@opensource@diggi

Altro...

Publii: il CMS desktop Open Source che rivoluziona i siti statici
@opensource@diggita.com

https://webappsmagazine.blogspot.com/2026/09/publii-il-cms-desktop-open-source-che.html

#opensource #privacy #software #selfhosted #blogging #webdev #cms

7

Caricamento...

0
2

Caricamento...

I'm happy to admit that I am an amateur in the original sense of the word: "to love."

Whether through web development and Python, or astronomy and ph

Altro...

I'm happy to admit that I am an amateur in the original sense of the word: "to love."

Whether through web development and Python, or astronomy and photography, my aim is to explore these subjects simply for the pure enjoyment of learning and discovery.

#python #photography #astronomy #webdev

0

Caricamento...

0
0

Caricamento...