Show HN: Write Go code in JavaScript files

(npmjs.com)

Comments

tkzed49 27 October 2025
Beautiful. Minor feedback: rather than having a "use golang" directive, just allow imports of .go files. This is more idiomatic for JS bundlers.
Imustaskforhelp 23 hours ago
> Scientific computing where you already have Go code

This is a really cool project and I must admit that and I am on the side as well also asking for something similar to your project for julia since that has one of the highest focus on scientific computing. I would like it if you could create something similar to this but for julia as well, it shall be really cool.

Now coming back to my main point, my question is that what if the scientific computing project is too complicated and might require on features which shall not be available on tinygo as from what I remember, tinygo and go aren't 1:1 compatible

How much impact could it have though, like I am basically asking about the state of tinygo really and if it could do the scientific thing as accurately as you describe it but still a great project nonetheless. Kudos.

b_e_n_t_o_n 27 October 2025
Hah. Back in the day I wrote a plugin to convert Lua files into a module that ran via one of the JS lua vms. Good fun.
foreigner 27 October 2025
Reminds me of this toy I made some years ago: https://www.npmjs.com/package/polyglot-tag
zikani_03 27 October 2025
Looks interesting and good use case for introducing folks to extending web apps with WASM functionality.

Used a similar technique using tinygo wasm builds (without Vite ofcourse) on toy project where WASM based functionality acted as a fallback if the API wasn't available or user was offline - found it an interesting pattern.

ivanjermakov 27 October 2025
I would rather instantiate wasm module myself and have a build step to compile .go file. This way both JS and Go tooling would work.
liampulles 27 October 2025
Just be careful with this backend-code-in-frontend stuff. If it's needed for some computationally expensive logic that is logically client side, then fine. But be wary of letting the client dictate business rules and having open-for-anything APIs (GraphQL is particularly prone to this).

I've seen teams do this in the wild more than once.

pjmlp 27 October 2025
Cool hack, just use JavaScript.
hshdhdhehd 27 October 2025
Like it. Especially the how to use it and when to use it guidance.
h33t-l4x0r 27 October 2025
How big is it? Is it smaller than imagemagick wasm?
montakaoh 27 October 2025
we need to go deeper
kypro 27 October 2025
I was playing around with WASM and WebGL a few years ago to see if it could be used to increase JS performance on certain computationally heavy tasks. I might be misremembering but if I recall correctly the answer was generally always no because of the overheads involved in JS -> WASM -> JS.

Additionally JIT optimisations means that even if you're doing very computationally heavy tasks unless they're one-offs or have a significant amount of computational variance JavaScript is surprisingly performant.

So unless you need to compute something for several seconds and it's done as a one-off typically there will be very little (if any) gain in trying to squeeze out a bit of additional performance in this way.

However this is all off the top of my head and from my own experimentation several years back. Someone please correct me if I'm wrong.

lisbbb 27 October 2025
I'm guessing this only works on back end? If yes, then why not just write the back end in Go if you're so fond of the language? It's not like Golang lacks the libraries to do web stuff. Would it be like some shop that is all React, Angular, or some other?
chamomeal 27 October 2025
Unironically a really cool use of wasm. Might use this on my personal site lmao
smashah 27 October 2025
funny but this is going to become extremely popular.
nsonha 27 October 2025
seems like an unintuitive idea that could have only come from someone infected by react/vercel. The natural way that most would think about this is just write go in a go file and have an import attribute or macro