So, I really would rather make something thats actually a project, but I am dry of ideas. And I really like to architect and (over) engineer projects well.
Quick precursor
I was never making this for devember just because its not an actual project, just a template which kept groing in complexity. I then decided to actually post it here becuase I have been working on it pretty much full time because I got made redundant from my dev job (dw im fine). So I thought I would just throw it here bc it has gotten out of hand and im pretty much even building a couple of frameworks.
The actual project
There is and will be more info on the github README (I will be making a better write up soon).
This template got started out of the realisation of that html templating does 80% of stuff you need todo when making a website and there is no need for overly complex javascript frameworks (especially as a golang engineer). So I got started by just making a well architected and simple template for setting up a site and some endpoints, database and authentication. So that when I did have an actual useful idea I would be able to use that tempalte to get right into it and not spend too much time engineering and setting up the project.
Aaaaand the scope of this project grew very quickly by trying to setup support for different features, a cli tool to set up the project for you and even a minimal (by design) javascript framework which would work together with the template rendering which would inject each pageβs data directly into javascript (I think similar to something like next.js or svelte) so that when the js renders the page does not need to perform another get request for more data.
Whats working right now
- Database and ORM with gorm
- Session/Cookie authentication
- I would like to make a drop in replacement for other standards like JWT and Oauth2 support
- Package for simple API development
- Package for Site development
- Support for a frame
- Easily create pages with everything a page needs defined in the page file (not including the template itself)
- Dedicated function to include js in a template
- Easy preinjected template variables for current auth, data, meta and existing routes
- Overall easy to read and very extensible design
Features on the horison
- [x] Typescirpt support for the teamplate script
- [x] Static file serving
- [ ] MAAAybe a golang wasm server?
- [x] Support for easily adding a js framework (React, Vue, Angular, etcβ¦)
- Maybe see if we can inject the template data into these as well, would need some thinking through