pazvanti
Joined 5 years ago
Joined 5 years ago
Also, one reason why I made this was because I did not want to have GenAI in my writing. And Google Docs or other such services push LLMs so much. Wanted something private.
### What is Phoenix?
Phoenix is a modern template engine for Spring and Spring Boot aiming to facilitate the development of complex web applications by providing a way to create complex and modular templates benefiting from server-side rendering for better integration between the frontend and backend.
### Phoenix vs Thymeleaf or Freemarker
Phoenix offers several advantages compared to other existing template engines at the moment:
- The ability to integrate Java code directly into HTML templates without needing to learn a new syntax or special utilities.
- An easier-to-understand syntax that only requires a special character "@" to integrate Java code into HTML code.
- Fragments or components that can be combined and reused, making the code easier to maintain.
- Speed, speed, speed - Phoenix templates are compiled, offering rendering speeds up to 10x faster compared to Thymeleaf.
- A single PhoenixController that easily allows the return of both HTML pages and JSON responses.
- Reverse routing - a completely new feature for Spring. URLs are written at runtime in templates, eliminating the need for manual writing. You only mention the controller and method, and Phoenix calculates the correct URL. This way, you can change the URL in the controller without having to modify the template.
- Pages dynamically modified by calling from JS to the backend to obtain a ready-to-add fragment/module to the DOM.
- Easy to configure* (Work in Progress to reduce necessary dependencies).
### Why Phoenix and not React/Angular/Vue?
Phoenix is not intended to be a replacement for JS frameworks. Instead, Phoenix aims to utilize existing JS frameworks to add SSR, thereby enhancing page rendering speed and FE-BE integration. You no longer need to always return complex JSON; you can directly provide an HTML page with everything needed and nothing more. There can be a whole debate about SSR vs non-SSR, so Phoenix tries to combine the advantages of both.
###Open Source
Phoenix is open source, and everyone is encouraged to download the code, contribute improvements, or suggest features.
Source code: https://gitlab.com/ppopescu/phoenix-template-engine
Wiki: https://gitlab.com/ppopescu/phoenix-template-engine/-/wikis/...
Build jar: https://gitlab.com/ppopescu/phoenix-template-engine/-/jobs/5...
My blog: https://petrepopescu.tech
I could not find anything that fit my needs (DropzoneJS required too much workaround to work with my existing form), so I decided to make my own from scratch. It turned out quite well so I decided to make it open-source, since I think other may find it useful.
You can find the code here: https://gitlab.com/ppopescu/easydropzonejs/ You can see a demo on my personal blog: https://petrepopescu.tech/easydropzonejs/
### Features
- Easy to integrate and use
- Looks nice even with the default theme
- It is theamable, and only requires update to the css file
- Does not require any external libraries like JQuery (it is made with pure JS and CSS)
- Small and lightweight, currently having less than 4kb for both the JS and CSS files
- Shows you the thumbnail preview for images (configurable)
- Easy to configure (even though there are only a few configuration options)
Any suggestions of improvements (or even better, code submissions) are greatly appreciated. Please, tell me what you think and if you think that this is useful and I should continue development.