I need to create a website that holds some events data as well as other content, it will also maybe need to grab some data from APIs.
Since I'm skilled with Hugo (static site generator) I thought I could use that but it's turning out it's a total mess actually.
In Hugo I can have contacts (like events organizers) as taxonomy, but that is a different format (yaml) than CSV or vcard, and it's also static, meaning that if I edit a contact it will only change in Hugo. So I found myself having to manage contacts in 4 different places, in 4 different ways: Hugo yaml, Thunderbird, google contacts, CSV (from earlier days)... And I will add mailchimp once I'll also add a newsletter. This ensures my contacts are kinda becoming a mess.
Same goes with events, it's okay if I generate events in Hugo, but if I grab events from APIs and then the API content changes I will have to modify it on Hugo as well.
Everything it's turning out to be a total mess essentially and I think I tried to use something simple to build something quite complex, I realized the complexity later.
Now ideally I would like to be able to have my contacts, my newsletter, my content in one single place ato have everything nicely synced and not having to deal with 30 different lists or formats.
What should I do?
I know about the jamstack and headless CMS like ghosts and I was wondering if they could be a good solution, or if I should opt for a full CMS. Obvious solution would be WordPress but I wouldn't really want to mess with all the plugins.
Also I spent quite a but of time in building my templates for the Hugo website and throwing everything away would feel awful, if there's a way to reuse them (?).
I know some JavaScript basics but I would avoid it if possible.
It sounds like you need your own API with some sort of persistent store. You may be able to reuse what you've done as the view layer?
If this were something I was going to tackle, I'd start by identifying the types of users (authors, admins, users, etc.)
Then I'd think about the kinds of workflows those users are going to need to do. E.g. admins can edit or delete anything, authors can alter their own content, users can only view data, etc.
Now with some loose requirements in mind, start thinking about how to solve the problems for your users. This is when you start evaluating what technology might be a good fit for your problem domain.
You could probably throw together a trivial API that only you can publish to fairly quickly if that is sufficient for what you are trying to do. I dare say chatgpt can spit out a simple rest API in whatever language you like quickly and pretty accurately.
I wouldn't chase making a static website tool dynamic. That will almost certainly end in heartbreak.