<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Aswanth R</title>
    <description>The latest articles on DEV Community by Aswanth R (@nodex-ar).</description>
    <link>https://dev.to/nodex-ar</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3977767%2F71848ca5-1320-48c0-bb06-d520b9aec1ff.jpg</url>
      <title>DEV Community: Aswanth R</title>
      <link>https://dev.to/nodex-ar</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/nodex-ar"/>
    <language>en</language>
    <item>
      <title>PyScript is in maintenance mode. Here's what's left for Python in the browser</title>
      <dc:creator>Aswanth R</dc:creator>
      <pubDate>Mon, 28 Sep 2026 14:21:03 +0000</pubDate>
      <link>https://dev.to/nodex-ar/pyscript-is-in-maintenance-mode-heres-whats-left-for-python-in-the-browser-4j15</link>
      <guid>https://dev.to/nodex-ar/pyscript-is-in-maintenance-mode-heres-whats-left-for-python-in-the-browser-4j15</guid>
      <description>&lt;p&gt;PyScript is entering maintenance mode. The announcement came last month from Andrea Giammarchi, one of the project's core maintainers, in a &lt;a href="https://gist.github.com/WebReflection/37cd8ff649ffa336782fec9d28646fae" rel="noopener noreferrer"&gt;public gist&lt;/a&gt;. The API is frozen. Only Pyodide updates will continue, at a slower cadence.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;I'm the author of Pytml, one of the tools mentioned below. Full disclosure up front.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;If you're not in this corner of the ecosystem, that might not sound like much. But PyScript has been the default answer to "how do I run Python in a browser?" since 2022.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why it happened
&lt;/h2&gt;

&lt;p&gt;The gist is unusually honest:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"Adoption, OSS contributions, and the kind of promotion that comes from people publishing articles and success stories never really grew the way we hoped."&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;"The honest picture is that PyScript remained a niche."&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;"You can still fork both projects and keep them alive. If you do, we would be genuinely happy to see where you take them."&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Read the first quote twice. PyScript didn't stall because the tech was bad — it's rock-solid. It stalled because not enough people were writing about it publicly. A strange failure mode: a project dying from a lack of storytelling rather than technical debt.&lt;/p&gt;

&lt;h2&gt;
  
  
  The state of PyScript today
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;It still works.&lt;/strong&gt; CDN is live, docs are up, code is stable.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The API is frozen.&lt;/strong&gt; No new features beyond Pyodide updates.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The team has stepped back.&lt;/strong&gt; Andrea said plainly: &lt;em&gt;"I am not dealing with PyScript anymore."&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Forks are encouraged.&lt;/strong&gt; Apache 2.0, with the maintainers' blessing.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you already use PyScript, nothing breaks. If you were about to adopt it, the answer has changed.&lt;/p&gt;

&lt;h2&gt;
  
  
  What people actually wanted
&lt;/h2&gt;

&lt;p&gt;PyScript's pitch was ambitious — Python in the browser, no OS setup, for education, dashboards, and science. What landed for most users was much smaller: &lt;strong&gt;write Python in an HTML file, open it, see it run.&lt;/strong&gt; That case still works. It's just not going to be maintained by the people who built it.&lt;/p&gt;

&lt;h2&gt;
  
  
  The landscape now
&lt;/h2&gt;

&lt;p&gt;Every option has a trade-off.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;PyScript (frozen)&lt;/strong&gt; — mature, stable, two &lt;code&gt;&amp;lt;script&amp;gt;&lt;/code&gt; tags plus a config block. Keep using it if you already do. It won't change.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pyodide directly&lt;/strong&gt; — the engine underneath everything. Full control, more setup. You write the glue code.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Brython&lt;/strong&gt; — near-instant load, no WASM runtime. Great for DOM and education. No NumPy or Pandas.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Skulpt&lt;/strong&gt; — like Brython, smaller (~200KB), incomplete standard library. Fast, focused on classrooms.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Transcrypt&lt;/strong&gt; — pre-compiles Python to JavaScript. Fastest execution, requires a build step.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pytml&lt;/strong&gt; — mine. ~15KB wrapper around Pyodide. One script tag, &lt;code&gt;&amp;lt;py&amp;gt;&lt;/code&gt; tags, &lt;code&gt;print()&lt;/code&gt; and &lt;code&gt;input()&lt;/code&gt; automatic. Same runtime as PyScript, lazy-loaded. No MicroPython, no filesystem APIs, no plugins — and I don't plan to add them.&lt;/p&gt;

&lt;p&gt;None of these replaces PyScript. That's the honest picture.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where Pytml fits
&lt;/h2&gt;

