DEV Community

Cover image for I built my own scripting language and made it run in the browser โ€” no HTML, no JS, just WebAssembly
sinisterMage
sinisterMage

Posted on

I built my own scripting language and made it run in the browser โ€” no HTML, no JS, just WebAssembly

Hey Devs ๐Ÿ‘‹

I recently I did something kind of insane:

I created my own scripting language called W++ โ€” it has Python-style syntax, runs on .NET, supports entities, async, lambdas, and more...

But I didnโ€™t stop there.

I decided to make it run in the browser. No HTML. No JS. No boilerplate. Just raw WebAssembly.


Introducing: ๐ŸŒ€ OOPSIEWASM

OOPSIEWASM is an experimental playground that lets you:

โœ… Write W++ code directly in the browser

โœ… Use externcall() to draw on a <canvas>

โœ… Run it all via Blazor WebAssembly, no JS required

โœ… Dream of a world with no HTML in DevTools

Itโ€™s real. Itโ€™s working. And it's probably the most chaotic thing I've ever built.


๐Ÿงช Example

externcall("canvas", "drawText", "Hello from W++", 10, 50);
Enter fullscreen mode Exit fullscreen mode

That line draws on a real HTML5 canvas โ€” from W++, running in WASM.

๐Ÿ”— Try It / Source

๐ŸŽฎ Live playground & video:
https://github.com/sinisterMage/WPlusPlusPlayground/blob/main/Recording%202025-06-03%20205424.mp4

๐Ÿง  Source code (MIT):

https://github.com/sinisterMage/WPlusPlusPlayground

๐Ÿ›  How it's built

Written in C#

JIT and interpreted backends

Uses System.Reflection.Emit

Renders to via C# โ†’ JS interop

Entire frontend: Blazor WebAssembly

๐Ÿ™‹โ€โ™‚๏ธ Why?

Because I wanted to make something wild. Something alive in the browser.

Something that says:

โ€œYou donโ€™t need to be older, funded, or famous to build something original.โ€

Just a laptop, an idea, and obsession.

๐Ÿ’ฌ Feedback?

Would love your thoughts, questions, even critiques โ€”
and if youโ€™ve ever built something like this or dreamed of running your own language in the browserโ€ฆ letโ€™s talk!

Thanks for reading โค๏ธ

Top comments (0)

Some comments may only be visible to logged-in visitors. Sign in to view all comments.