Writing macros in lisp is straightforward, but providing good error message is much trickier. The Racket docs have an excellent discussion of writing a mylet macro with clear errors that reference which part is wrong: https://docs.racket-lang.org/syntax/stxparse-intro.html
miniblog.
Related Posts
Bril is a cute intermediate language for teaching (think simplified LLVM IR): https://www.cs.cornell.edu/~asampson/blog/bril.html
The idea of providing a standard JSON format to help students write basic passes is really elegant.
LSP is great for providing basic IDE services across editors and language. I do wonder if it limits the best you can do.
For example, I'm not aware of any way you can add up/down arrows to the margin for exploring inheritance. Hover text or lenses seem to be your only options.
An introduction to the world's largest CRM, the importance of allowing users to build custom logic, and a discussion of providing a programmable AWS Lambda style platform: https://tryretool.com/blog/salesforce-for-engineers/
