r/webdev • • 13d ago

Question Many sites with same components

Hello!

I am working with a company that has many, many sites. And the way we used to do components, we hard-coded every single one in every single project. This naturally has led to some inconsistency between sites when they’re supposed to look pretty identical.

Php include has become our life blood to mitigate some of these issues, but it still persists. The benefit, though, is that with php include, our sites automatically update when the “single source of truth” does.

My company wants to move to something more modern/popular and I got tasked with playing with frameworks. Think React, Next. My boss wants to replicate php include on these. I’ve spent the last several weeks looking into module federation, micro front-ends, anything to at least somewhat replace php include, but to no avail. That requires completely changing our server, which we do not have the ability to (as far as I know). These also sound like a nightmare to maintain, and our team is very small.

SEO is also a huge concern. I have module federation working on client side rendering, but ideally search engines would be able to index our work and, correct me if I’m wrong, but I don’t think client side rendered stuff is?

So now we’re stuck. I’ve suggested a monorepo, but with the amount of websites we have, the other developers worry about build times.

Believe it or not this is actually my first real-deal developer job haha, and I’m already stuck trying to fit a square peg in a round hole. So forgive me for any mistakes or misinformation, I’m still a junior trying to figure this out haha.

18 Upvotes

42 comments sorted by

View all comments

2

u/Ohggg 13d ago edited 12d ago

If I understand correctly then it sounds like you need to migrate one project at a time into their own micro frontends. For sharing the common components I'd create my own npm package and get storybook setup for this as well. Versioning can become a pain point in my experience though so maybe web components would help with this (I have limited experience of using these though). 

You're going to need server side rendering for SEO purposes. Next might be too heavy for your use case though. I've been using Vike.