[Author here] This post was quite a surprise to see here! Guess who got busy checking out his old repository ;) . This is a blog post from 2019 during my Nim journey, which has now resulted in our entire SaaS[0] running Nim. Nim[1] has evolved a lot since the post - current stable 1.6.4, blog post was for 0.19.2.
Thanks for writing this! Is there anything major people should look out for with the newer language version or any advice you would offer to something looking into writing a webpage in Nim today?
I am working on a small side project in Nim and saw your post and thought it was very well done.
I'm glad you liked it! We have been using Nim from 0.18.x to now (1.6.x) with a minimal work with breaking changes - so no warning signals from here.
My advice would be to use the current stable version since 2.0.0 is just around the corner :) ! We are quite happy with the performance and system load using jester[1] with httpbeast for routing, but there are a couple of alternatives in the package repository[2].
if anybody is interested in running it I'm more than happy to get them involved. I haven't had anybody approach me though.
For what it's worth, HttpBeast has seen some love from me lately (with some big optimisations). HTTP2 would require effectively a new project IMO so if someone wants to make it happen I'd love to advise where I can.
I just started using Nim this weekend, so this is some nice serindipity :) Do you have more recommendations for someone who has programmed for years but new to Nim to get up to speed? Specifically I'm looking for using it to do hosting and websockets, but anything would be helpful.
I don’t know about other web-guides. Nim’s official website is made with Nim and available at Github[0], but it has become at bit more complicated after they switched to Karax[1]. Jester’s tests gives a good view on the routing procedures[2].
The official tutorials[3] are pretty good, when you get the grab on how to ”decode” them. For web development with websockets and microservices I would suggest you to have a look at the Redis package[4], and @treeform’s Websocket[5] and JsonParsing-packet[6].
Builtin templates in Nim are awesome but since then, there is the possibility to render pages server-side with karax: https://github.com/karaxnim/karax
Check my project that converts a static web page to ready to use karax DSL code:
I wrote a web framework (on Jester), and a cross-platform UI layer too, in Nim. I'm thinking of releasing the core as Open Source when I get a chance. That would be later in the year though.
Nim is an amazing language, definitely underrated.
[0] https://cxplanner.com [1] https://nim-lang.org