Hello everyone,

As many of you probably already know, 
[Karax](https://github.com/karaxnim/karax) is a core Nim web framework. It can 
be used as a DSL to generate HTML (good for templating on the backend) and to 
create Single Page Applications in Nim. Karax was mostly written back in 2017, 
and it powers the frontend of the forum that you are all reading right now!

Karax hasn't seen much love in the past few years, for a few different reasons. 
The main one is that Araq is busy (turns out he has this other project called 
Nim 😉), so it hasn't had an official active maintainer. It's also at a state 
where you could call it mostly feature complete - the main things left to do 
from a code perspective are fixing bugs and improving performance as needed. 
Recently, a few folks and I over on the Discord (#web-dev) have been trying to 
make Karax more usable and approachable for all users. Here's a quick list of 
some of the things we've accomplished already in the last few weeks

  1. Tagged, closed, and updated all of the issues that needed it
  2. Made a few PRs fixing bugs
  3. Started work on a guide (probably the most common complaint about Karax)
  4. Started work on a guide generator that will be able to display live 
examples, similar to other frontend Javascript frameworks
  5. Fixed the failing build and moved the CI to Github Actions



along with a few smaller tweaks to make it more approachable for newer people.

So, why are we making this forum post? We'd love it if more people from the 
community got involved. Nim's JS backend isn't used nearly as often as the C 
one, and I'm sure that there are people reading this who tried it or Karax once 
a few years ago, ran into some weird bug, and then forgot about it. We want to 
change that. There's plenty of work left to do to make it better.

We're hoping that more eyes on Karax will let it become more mainstream, even 
among Javascript frameworks. If you've never tried Karax but have used 
React/Vue/Angular, you'll be surprised by how simple it really is. The core API 
is very small, all you really need to know are a few events (like onclick, 
oninput) and HTML (what the tags do). Nim's generous stdlib combined with type 
checking make for a pleasant experience when compared with vanilla Javascript.

If you want to help, feel free to drop by the #web-dev channel, or start 
[tackling issues](https://github.com/karaxnim/karax/issues). Thanks!

Reply via email to