30

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.

you are viewing a single comment's thread
view the rest of the comments
[-] Mirror Giraffe@piefed.social 6 points 2 days ago* (last edited 2 days ago)

One thing that's common when having multiple sources like different data sources, cms and utility services is having a backend for frontend (BFF) which is what your frontend would call and in turn it would gather all your resources and format it the way your frontend expects it. The bff can cache the more static sources while proxying more dynamic ones.

This might be overkill for your project but it's a nice paradigm when you're dealing with multiple sources or sources that might change.

[-] adry@piefed.social 2 points 2 days ago

Yes, I think the problem description fits for moving from static website to having a database and a web service ( with or without javascript, could be just forms, check htmx.org ). For example, if you know Python you could go and check Django. But there are many other ORMs, all aiming to make working with databases easier. Btw, I am not expanding the ORM acronym because it would only add noise. OP should look into that, and understand why these 'frameworks' are called like that... Good luck!

this post was submitted on 22 May 2025
30 points (96.9% liked)

Programming

20305 readers
424 users here now

Welcome to the main community in programming.dev! Feel free to post anything relating to programming here!

Cross posting is strongly encouraged in the instance. If you feel your post or another person's post makes sense in another community cross post into it.

Hope you enjoy the instance!

Rules

Rules

  • Follow the programming.dev instance rules
  • Keep content related to programming in some way
  • If you're posting long videos try to add in some form of tldr for those who don't want to watch videos

Wormhole

Follow the wormhole through a path of communities !webdev@programming.dev



founded 2 years ago
MODERATORS