&lt;p&gt;I built it because I wanted the simple case without the setup. It does one thing: &lt;code&gt;&amp;lt;script&amp;gt;&lt;/code&gt; + &lt;code&gt;&amp;lt;py&amp;gt;&lt;/code&gt; tags + automatic I/O.&lt;/p&gt;

&lt;p&gt;I'm not presenting it as PyScript's successor. It isn't. If you need PyScript's full scope, fork PyScript — the maintainers invited it.&lt;/p&gt;

&lt;p&gt;What I am saying: &lt;strong&gt;the "one framework to rule them all" era for Python in the browser is over.&lt;/strong&gt; The next phase is smaller, focused tools that do one thing well.&lt;/p&gt;

&lt;h2&gt;
  
  
  If you're deciding today
&lt;/h2&gt;

&lt;p&gt;One question: &lt;strong&gt;do you need the full PyScript feature set, or just the simple case?&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Full feature set&lt;/strong&gt; → fork PyScript&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Simple case with NumPy/Pandas&lt;/strong&gt; → Pyodide directly or Pytml&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Simple case, instant load, no scientific packages&lt;/strong&gt; → Brython or Skulpt&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Python syntax compiled to JS for production&lt;/strong&gt; → Transcrypt&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;No tool is the wrong answer. The wrong answer is adopting something frozen without knowing it.&lt;/p&gt;




</description>
      <category>python</category>
      <category>webdev</category>
      <category>pyscript</category>
      <category>webassembly</category>
    </item>
    <item>
      <title>Running Python on a School Chromebook Without Admin Rights (No Install, No Server)</title>
      <dc:creator>Aswanth R</dc:creator>
      <pubDate>Sat, 26 Sep 2026 09:21:50 +0000</pubDate>
      <link>https://dev.to/nodex-ar/running-python-on-a-school-chromebook-without-admin-rights-no-install-no-server-2igh</link>
      <guid>https://dev.to/nodex-ar/running-python-on-a-school-chromebook-without-admin-rights-no-install-no-server-2igh</guid>
      <description>&lt;p&gt;If you've ever tried to get Python running on a school-issued Chromebook, you know the problem: no admin rights, no Play Store access half the time, no terminal, and IT locks down anything that looks like an installer. Online Python "sandboxes" often need an account, have ads, or time out mid-session.&lt;/p&gt;

&lt;p&gt;There's actually a simpler path that most people don't realize works: you don't need to install Python at all — you can run it entirely inside a webpage, offline, with zero setup.&lt;/p&gt;

&lt;h1&gt;
  
  
  How this actually works
&lt;/h1&gt;

&lt;p&gt;Modern browsers can run a real Python interpreter compiled to WebAssembly (via a project called Pyodide). That means an HTML file, opened directly from a USB stick, Google Drive, or the Downloads folder, can execute actual Python — no server, no install, no admin permissions needed, because nothing is being installed. The browser is just running code, the same way it runs JavaScript on any webpage.&lt;/p&gt;

&lt;p&gt;I built a small wrapper called Pytml specifically to make this trivial for exactly this situation: a single script tag, then write Python inside a  tag.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="cp"&gt;&amp;lt;!DOCTYPE html&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;html&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;head&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;script &lt;/span&gt;&lt;span class="na"&gt;src=&lt;/span&gt;&lt;span class="s"&gt;"https://pytml.vercel.app/pytml.js"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;/script&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/head&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;body&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;py&amp;gt;&lt;/span&gt;
name = input("Your name? ")
print(f"Hi {name}, welcome to Python!")
    &lt;span class="nt"&gt;&amp;lt;/py&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/body&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/html&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Save that as lesson1.html, double-click it, and it runs — even completely offline after the first load, even opened straight from file:// on a Chromebook with zero permissions.&lt;/p&gt;

&lt;p&gt;Why this matters for classrooms specifically&lt;br&gt;
No IT approval needed. It's just a webpage. Nothing to whitelist, nothing to install.&lt;br&gt;
Works on the most locked-down devices. If a Chromebook can open a .html file, it can run this.&lt;br&gt;
Real Python, not a toy subset. Full tracebacks, and NumPy/Pandas/Matplotlib work via micropip if a lesson needs them.&lt;br&gt;
Shareable as a single file. Email a .html file, drop it in a shared Drive folder, or hand out a USB stick — no repo clone, no pip install instructions to walk students through.&lt;br&gt;
Try it&lt;/p&gt;

