dauntless-builder
                                
                                 dauntless-builder copied to clipboard
                                
                                    dauntless-builder copied to clipboard
                            
                            
                            
                        Consider adding a backend component
Currently Dauntless Builder is a full frontend application which has a lot of upsides but also downsides, there are some features I've been thinking about implementing that aren't feasible with the current model or at least very difficult from a technical point of view.
These features would include
- An account system which would let you...
- save builds across devices
- add a different form of builds with an ID that can be updated by the author, also maybe adding ratings or comments
- build collections, similar to what we do with Meta Builds right now where a content creator or other community members can create multiple builds and present them as part of one big collection (with maybe explanations)
- making guides on the website?
 
- add the ability to allow users to propose data changes, as I'm slow and this is also not something just anyone can do (yaml, git), also makes updating faster I guess... I could also give certain users direct editing abilities and maybe this wouldn't be something I'm involved with anymore
Downsides
- This is essentially another rewrite 😰
- This will increase the costs of running Dauntless Builder
- Offline capabilities could be limited (although everything that's possible rn should still be possible then maybe)
- extra time burden for operations and also having to think about security which wasn't really much of a concern until now
Implementation
This could probably be done using something like Firebase, although implementing this with a more traditional stack (Django, Fastapi, Laravel, Express, etc) might also not be a bad idea.
Stage 1 would probably just offer a backend ui to edit certain things and have the frontend pull the generated JSON in the build process.
Things to move to the backend for stage 1:
- meta/trials/beginner builds authoring, probably fairly simple just offer a list of builds. Probably a good idea to launch this with the new page layout
- content for home page, maybe add something like a news feed
- item data, being able to edit item data centrally instead of using the current yaml approach. This will also allow other people (I give access to for now...) to update them. Might still be good to hide this behind a sort of draft system where a user can propose a change but someone else still would have to accept it.
- localization, editing will probably stay on crowdin but the data should be hosted inside the backend (also maybe with drafting)
- ability to display a sort of banner on top of the page, probably to be combined with news if I'd do this
Stage 2 would be expansion into user accounts. Don't know if I'll implement all or any of these until Dauntless Reworked
- sync settings with server
- user favorite builds
- custom user created build collections (expansion on the feature from stage 1 which will be used for meta, beginner builds
- annotated builds, special builds with custom title, comments and reviews, probably to be displayed in a feed? Not sure yet. These builds would be pinned to a hard coded url and the build could be updated independently but still retain the url example /@atomicptr/my-fancy-sword-build