Show HN: Liz – Collaborative Lisp coding on Discord

Show HN: Liz – Collaborative Lisp coding on Discord

This is a Discord bot I made, which lets you write and evaluate Lisp code in collaborative sessions on Discord.

I wrote it in a short amount of time, partly for learning purposes, but also because I found the idea exciting and it was fun to hack around.

I'd be happy to get your feedback, especially on how to improve the deletion mechanism (maybe make deletion sexpr-based?). I've tried to make the README detailed enough so that it's easy to make some changes and run your own version.




Looks like a fun project, is it abstracted from the Discord API? How easy would it be to port it to other chat services like Matrix, Telegram, etc?


No, not really. Discord user IDs are even used stored in the DB to manage session ownership. The amount of features is not that big though. I think porting this to another chat service would be doable in a weekend.


I've been deep in the Discord-bot rabbit hole recently. TBH, I think it's the dominant platform to create bots, since it's the messaging app that has the most actives on it, and the event subscriptions are robust.

I'd rather keep building on Discord then port it to different apps and get more, less attractive platforms to support. What do you think?


I'd love it if it was also accepting Common Lisp


Oh man, I thought it was. This makes it less exciting.


Nice! I tried doing something similar a few years ago using Scala as both the host language and the language that would be dynamically executed. I ran into issues trying to build a structure that represents executable Scala code, and eventually I moved on to other projects.

This was before I was really familiar with Lisp, and looking back I think I would have been way more successful if I was trying to use that instead :D


Cool build!

Quick question - why did you decide to create this bot in Rust, instead of the more popular libraries Discord.js or Is there a real performance reason, or did you just want to do it in Rust?


Yeah, I just love Rust and I like Shuttle (which is used to deploy this Rust project), too! I don't think there are great performance implications here. They type-safety is nice though, and it was easy to embed a Lisp.


If you like type safety, this project would be perfect for using so your REPL supported Common Lisp out of the gate.


Why not, you know, Lisp?

(Also, the examples seem to be Scheme)