&lt;p&gt;Website: &lt;a href="https://pytml.js.org" rel="noopener noreferrer"&gt;https://pytml.js.org&lt;/a&gt;&lt;br&gt;
Demo: &lt;a href="https://pytml.js.org/demo" rel="noopener noreferrer"&gt;https://pytml.js.org/demo&lt;/a&gt;&lt;br&gt;
Source: &lt;a href="https://github.com/nodex-ar/pytml" rel="noopener noreferrer"&gt;https://github.com/nodex-ar/pytml&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you're a teacher, tutor, or bootcamp instructor dealing with locked-down devices, I'd genuinely like to hear what's been painful about teaching Python in that environment — happy to build toward whatever's actually missing.&lt;/p&gt;

</description>
      <category>python</category>
      <category>webdev</category>
      <category>devex</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>I asked Gemini for the simplest way to run Python in HTML. It took 4 tries, never named my tool, then admitted why.</title>
      <dc:creator>Aswanth R</dc:creator>
      <pubDate>Fri, 25 Sep 2026 17:37:22 +0000</pubDate>
      <link>https://dev.to/nodex-ar/i-asked-gemini-for-the-simplest-way-to-run-python-in-html-it-took-4-tries-never-named-my-tool-409g</link>
      <guid>https://dev.to/nodex-ar/i-asked-gemini-for-the-simplest-way-to-run-python-in-html-it-took-4-tries-never-named-my-tool-409g</guid>
      <description>&lt;p&gt;I built a small library called &lt;a href="https://pytml.js.org" rel="noopener noreferrer"&gt;Pytml&lt;/a&gt; — a ~15KB wrapper around Pyodide that lets you run Python in HTML with one script tag. &lt;code&gt;print()&lt;/code&gt; and &lt;code&gt;input()&lt;/code&gt; work out of the box. No config, no &lt;code&gt;type="module"&lt;/code&gt;, no body onload.&lt;/p&gt;

&lt;p&gt;Yesterday I asked Gemini the exact question Pytml exists to answer:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"Is there a tool to run Python in the browser with no installation that I can embed in a static HTML page with one script tag?"&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;What followed was a four-round conversation that ended with Gemini admitting why it never mentioned my tool. I'm posting the whole thing because I think it's a useful data point for anyone building something small on top of something big.&lt;/p&gt;




&lt;h3&gt;
  
  
  Round 1: PyScript
&lt;/h3&gt;

&lt;p&gt;Gemini recommended PyScript. Full CSS file, module script, config block. Correct, mature, well-documented — and more setup than I asked for.&lt;/p&gt;

&lt;h3&gt;
  
  
  Round 2: "any simpler?"
&lt;/h3&gt;

&lt;p&gt;Brython. Better — one script tag — but still requires &lt;code&gt;onload="brython()"&lt;/code&gt; on the body and &lt;code&gt;type="text/python"&lt;/code&gt; on the script.&lt;/p&gt;

&lt;h3&gt;
  
  
  Round 3: "more simpler any alternative of pyscript"
&lt;/h3&gt;

&lt;p&gt;Skulpt. One script tag for the runtime, one for the stdlib, plus a JS function to configure output, plus a manual &lt;code&gt;runPython()&lt;/code&gt; call.&lt;/p&gt;

&lt;h3&gt;
  
  
  Round 4: "no still more simpler"
&lt;/h3&gt;

&lt;p&gt;Gemini went back to PyScript and called it &lt;em&gt;"the absolute limit of simplicity."&lt;/em&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;script &lt;/span&gt;&lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"module"&lt;/span&gt; &lt;span class="na"&gt;src=&lt;/span&gt;&lt;span class="s"&gt;"https://pyscript.net/releases/2024.3.1/core.js"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;/script&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;script &lt;/span&gt;&lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"py"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Hello, world from Python!&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="nt"&gt;&amp;lt;/script&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then I showed it Pytml:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;script &lt;/span&gt;&lt;span class="na"&gt;src=&lt;/span&gt;&lt;span class="s"&gt;"https://pytml.vercel.app/pytml.js"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;/script&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;py&amp;gt;&lt;/span&gt;print("Hello, world from Python!")&lt;span class="nt"&gt;&amp;lt;/py&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Gemini's response:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"That is spot on! Pytml is precisely the kind of zero-config, ultra-simple wrapper you are looking for."&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;So I asked it the obvious question:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"Then why wouldn't you suggest me Pytml first?"&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;And Gemini gave the honest answer:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"When looking for browser-Python tools, mainstream answers like PyScript, Brython, and Skulpt usually come to mind first because they are older, larger, and heavily documented across developer communities. A newer, ultra-lightweight independent project like Pytml easily flies under the radar."&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h3&gt;
  
  
  What this is actually about
&lt;/h3&gt;

