DEV Community

Dima Grossman
Dima Grossman

Posted on • Originally published at novu.co

Why we have built our main website in Gatsby + Strapi instead of WordPress.

Today WordPress is one of the most reliable CRMs in the world.
I dare to say that this is one of the things that keeps PHP alive.
And for a good reason, with website builders such as Elementor and Divi, Product Marketer jobs become accessible in a drag and drop environment.

So why Gatsby?

We can say that it's mainly for SSG and speed, but that's not the case.
You can have amazing pre-render plugins to achieve almost the same results.

We are building the 1st open-source notifications infrastructure at https://github.com/novuhq/novu .
Our product is built by the community, and there is no really a product without our community support.
It means it should be fully available for the community to fork, contribute and use.

This is why at Novu, we build everything public, you can find our website and backend source here:
https://github.com/novuhq/website
https://github.com/novuhq/cms

But digging deeper, you can find some other important notes, for example:

  • WordPress suffers from migrations. You won't find websites with both stage and production environments easily implemented.
  • Our main application UI is built with React. So it's a lot easier for contributors to dive into the codebase without learning a new framework or language.
  • CI/CD is a lot easier, just a few clicks away with Gatsby.
  • We can run asynchronous code without using a hacky ubuntu cron jobs.
  • We can use our Novu libraries directly with our website.
  • We can query our database data easily with GraphQL. For example, have you tried to query wp_posts?

Do you think we have made the right choice?
Should we have gone with WordPress anyway?
Should we have gone with Next.js or Remix?
Let me know what you think.

Top comments (2)

Collapse
 
gdledsan profile image
Edmundo Sanchez

Definitely tbe right choice, most SSGs fo the same things.

I would use less JS though, I still refuse to use front end anything, I still use Vanilla.js

Collapse
 
hamodey85 profile image
Mohammed Almajid

I would go with next instead