Designing Websites using CMS in 2025
For JavaScript Developers Looking for Flexibility and Control in building websites and applications
So, I wanted to build a website for myself. At first, I went the traditional route — using Vite with plain HTML and CSS. It was fun at the start, but I quickly ran into limitations when it came to building dynamic pages and updating content frequently.
Then, I thought, why not use a website builder like Squarespace, Wix, or Webflow? I gave them all a shot, but each one had its own ecosystem to learn, and I found myself more frustrated than excited. Coming from a developer background, these tools felt a bit too restrictive.
Next, I decided to explore a more battle-tested solution: WordPress. I looked into managed WordPress services, but it felt like the same struggle all over again. Learning the WordPress toolset wasn’t the problem — it was more about the fact that I’m not a PHP developer. I work mostly with JavaScript, and I wanted something that fit naturally into my workflow.
That’s when I started digging into open-source headless CMS options. I came across Strapi, Directus, Sanity, and Payload. After testing them out, I landed on Payload CMS — and here’s why.
Why I Chose Payload CMS
First off, I know Next.js has been getting some heat lately for being bloated, and there are solid competitors like Remix. But I’m comfortable with it. Yes, Vercel wants to keep you locked into their ecosystem, but honestly, they manage Next.js better than anyone else right now. AWS Amplify and Firebase still have some catching up to do in terms of features.
That brings me to Payload CMS. It integrates seamlessly with Next.js, which was a huge plus for me. But beyond that, here’s what makes it stand out:
- Open Source & Self-Hosted — I have full control over my data and don’t have to rely on a third-party service.
- Configuration as Code — No need to click around a dashboard endlessly; everything is set up through code.
- Extensibility — The API is flexible, and I can customize almost anything.
- TypeScript Support — Coming from a JavaScript background, this made development smoother and more predictable.
- Fully Customizable — Unlike other CMS platforms that box you into their way of doing things, Payload lets you customize it to your needs.
What’s Missing?
No CMS is perfect, and Payload is still growing. The form builder plugin is a great example — it’s in the early stages, but for a CMS to have a truly mature ecosystem, more plugins are needed. Hopefully, as the community grows, we’ll see more additions like this.
Final Thoughts
At the end of the day, choosing a CMS depends on what works best for you. For me, Payload CMS checked the right boxes. It fits into my Next.js workflow, gives me full control, and doesn’t force me into someone else’s ecosystem. If you’re a JavaScript developer looking for a flexible, modern CMS in 2025, it’s definitely worth a look.