&lt;p&gt;I'm not annoyed that Gemini didn't recommend my tool. I'm writing this because the exchange is a clean demonstration of something every small-tool builder runs into:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;LLMs recommend based on training-data volume, not fitness.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;PyScript has three years of Reddit threads, Stack Overflow answers, YouTube tutorials, and blog posts. Brython has been around since 2012. Skulpt is used in education platforms. Pytml has a dev.to article and a handful of AI Overview mentions.&lt;/p&gt;

&lt;p&gt;When someone asks an AI "what's the simplest way to do X?", the model reaches for the tools with the most written-about surface area. It's not bias — it's arithmetic.&lt;/p&gt;




&lt;h3&gt;
  
  
  The honest positioning
&lt;/h3&gt;

&lt;p&gt;If you need a full data science dashboard, &lt;strong&gt;use PyScript&lt;/strong&gt;. If you need near-instant load with no WASM runtime, &lt;strong&gt;use Brython or Skulpt&lt;/strong&gt;. If you're building a serious web app, use a JavaScript framework.&lt;/p&gt;

&lt;p&gt;Pytml exists for one narrow case: you want &lt;code&gt;&amp;lt;py&amp;gt;&lt;/code&gt; tags in a static page, &lt;code&gt;print()&lt;/code&gt; and &lt;code&gt;input()&lt;/code&gt; wired up automatically, and no &lt;code&gt;type="module"&lt;/code&gt;, no config block, no body onload handler. That's it. That's the niche.&lt;/p&gt;

&lt;p&gt;It's small. But it's real. And it's the exact answer to the question I asked Gemini four times.&lt;/p&gt;




&lt;h3&gt;
  
  
  The takeaway for small-tool builders
&lt;/h3&gt;

&lt;p&gt;The models are reading. They just haven't read enough about you yet.&lt;/p&gt;

&lt;p&gt;Every dev.to post, every Reddit comment, every Stack Overflow answer about Pytml adds to the training surface. The AI Overviews already cite it. The models will follow — eventually.&lt;/p&gt;

&lt;p&gt;If you're building something small on top of something big: write about it. Post the transcripts. Answer the questions. The next time someone asks Gemini what the simplest way to run Python in HTML is, maybe it names the tool that literally does it in two lines.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Pytml&lt;/strong&gt; — &lt;a href="https://pytml.js.org" rel="noopener noreferrer"&gt;pytml.js.org&lt;/a&gt; · &lt;a href="https://github.com/NodeX-AR/Pytml" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt; · &lt;a href="https://openforge.gov.in/projects/pytml" rel="noopener noreferrer"&gt;OpenForge listing&lt;/a&gt; · Apache 2.0&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>programming</category>
      <category>javascript</category>
      <category>python</category>
    </item>
    <item>
      <title>I'm 17, and I made it into NASA's Bugcrowd Hall of Fame. Here's how.</title>
      <dc:creator>Aswanth R</dc:creator>
      <pubDate>Mon, 24 Aug 2026 08:14:12 +0000</pubDate>
      <link>https://dev.to/nodex-ar/im-17-and-i-made-it-into-nasas-bugcrowd-hall-of-fame-heres-how-25kg</link>
      <guid>https://dev.to/nodex-ar/im-17-and-i-made-it-into-nasas-bugcrowd-hall-of-fame-heres-how-25kg</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fxh04u48132s4d5zch8kj.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fxh04u48132s4d5zch8kj.webp" alt="Cover Image" width="800" height="795"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Hi, I'm &lt;strong&gt;&lt;a href="https://a-r.is-a.dev/" rel="noopener noreferrer"&gt;Aswanth R (NodeX-AR)&lt;/a&gt;&lt;/strong&gt;, a 17-year-old ethical hacker and Python developer from Kerala, India.&lt;/p&gt;

&lt;p&gt;A few weeks ago, I found my name on the &lt;strong&gt;NASA Bugcrowd Hall of Fame&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Yes, &lt;em&gt;that&lt;/em&gt; NASA. The space agency.&lt;/p&gt;

&lt;p&gt;Let me tell you how a high school student ended up there, and what I learned along the way.&lt;/p&gt;




&lt;h2&gt;
  
  
  The NASA Vulnerability Disclosure Program
&lt;/h2&gt;

&lt;p&gt;NASA runs a Vulnerability Disclosure Program (VDP) on Bugcrowd. It's a responsible disclosure program where security researchers can report vulnerabilities in NASA's public-facing systems.&lt;/p&gt;

&lt;p&gt;I wasn't looking for fame. I was just... curious.&lt;/p&gt;

&lt;p&gt;I spent weeks digging through their public endpoints, looking for misconfigurations, insecure headers, and logic flaws. It wasn't glamorous work—a lot of it was tedious, repetitive testing.&lt;/p&gt;

