I’ll keep this one relatively short. I just thought that I’d share what I’ve been up to lately, I’m currently a very, very busy bee! 🐝
One thing that I’ve recently worked on at QuoteOnSite is what we’re calling the content library, from an end user perspective, this is essentially a web based file system. Only we don’t use it to store files, rather we use this to store templates, kinda.
Because we allow you to use templates, save you re-doing the same document structure over & over, we now allow you to favourite specific bits. So you may not want to reuse an entire template, you may just want a block of text or a specific page. This is where the content library steps into play!
A part of the challenge that I had with this was allowing people to nest folders, it required some recursive behaviour when carrying out actions such as deleting a folder. Not to mention navigating between folders.
On the front end, one of the biggest hassles was trying to get a clean & simple to use context menu, e.g. allowing the user to right click to interact with a given entity.
I tried to keep it as similar to a file system that you may use with your operating system. Allowing you to drag & drop files & folders into a specific folder, etc.
Because of some constraints around the technical stack & being such a small team, keeping track of state is somewhat of a challenge at this point in time. We’re trying to maintain existing features, resolve existing bugs, all while trying to add new, cool & funky features. The challenge arrives when using older front end technologies as opposed to the likes of React bundled with WebPack & all that good stuff.
At the time of writing, we’re also trying to find the right balance between maintaining the existing design language, while trying to update it also. The team simply isn’t big enough for us to be able to scrap large portions of the application & start from scratch. There’s a lot of legacy code that’s lingering in the shadows…
If anything, introducing the likes of being able to drag & drop sections around a page & among other pages, that was quite the challenge as the underlying data structure wasn’t originally designed for this kind of functionality. 😅
While the application isn’t perfect, I’ve taken it on like it’s my baby! 🤘
As the team grows I plan to do a lot of challenging & very interesting refactoring. Due to it’s natural flexibility, I’d really like to rewrite a large portion of the application to take advantage of Node & React.