Ludic is my personal project I started working on as I saw an opportunity to write websites in Python without the need to use template engines and write complex JavaScript (thanks to htmx.org). Ludic prioritizes simplicity - no convoluted HTML, straightforward and responsive CSS, and minimal JavaScript requirements.
I'm looking for feedback for the documentation I was building:
* https://getludic.dev/docs/
This documentation showcases the range of features the framework offers, providing a comprehensive overview of its capabilities.
I would also appreciate if you checked the layouts section and tell me what you think:
* https://getludic.dev/catalog/layouts
Additionally, I've developed a convenient cookiecutter template:
* https://github.com/paveldedik/ludic-template
I eagerly await your feedback and insights as you explore these resources.
I believe Ludic can be expecialy good for personal blogs, project websites, in-browser slides, while using htmx.org properties to add interactivity.
Since my last update on Ludic, I've concentrated on the following areas:
* Building comprehensive documentation with Ludic to showcase its capabilities
* Enhancing the UI components catalog
* Crafting Layout Components inspired by the Every Layout Book
* Introducing support for Themes
Future plans for Ludic include:
* Enhancing HTMX support with compatibility for HTMX 2.0
* Implementing speed improvements through caching
* Expanding the features in the catalog
* Improving typing support
* Exploring the creation of a cookiecutter template for generating Ludic-powered slides
The requirement of @override on the render method is a bit unwieldy, have you considered using pedantic's BaseModel instead of TypedDict? I think it would allow you to get rid of @override? Not sure it'd be worth it for the extra dep though.
Something I always look for in a web framework is the ability to run the app from the repl. Is this possible with Ludic? I remember in Clojure, the app was just a function of a hashmap request -> hashmap response, so testing was really easy, you just do something like (app my-request) and inspect the return value, 'my-request' can be a hashmap constructed by hand or generated with a tool like core.spec. Much more convenient than running uvicorn just for a quick test! I recommend adding this use case to Ludic if it's not already there.