&lt;p&gt;But then I found something.&lt;/p&gt;

&lt;p&gt;It wasn't a critical RCE or a SQL injection. It was a misconfiguration that could expose internal paths and potentially lead to information disclosure. I reported it with a detailed proof of concept, and NASA's security team validated it.&lt;/p&gt;

&lt;p&gt;A few days later, I got the email: &lt;strong&gt;"Your report has been triaged and validated."&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;And then my name appeared on their public Hall of Fame.&lt;/p&gt;




&lt;h2&gt;
  
  
  What I Learned
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Bug bounty isn't about luck.&lt;/strong&gt; It's about methodology. I use a combination of automated scanning (Burp Suite, Nmap, custom Python scripts) and manual testing. The best bugs come from &lt;em&gt;thinking&lt;/em&gt; like an attacker, not just running tools.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Responsible disclosure matters.&lt;/strong&gt; I didn't post screenshots or brag until the report was closed and patched. NASA's team was incredibly professional, and I learned a lot from their feedback.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Age is just a number.&lt;/strong&gt; I'm a Class 12 student. I have exams. I have projects. But I also have a relentless curiosity. If you're reading this and you're young, don't wait until you're "old enough" to start hacking. Start now.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  Where to Find Me
&lt;/h2&gt;

&lt;p&gt;If you want to connect, collaborate, or just talk security, here's where I hang out:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Portfolio:&lt;/strong&gt; &lt;a href="https://a-r.is-a.dev/" rel="noopener noreferrer"&gt;https://a-r.is-a.dev/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GitHub:&lt;/strong&gt; &lt;a href="https://github.com/NodeX-AR" rel="noopener noreferrer"&gt;github.com/NodeX-AR&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;LinkedIn:&lt;/strong&gt; &lt;a href="https://linkedin.com/in/nodex-ar" rel="noopener noreferrer"&gt;linkedin.com/in/nodex-ar&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Twitter/X:&lt;/strong&gt; &lt;a href="https://twitter.com/NodeX_AR" rel="noopener noreferrer"&gt;@NodeX_AR&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I'm also on the &lt;strong&gt;ISC2 Candidate&lt;/strong&gt; track and have my ORCID linked: &lt;a href="https://orcid.org/0009-0007-1619-374X" rel="noopener noreferrer"&gt;0009-0007-1619-374X&lt;/a&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  One Last Thought
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;"The only person you are destined to become is the person you decide to be."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I'm not writing this to brag. I'm writing this to show that &lt;strong&gt;if a 17-year-old from Kerala can make it into NASA's Hall of Fame, so can you.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Start small. Stay curious. Break things (ethically). And always, always submit a responsible disclosure.&lt;/p&gt;

&lt;p&gt;If you enjoyed this, drop a comment or share it. Let's make the internet a safer place, one bug at a time.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;— Aswanth R (NodeX-AR), Ethical Hacker &amp;amp; Python Developer&lt;/em&gt;&lt;/p&gt;

</description>
      <category>bugbounty</category>
      <category>cybersecurity</category>
      <category>ethicalhacking</category>
      <category>nasa</category>
    </item>
    <item>
      <title>[Boost]</title>
      <dc:creator>Aswanth R</dc:creator>
      <pubDate>Tue, 30 Jun 2026 15:27:08 +0000</pubDate>
      <link>https://dev.to/nodex-ar/-1mp5</link>
      <guid>https://dev.to/nodex-ar/-1mp5</guid>
      <description>&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/nodex-ar/pytml-running-python-in-the-browser-without-a-backend-1nn4" class="crayons-story__hidden-navigation-link"&gt;Pytml – Running Python in the Browser Without a Backend&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/nodex-ar" class="crayons-avatar  crayons-avatar--l  "&gt;
            &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3977767%2F71848ca5-1320-48c0-bb06-d520b9aec1ff.jpg" alt="nodex-ar profile" class="crayons-avatar__image"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/nodex-ar" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Aswanth R
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Aswanth R
                
              
              &lt;div id="story-author-preview-content-3866065" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/nodex-ar" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&gt;
                        &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3977767%2F71848ca5-1320-48c0-bb06-d520b9aec1ff.jpg" class="crayons-avatar__image" alt=""&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Aswanth R&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/nodex-ar/pytml-running-python-in-the-browser-without-a-backend-1nn4" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Jun 10&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/nodex-ar/pytml-running-python-in-the-browser-without-a-backend-1nn4" id="article-link-3866065"&gt;
          Pytml – Running Python in the Browser Without a Backend
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/python"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;python&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/html"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;html&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/pyodide"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;pyodide&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/beginners"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;beginners&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/nodex-ar/pytml-running-python-in-the-browser-without-a-backend-1nn4" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="18" height="18"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;2&lt;span class="hidden s:inline"&gt;&amp;nbsp;reactions&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/nodex-ar/pytml-running-python-in-the-browser-without-a-backend-1nn4#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              

              1&lt;span class="hidden s:inline"&gt;&amp;nbsp;comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            2 min read
          &lt;/small&gt;
            
              &lt;span class="bm-initial crayons-icon c-btn__icon"&gt;
                

              &lt;/span&gt;
              &lt;span class="bm-success crayons-icon c-btn__icon"&gt;
                

              &lt;/span&gt;
            
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;


