Rendered at 10:11:41 GMT+0000 (Coordinated Universal Time) with Cloudflare Workers.
davidjfelix 21 hours ago [-]
Visibly claude produced website.
No link to code.
Is the expectation that people write kotlin in their browser? How do people work this into their development workflow? Is this just a neat demo?
toprakdeviren 8 hours ago [-]
Thanks! And no, that’s not really the goal.
This is just one piece of a much bigger ecosystem. The real goal is to solve the portability problem.
MiniSwift, MiniSharp, and MiniKotlin are all parts of another project I’m building called Kavak.
The idea is simple: people should be able to keep using the language and platform they already know, while still being able to target other platforms with the same application.
The browser playground is mostly a way to make the compiler instantly accessible. You can open it anywhere, experiment, debug, and see how everything works without installing anything. But it’s only one part of the bigger picture.
kreco 20 hours ago [-]
I was expecting a a link to the source code after the "written in C".
toprakdeviren 8 hours ago [-]
I'll release it as open source, but the Kavak library isn't quite ready for open source yet, at least not from my perspective.
pelagicAustral 19 hours ago [-]
Its got that Claude Design thing about it, but it's pleasant, I don't mind the generated designs at all...
f311a 20 hours ago [-]
Yeah, I hate the LLM wording too
fishfasell 19 hours ago [-]
This is one thing I can't stand about current LLMs. I can't put my finger on it but AI written English is so obvious
nozzlegear 18 hours ago [-]
Its the uncanny valley. There's just something about it as a whole that makes it seem obviously not human.
wavemode 20 hours ago [-]
> One pass, all the way down to bytecode
> hands off to two of its own IRs before writing WASM-GC by hand
So it's not "one pass" lol. Do you know what a pass is?
Not that it matters - this AI is claiming "one pass" as though that's a good thing, but it's usually not. One-pass compilers can't typecheck forward references.
RetroTechie 19 hours ago [-]
Also, it's only "by hand" if you, the developer, writes it. In this case:
"The frontend — lexer, parser, semantic analysis (it’s called mkf) — hands off to two of its own IRs before writing WASM-GC by hand."
So those frontend tools do the writing, not the developer?
That's not "by hand". One might say "writes WASM-GC directly". But no that also doesn't happen, it goes through an IR first?
Personally I wouldn't put too much trust in a developer that even can't get their terminology correct. Well either that or I foobar'd my understanding of the writeup?
Anyway, looks like an interesting project.
toprakdeviren 8 hours ago [-]
Thank you.
I agree. "One pass" is wrong, and I shouldn't have written that. This is a normal multi-stage pipeline: AST -> HIR -> MIR -> WASM-GC, meaning each reduction is one pass.
I know, Kotlin has forward references and actual type inference, so name/type resolution requires multiple passes, which is precisely why there's explicit forward reference processing there. So, a single pass is never the case. My statement was incorrect.
What I meant was that it goes from source code to WASM-GC in one go, entirely in the browser (no LLVM, no Binary, no round trip to the server, and the WASM-GC backend is handwritten in C).
stronglikedan 17 hours ago [-]
'by hand' is probably the AI anthropomorphizing itself
codys 14 hours ago [-]
Prompt regurgitation. Model was likely instructed to create the app to do this piece "by hand" (or a phrase with similar interpretation) because the author wanted to avoid pulling in a dependency of some kind.
toprakdeviren 8 hours ago [-]
[dead]
19 hours ago [-]
montroser 21 hours ago [-]
This is very cool! Slightly off-topic though, I miss technical people writing in their own voice about the awesome things they've built.
applfanboysbgon 21 hours ago [-]
Chances are they aren't a technical person and didn't build it, so wouldn't have anything interesting to say anyways. Web compilers are dime-a-dozen and LLMs can easily produce them with no active guidance. Very much in the training data[1]. This looks like just another person posting something they spent all of two minutes prompting.
So, is there a reason that your link to the official playground is dramatically more underwhelming and lacking in features compared to the from-scratch-in-C Minikotlin compiler page? You claim that the submission is uninteresting work from a lone non-technical rando and then link to / implicitly endorse a "hello world" repo from the multi-billion dollar corporation that runs the whole thing?
ande-mnoc 20 hours ago [-]
The Kotlin/WASM work is in the main repo. This submission has no source code and barely any technical detail.
applfanboysbgon 20 hours ago [-]
The JetBrains team didn't feel like prompting for a Claude UI to go with their project they wrote by hand 8 years ago, I suppose.
Are you really that impressed with stock LLM-generated UI?
Note the JetBrains playground includes features that are actually useful for a code playground, letting you configure compiler version and flags, which is likely more relevant than a faux-IDE UI for the use cases people use playgrounds for. It also supports importing packages, while this doesn't. This doesn't seem like a human even attempted to use it for anything, otherwise they would have realised how lacking it is. Unfortunately it seems like people who prompt slop can't be bothered to dogfood it... or maybe pigfood it?
"From scratch in C" means literally nothing here. LLMs can output C too. It may or may not be safe, efficient C, but writing C that compiles is trivial. Prompting "write it in C" poses no greater difficulty than any other language.
fsloth 19 hours ago [-]
”Web compilers are dime-a-dozen”
Oh didn’t know that! What is the best for ”compiles to wasm in browser” featureset?
gavinray 20 hours ago [-]
Seems to be missing the "why" over Kotlins native WASM support (which is very mature)
The official Kotlin playground uses WASM, for example (JVM drop down-> choose "WASM")
It's on my todo list to support compiling dart code through the wasm bundle to wasm directly. Right now it's running the dart arm simulator on the web because it supports hot reload.
I'm wondering if there are any cool use-cases that motivate having the compiler itself run in wasm. I did it mostly for fun and besides building tooling for compiler developers themselves or IDEs, I can't come up with much.
There was one guy that wanted a sandboxed environment for agents as he couldn't find anything else. A few other people used the dart live project to build playgrounds for their own packages.
Who's the target audience for minikotlin? I'm just curious.
In any case, cool project, thanks for sharing!
Jtarii 20 hours ago [-]
Really looking forward to when we advance past the "Design — by Claude" phase.
netdur 20 hours ago [-]
Perhaps never, Claude will just be replaced by something else, and eventually we’ll have the Amish of AI
ptx 19 hours ago [-]
The example program they give as a "specimen" doesn't compile unless you specify the generic type of the "lanes" variable explicitly. And the compiler doesn't tell you where the error is. But it does build and run once you change it to "listOf<Lane>".
(The program builds as-is in the Kotlin Playground, at least for the JVM platform; the other platforms don't seem to have kotlinx.coroutines available.)
mavamaarten 21 hours ago [-]
That's cool. I often write tiny blurbs of kotlin just to test out a simple algorithm. I often do this on kotlin playground because doing so inside a scratch file or test is somehow more cumbersome and slow. This ran and compiled something in 98ms on my smartphone, cool stuff.
rf15 19 hours ago [-]
This is so clearly all LLM-generated, it hurts. That coverage page in particular is seemingly nonsense.
It feels like we have reached the Turbo Pascal era, but only compiled to the browser.
sermah 21 hours ago [-]
Cool idea. I like the UI and that it compiles locally. But I don't really get what this is for.
I use Kotlin Playground sometimes, but it allows me to switch Kotlin versions and compile targets, which is useful to try out new features.
toprakdeviren 14 hours ago [-]
First of all, I was genuinely surprised to see this project make it so high on Hacker News. I actually didn’t know it had been posted here. I spent the entire day improving MiniKotlin’s test coverage, and only noticed what was happening when I checked the traffic on my server later that night.
I appreciate all feedback, both positive and negative. Criticism is part of building software, and I’m perfectly fine with that. What is a little discouraging, though, is seeing comments calling the project "AI-generated", "slop", or "useless" without first looking at how it actually works.
MiniKotlin currently passes 4,873 out of the 7,469 official Kotlin compiler tests. Whether people ultimately find the project useful or not is completely fair to debate, but I hope it can at least be judged on its technical merits.
I went through similar discussions when I released MiniSwift. At some point I realized that arguing about whether a project was "made by AI" or not is a bottomless pit, and honestly not a very productive conversation.
English isn’t my native language, and unfortunately it’s not something I’m particularly confident with. Because of that, I rely on AI tools for translation and polishing my writing.
I’ve been working as a software developer for about 25 years, including web development and JavaScript for most of that time. As for the website, yes, Claude helped polish the design. I’ve never tried to hide that. I spent a significant amount of time building and refining it myself, and then used AI as a design assistant to improve the final presentation.
Using AI to polish a website doesn’t mean the compiler itself was generated by AI. I think that’s an important distinction.
Honestly, I wish more of the discussion had been about the technical side of the project. MiniKotlin has been under development for nearly three years, and I’d be much happier answering questions about the compiler architecture, parser, semantic analysis, IR pipeline, or WASM backend than debating whether a landing page "looks like Claude."
Thanks for taking the time to look at the project.
applfanboysbgon 38 minutes ago [-]
> Honestly, I wish more of the discussion had been about the technical side of the project.
Then you would do well to spend a few hours during your three year project to write up a technical description that indicates you actually understand what you've published. Saying you don't speak English natively is a cop-out. LLMs are subpar at translation but if prompted to translate correct technical writing, the output would not have been what's on your front page. You can't possibly present poor technical writing and then expect people to give you more than what you gave them. And yet, I think people did spend more time writing about the technical writing than you did in prompting.
> At some point I realized that arguing about whether a project was "made by AI" or not is a bottomless pit
> Using AI to polish a website doesn’t mean the compiler itself was generated by AI. I think that’s an important distinction.
I notice you don't actually say this isn't AI-generated. You try to heavily imply it isn't with selective wording, yet stop short of denying that it is. And with a fully AI web design, fully AI descriptions, incorrect technical writing, no source code - why would anybody believe otherwise?
rf15 11 hours ago [-]
[dead]
bmiekre 19 hours ago [-]
Why do this?
dionian 19 hours ago [-]
would be cool if it worked with a more powerful language like scala
Is the expectation that people write kotlin in their browser? How do people work this into their development workflow? Is this just a neat demo?
This is just one piece of a much bigger ecosystem. The real goal is to solve the portability problem.
MiniSwift, MiniSharp, and MiniKotlin are all parts of another project I’m building called Kavak.
The idea is simple: people should be able to keep using the language and platform they already know, while still being able to target other platforms with the same application.
The browser playground is mostly a way to make the compiler instantly accessible. You can open it anywhere, experiment, debug, and see how everything works without installing anything. But it’s only one part of the bigger picture.
> hands off to two of its own IRs before writing WASM-GC by hand
So it's not "one pass" lol. Do you know what a pass is?
Not that it matters - this AI is claiming "one pass" as though that's a good thing, but it's usually not. One-pass compilers can't typecheck forward references.
"The frontend — lexer, parser, semantic analysis (it’s called mkf) — hands off to two of its own IRs before writing WASM-GC by hand."
So those frontend tools do the writing, not the developer?
That's not "by hand". One might say "writes WASM-GC directly". But no that also doesn't happen, it goes through an IR first?
Personally I wouldn't put too much trust in a developer that even can't get their terminology correct. Well either that or I foobar'd my understanding of the writeup?
Anyway, looks like an interesting project.
I agree. "One pass" is wrong, and I shouldn't have written that. This is a normal multi-stage pipeline: AST -> HIR -> MIR -> WASM-GC, meaning each reduction is one pass.
I know, Kotlin has forward references and actual type inference, so name/type resolution requires multiple passes, which is precisely why there's explicit forward reference processing there. So, a single pass is never the case. My statement was incorrect.
What I meant was that it goes from source code to WASM-GC in one go, entirely in the browser (no LLVM, no Binary, no round trip to the server, and the WASM-GC backend is handwritten in C).
[1] https://github.com/JetBrains/kotlin-playground
Note the JetBrains playground includes features that are actually useful for a code playground, letting you configure compiler version and flags, which is likely more relevant than a faux-IDE UI for the use cases people use playgrounds for. It also supports importing packages, while this doesn't. This doesn't seem like a human even attempted to use it for anything, otherwise they would have realised how lacking it is. Unfortunately it seems like people who prompt slop can't be bothered to dogfood it... or maybe pigfood it?
"From scratch in C" means literally nothing here. LLMs can output C too. It may or may not be safe, efficient C, but writing C that compiles is trivial. Prompting "write it in C" poses no greater difficulty than any other language.
Oh didn’t know that! What is the best for ”compiles to wasm in browser” featureset?
The official Kotlin playground uses WASM, for example (JVM drop down-> choose "WASM")
https://play.kotlinlang.org
I'd challenge the 'by hand' assertion though.
- repo: https://github.com/modulovalue/dart-live
- demo: https://modulovalue.com/dart-live/
It's on my todo list to support compiling dart code through the wasm bundle to wasm directly. Right now it's running the dart arm simulator on the web because it supports hot reload.
I'm wondering if there are any cool use-cases that motivate having the compiler itself run in wasm. I did it mostly for fun and besides building tooling for compiler developers themselves or IDEs, I can't come up with much.
There was one guy that wanted a sandboxed environment for agents as he couldn't find anything else. A few other people used the dart live project to build playgrounds for their own packages.
Who's the target audience for minikotlin? I'm just curious.
In any case, cool project, thanks for sharing!
(The program builds as-is in the Kotlin Playground, at least for the JVM platform; the other platforms don't seem to have kotlinx.coroutines available.)
also check out his similar work, https://miniswift.run/ which has the same issues.
I appreciate all feedback, both positive and negative. Criticism is part of building software, and I’m perfectly fine with that. What is a little discouraging, though, is seeing comments calling the project "AI-generated", "slop", or "useless" without first looking at how it actually works.
MiniKotlin currently passes 4,873 out of the 7,469 official Kotlin compiler tests. Whether people ultimately find the project useful or not is completely fair to debate, but I hope it can at least be judged on its technical merits.
I went through similar discussions when I released MiniSwift. At some point I realized that arguing about whether a project was "made by AI" or not is a bottomless pit, and honestly not a very productive conversation.
English isn’t my native language, and unfortunately it’s not something I’m particularly confident with. Because of that, I rely on AI tools for translation and polishing my writing.
I’ve been working as a software developer for about 25 years, including web development and JavaScript for most of that time. As for the website, yes, Claude helped polish the design. I’ve never tried to hide that. I spent a significant amount of time building and refining it myself, and then used AI as a design assistant to improve the final presentation.
Using AI to polish a website doesn’t mean the compiler itself was generated by AI. I think that’s an important distinction.
Honestly, I wish more of the discussion had been about the technical side of the project. MiniKotlin has been under development for nearly three years, and I’d be much happier answering questions about the compiler architecture, parser, semantic analysis, IR pipeline, or WASM backend than debating whether a landing page "looks like Claude."
Thanks for taking the time to look at the project.
Then you would do well to spend a few hours during your three year project to write up a technical description that indicates you actually understand what you've published. Saying you don't speak English natively is a cop-out. LLMs are subpar at translation but if prompted to translate correct technical writing, the output would not have been what's on your front page. You can't possibly present poor technical writing and then expect people to give you more than what you gave them. And yet, I think people did spend more time writing about the technical writing than you did in prompting.
> At some point I realized that arguing about whether a project was "made by AI" or not is a bottomless pit
> Using AI to polish a website doesn’t mean the compiler itself was generated by AI. I think that’s an important distinction.
I notice you don't actually say this isn't AI-generated. You try to heavily imply it isn't with selective wording, yet stop short of denying that it is. And with a fully AI web design, fully AI descriptions, incorrect technical writing, no source code - why would anybody believe otherwise?