toprakdeviren
Thanks.
1- I didn't share the project ;-) I didn't say "praise me, I beat Jetbrains."
2- I received criticism about the landing page, going from small to big, saying "okay, the landing page is AI, then this guy doesn't understand anything, so it's garbage, this AI is generated."
3- I'm a solo developer. So I want the landing page to be great, all tests to pass, everything to work properly, and no one to complain :D
This is just an additional package to a 3-year-old project. My main flagship is MiniSwift. But later I realized I could bring all languages together.
Like I said, I wish someone would ask how I bypassed coroutines without using asnycfy and jspi, so we could discuss it for hours ;-)
Also, my account has very low karma, I can't even reply to anyone, HN bans me. I hope this gets published. Take care.
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).
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.
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.