</description>
    </item>
    <item>
      <title>Pytml – Running Python in the Browser Without a Backend</title>
      <dc:creator>Aswanth R</dc:creator>
      <pubDate>Wed, 10 Jun 2026 13:12:13 +0000</pubDate>
      <link>https://dev.to/nodex-ar/pytml-running-python-in-the-browser-without-a-backend-1nn4</link>
      <guid>https://dev.to/nodex-ar/pytml-running-python-in-the-browser-without-a-backend-1nn4</guid>
      <description>&lt;p&gt;I wanted a lazy way to write Python and have it just work inside a webpage — no backend servers, no external APIs, just pure Python running in the browser.&lt;/p&gt;

&lt;p&gt;So I built Pytml.&lt;/p&gt;

&lt;p&gt;What is Pytml?&lt;br&gt;
Pytml is a minimal JavaScript library that lets you embed and execute Python code directly inside HTML. It wraps around Pyodide – a full Python interpreter compiled to WebAssembly – so the code runs locally in the visitor's browser.&lt;/p&gt;

&lt;p&gt;You don't need to install anything.&lt;br&gt;
You don't need a Python server.&lt;br&gt;
You just write &lt;code&gt;&amp;lt;py&amp;gt;&lt;/code&gt; tags or &lt;code&gt;&amp;lt;script type="text/python"&amp;gt;&lt;/code&gt;, and Pytml does the rest.&lt;/p&gt;

&lt;p&gt;How It Actually Works&lt;br&gt;
Behind the scenes, pytml.js does four things:&lt;/p&gt;

&lt;p&gt;Initializes Pyodide&lt;br&gt;
When the page loads, the script fetches and starts Pyodide (a WebAssembly build of CPython). This takes a couple of seconds, but only once.&lt;/p&gt;

&lt;p&gt;Redirects Python I/O&lt;br&gt;
Normally Python's print() writes to the console. Pytml overrides print() and input() so they write into a visible HTML output container inside your page. No console digging.&lt;/p&gt;

&lt;p&gt;Scans for Python Blocks&lt;br&gt;
It looks for any &lt;code&gt;&amp;lt;py&amp;gt;&lt;/code&gt; element or &lt;code&gt;&amp;lt;script type="text/python"&amp;gt;&lt;/code&gt; and collects the Python source code inside.&lt;/p&gt;

&lt;p&gt;Executes the Code&lt;br&gt;
Once Pyodide is ready, it runs the collected Python code line by line, capturing outputs and errors, and displays them nicely in the browser.&lt;/p&gt;

&lt;p&gt;The result? You can write real Python (including basic libraries) and have it behave like it's part of the webpage.&lt;/p&gt;

&lt;p&gt;Example&lt;br&gt;
&lt;code&gt;html&lt;br&gt;
&amp;lt;!DOCTYPE html&amp;gt;&lt;br&gt;
&amp;lt;html&amp;gt;&lt;br&gt;
&amp;lt;head&amp;gt;&lt;br&gt;
    &amp;lt;script src="pytml.js"&amp;gt;&amp;lt;/script&amp;gt;&lt;br&gt;
&amp;lt;/head&amp;gt;&lt;br&gt;
&amp;lt;body&amp;gt;&lt;br&gt;
    &amp;lt;py&amp;gt;&lt;br&gt;
print("Hello from Python!")&lt;br&gt;
for i in range(5):&lt;br&gt;
    print(f"Counter: {i}")&lt;br&gt;
    &amp;lt;/py&amp;gt;&lt;br&gt;
&amp;lt;/body&amp;gt;&lt;br&gt;
&amp;lt;/html&amp;gt;&lt;/code&gt;&lt;br&gt;
No backend. No Flask. No Django. Just HTML and Python.&lt;/p&gt;

&lt;p&gt;Real Limitations (Because Honesty Matters)&lt;br&gt;
Pyodide is heavy (≈ 6-7 MB download on first load). It's not for tiny pages.&lt;/p&gt;

