Co-Founder at Kernelics
June 2, 2025
3 min read
Why we initially chose wordpress for our website?
The limitations of wordpress: what slowed us down
Choosing the right frontend stack for a modern website
Why we used next.js for server-side rendering and static generation
Our jamstack frontend tech stack
Wordpress backend limitations that led to rebuilding
Why we chose strapi as our headless CMS?
Infrastructure setup: hosting and development workflow
Environment management and deployment automation
The results of our website rebuild
This article reflects on our journey re-implementing the Kernelics website using tools from the JavaScript ecosystem, an effort that brought technical alignment, flexibility, and long-term maintainability to a site that had started to hold us back.
When we launched in early 2020, our focus was on building partnerships and landing our first clients. Marketing wasn’t a priority, and a website felt more like a “nice-to-have.” We even joked: “It’s kind of weird for a software development company not to have a website… right?”
So, we decided to outsource the initial build to our partners, a team experienced with WordPress development.
After about two months of traditional development, our first corporate site went live. At that stage, we were happy. The UX was decent, and the WordPress admin panel made it easy to create and update content without touching code. For a company in its first year, it worked.
Over time, cracks started to show:
Eventually, we made the decision to rebuild the website entirely, using a modern tech stack aligned with our internal tools and long-term goals.
We selected React for our website rebuild because it's the core frontend framework used across our projects.
But building a high-performing, SEO-friendly website for marketing and sales teams requires more than just a traditional single-page application (SPA) setup like Create React App. These tools don’t support server-side rendering out of the box, which limits SEO and performance at scale.
To meet real-world business needs, a website needs to achieve:
SPA-based setups often fall short at scale: performance bottlenecks, SEO workarounds, and constant developer involvement slow progress.
The fastest web pages are static HTML and CSS, ready to render on load. Traditional React apps, however, render UI in the browser using the virtual DOM, meaning the user’s device does the work before seeing anything.
The solution is server-side rendering (SSR). Instead of sending JavaScript to the browser and letting it build the UI, we pre-render the page server-side and send fully styled HTML. The result is faster time-to-interactive, improved SEO, and no loss in interactivity.
SSR and static site generation are often grouped under the broader Jamstack umbrella, though the community increasingly distinguishes between static-first Jamstack sites and hybrid-rendered frameworks like Next.js.
We built the new site with the following frontend stack:
This stack gave us the best of both worlds: a dynamic, React-based development flow paired with Jamstack’s performance and scalability benefits.
Before committing to a full backend rewrite, we tried to squeeze as much life as possible out of our existing WordPress setup.
We explored both REST (available out of the box) and GraphQL (which required more setup). REST was functional, but overly verbose, every response included unnecessary metadata. GraphQL, while more efficient and flexible in theory, proved difficult to configure in practice.
The biggest issue? Our backend was built around Advanced Custom Fields, which didn’t play nicely with GraphQL plugins. Support was limited and unstable.
After a few rounds of failed experiments, it became clear:
All of this pointed to a fundamental mismatch between the stack and our needs.
We decided to rebuild the backend from scratch, this time in Node.js, fully aligned with our frontend and internal tooling.
We researched modern Jamstack-friendly CMS options and narrowed it down to two top choices: Strapi and Directus. Both are strong contenders, but Strapi stood out for our use case.
Here’s why Strapi was the right fit:
Strapi gave us exactly what we needed: a developer-friendly, headless CMS with strong customization capabilities and a user-friendly admin panel, without compromising on performance or flexibility.
Once we settled on Strapi for the CMS, the next step was setting up the infrastructure to support it, along with the build and delivery pipeline for the frontend.
After comparing available options, we chose the following setup:
To streamline QA and review, we created three separate frontend environments, DEV, DEMO, and PRODUCTION, each with its own domain and corresponding CMS connection:
We followed a Git-based flow for both the frontend and backend:
Each environment had its own branch, making it easy to isolate changes and test them in real context.
On the frontend, we hosted with Vercel, which supports atomic deploys. Every commit creates a unique deployment URL, making it simple to test pull requests with fully working previews.
For the CMS, we set up automatic deployments on pushes to develop and main, keeping the admin panel always in sync with the codebase.
With this setup in place, we established a fully functional continuous delivery pipeline, with minimal overhead.
New features and content updates could be pushed, reviewed, and deployed in minutes, letting us focus on building instead of maintaining environments.
Rebuilding our site with Next.js and Strapi brought immediate improvements:
The site now feels like a natural extension of how we build software, not a separate system to maintain.
Since then, our website has undergone another major redesign, incorporating new requirements and technologies.
While the stack has changed, our experience working with Jamstack principles and tools like Next.js and Strapi continues to inform how we approach performance, scalability, and content workflows today.
We hope this article gives you a clear, real-world view of what it’s like to build a Jamstack site that actually works and lasts.
If you’re working with Jamstack, or thinking about it, we’re always open to helping maintain or modernize your setup. We know the technology well and understand how to apply it where it makes sense.
Feel free to reach out, we’re happy to share insights or lend a hand.