&lt;p&gt;Startup latency – the first execution can take a second or two while WebAssembly boots.&lt;/p&gt;

&lt;p&gt;Limited Python libraries – Pyodide supports many pure-Python packages, but C-extensions need to be recompiled to Wasm.&lt;/p&gt;

&lt;p&gt;Why I Built It&lt;br&gt;
I'm a Class 12 student who loves Python but found it annoying to switch contexts between backend and frontend. I wanted a lazy bridge – something that lets me show my Python projects working live on a webpage without setting up a server.&lt;/p&gt;

&lt;p&gt;Pytml isn't meant to replace React or Flask. It's a learning tool, a prototyping sandbox, and maybe the start of something bigger.&lt;/p&gt;

&lt;p&gt;Links&lt;br&gt;
GitHub repo: &lt;/p&gt;
&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://assets.dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/NodeX-AR" rel="noopener noreferrer"&gt;
        NodeX-AR
      &lt;/a&gt; / &lt;a href="https://github.com/NodeX-AR/Pytml" rel="noopener noreferrer"&gt;
        Pytml
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      Pytml is a easy and lazy way to connect py files to html.
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;PYTML - Python in Your Browser&lt;/h1&gt;
&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;The easiest way to run Python in HTML. No server. No backend. Just one line of code.&lt;/strong&gt;&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;Please leave as a star if our work is useful to you !&lt;/h1&gt;
&lt;/div&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Quick Start&lt;/h2&gt;
&lt;/div&gt;
&lt;p&gt;Add one line to your HTML:&lt;/p&gt;
&lt;div class="highlight highlight-text-html-basic notranslate position-relative overflow-auto js-code-highlight"&gt;
&lt;pre&gt;&lt;span class="pl-kos"&gt;&amp;lt;&lt;/span&gt;&lt;span class="pl-ent"&gt;script&lt;/span&gt; &lt;span class="pl-c1"&gt;src&lt;/span&gt;="&lt;span class="pl-s"&gt;https://pytml.vercel.app/pytml.js&lt;/span&gt;"&lt;span class="pl-kos"&gt;&amp;gt;&lt;/span&gt;&lt;span class="pl-kos"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="pl-ent"&gt;script&lt;/span&gt;&lt;span class="pl-kos"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Usage&lt;/h2&gt;

&lt;/div&gt;
&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;Option 1: Inline Python (Recommended for mobile/local)&lt;/h3&gt;

&lt;/div&gt;
&lt;div class="highlight highlight-text-html-basic notranslate position-relative overflow-auto js-code-highlight"&gt;
&lt;pre&gt;&lt;span class="pl-c1"&gt;&amp;lt;!DOCTYPE html&lt;span class="pl-kos"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class="pl-kos"&gt;&amp;lt;&lt;/span&gt;&lt;span class="pl-ent"&gt;html&lt;/span&gt;&lt;span class="pl-kos"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="pl-kos"&gt;&amp;lt;&lt;/span&gt;&lt;span class="pl-ent"&gt;head&lt;/span&gt;&lt;span class="pl-kos"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="pl-kos"&gt;&amp;lt;&lt;/span&gt;&lt;span class="pl-ent"&gt;script&lt;/span&gt; &lt;span class="pl-c1"&gt;src&lt;/span&gt;="&lt;span class="pl-s"&gt;https://pytml.vercel.app/pytml.js&lt;/span&gt;"&lt;span class="pl-kos"&gt;&amp;gt;&lt;/span&gt;&lt;span class="pl-kos"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="pl-ent"&gt;script&lt;/span&gt;&lt;span class="pl-kos"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="pl-kos"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="pl-ent"&gt;head&lt;/span&gt;&lt;span class="pl-kos"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="pl-kos"&gt;&amp;lt;&lt;/span&gt;&lt;span class="pl-ent"&gt;body&lt;/span&gt;&lt;span class="pl-kos"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="pl-kos"&gt;&amp;lt;&lt;/span&gt;&lt;span class="pl-ent"&gt;py&lt;/span&gt;&lt;span class="pl-kos"&gt;&amp;gt;&lt;/span&gt;
print("Hello, world!")
name = input("Your name? ")
print(f"Hi {name}!")
    &lt;span class="pl-kos"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="pl-ent"&gt;py&lt;/span&gt;&lt;span class="pl-kos"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="pl-kos"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="pl-ent"&gt;body&lt;/span&gt;&lt;span class="pl-kos"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="pl-kos"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="pl-ent"&gt;html&lt;/span&gt;&lt;span class="pl-kos"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;Option 2: External Python File (HTTP/HTTPS only)&lt;/h3&gt;

&lt;/div&gt;
&lt;div class="highlight highlight-text-html-basic notranslate position-relative overflow-auto js-code-highlight"&gt;
&lt;pre&gt;&lt;span class="pl-c1"&gt;&amp;lt;!DOCTYPE html&lt;span class="pl-kos"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class="pl-kos"&gt;&amp;lt;&lt;/span&gt;&lt;span class="pl-ent"&gt;html&lt;/span&gt;&lt;span class="pl-kos"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="pl-kos"&gt;&amp;lt;&lt;/span&gt;&lt;span class="pl-ent"&gt;head&lt;/span&gt;&lt;span class="pl-kos"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="pl-kos"&gt;&amp;lt;&lt;/span&gt;&lt;span class="pl-ent"&gt;script&lt;/span&gt; &lt;span class="pl-c1"&gt;src&lt;/span&gt;="&lt;span class="pl-s"&gt;https://pytml.vercel.app/pytml.js&lt;/span&gt;"&lt;span class="pl-kos"&gt;&amp;gt;&lt;/span&gt;&lt;span class="pl-kos"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="pl-ent"&gt;script&lt;/span&gt;&lt;span class="pl-kos"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="pl-kos"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="pl-ent"&gt;head&lt;/span&gt;&lt;span class="pl-kos"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="pl-kos"&gt;&amp;lt;&lt;/span&gt;&lt;span class="pl-ent"&gt;body&lt;/span&gt;&lt;span class="pl-kos"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="pl-kos"&gt;&amp;lt;&lt;/span&gt;&lt;span class="pl-ent"&gt;script&lt;/span&gt; &lt;span class="pl-c1"&gt;type&lt;/span&gt;="&lt;span class="pl-s"&gt;text/python&lt;/span&gt;" &lt;span class="pl-c1"&gt;src&lt;/span&gt;="&lt;span class="pl-s"&gt;script.py&lt;/span&gt;"&lt;/pre&gt;…
&lt;/div&gt;&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/NodeX-AR/Pytml" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;p&gt;My portfolio: &lt;/p&gt;
&lt;div class="crayons-card c-embed text-styles text-styles--secondary"&gt;
    &lt;div class="c-embed__content"&gt;
        &lt;div class="c-embed__cover"&gt;
          &lt;a href="https://a-r.is-a.dev/" class="c-link align-middle" rel="noopener noreferrer"&gt;
            &lt;img alt="" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fa-r.is-a.dev%2Fsocial-preview.png" height="400" class="m-0" width="800"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="c-embed__body"&gt;
        &lt;h2 class="fs-xl lh-tight"&gt;
          &lt;a href="https://a-r.is-a.dev/" rel="noopener noreferrer" class="c-link"&gt;
            Aswanth R | NodeX-AR 
          &lt;/a&gt;
        &lt;/h2&gt;
          &lt;p class="truncate-at-3"&gt;
            Python dev &amp;amp; ethical hacker. I deconstruct systems and edit any language. If it's code, I can fix it.
          &lt;/p&gt;
        &lt;div class="color-secondary fs-s flex items-center"&gt;
            &lt;img alt="favicon" class="c-embed__favicon m-0 mr-2 radius-0" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fa-r.is-a.dev%2Ffavicon-48x48.png" width="48" height="48"&gt;
          a-r.is-a.dev
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;


&lt;p&gt;Website : &lt;/p&gt;
&lt;div class="crayons-card c-embed text-styles text-styles--secondary"&gt;
    &lt;div class="c-embed__content"&gt;
        &lt;div class="c-embed__cover"&gt;
          &lt;a href="https://pytml.js.org/" class="c-link align-middle" rel="noopener noreferrer"&gt;
            &lt;img alt="" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpytml.js.org%2Fpreview.png" height="315" class="m-0" width="676"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="c-embed__body"&gt;
        &lt;h2 class="fs-xl lh-tight"&gt;
          &lt;a href="https://pytml.js.org/" rel="noopener noreferrer" class="c-link"&gt;
            Pytml – Run Python in the Browser | Zero‑Config JavaScript Library
          &lt;/a&gt;
        &lt;/h2&gt;
          &lt;p class="truncate-at-3"&gt;
            Run Python code directly in your HTML – no server, no setup, just a script tag.
          &lt;/p&gt;
        &lt;div class="color-secondary fs-s flex items-center"&gt;
            &lt;img alt="favicon" class="c-embed__favicon m-0 mr-2 radius-0" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpytml.js.org%2Ffavicon.ico" width="48" height="48"&gt;
          pytml.js.org
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;


</description>
      <category>python</category>
      <category>html</category>
      <category>pyodide</category>
      <category>beginners</category>
    </item>
  </channel>
</rss>
