CMS Re-Architecture | Case Study
tayOur Website Just Got a Major Upgrade
We’ve overhauled our tech stack and marketing site—delivering faster performance, near-instant content updates, and a more flexible foundation for the future.
What does this mean for you?Content updates go live in seconds, not minutes.
A faster, more reliable site with improved performance.
A future-proof platform that makes our jobs easier.
Author: Taylor Dawson
On this page
Why We Made the Move
Our goal was to modernize our tech stack and marketing site to improve speed, flexibility, and efficiency.
Here’s how we defined success:
Ease of Use
Site Metrics
Less Hardcoding
1. Ease of Use
One of our primary goals was to improve the ease of use for our content team. We measured this by gathering direct feedback on the content creation and editing experience in both CMS platforms.
Updating content shouldn’t require an engineer. With our new setup, teams can make changes faster, with less friction and more flexibility.
How satisfied are you with our current headless CMS/webpage building experience
How would you rate the ease of use of the CMS for content creation and editing?
How well does the CMS support collaboration among team members working on the same project?
To what extent can you customize the content and layout of webpages using the current CMS?
How well does the CMS integrate with other tools or platforms used by the team?
“I love love love the new experience, being able to visualize the page as it's built makes for faster and better designs.”
— Marketing Team Member
“I LOVE the visual editor. It makes building so much faster. same with being able to copy and paste full blocks from page to page. I love the global components that only need to be updated in one place. I also love that we can organize the asset library into folders.”
— Marketing Team Member
“Being able to quickly make a page that looks good, is accessible, and doesn't require any additional coding or help is incredible”
— Marketing Team Member
2. Site Metrics
A key objective of our migration was to ensure that the transition wouldn’t compromise, and ideally would improve, our site’s performance metrics. We set a clear goal: maintain or exceed the current Lighthouse scores to guarantee that user experience, accessibility, SEO, and best practices remained top-tier.
Growth Plays
On top of our own data gathering, we also had the help of our partners Growth Plays. They've provided us with the results blow.
*Note: this scan was when we were doing SSR and not ISR. Performance is even better under ISR.
Lighthouse
)
Old Site (Mobile)
)
New Site (Mobile)
)
Old Site (Desktop)
)
New Site (Desktop)
Lighthouse Comparison
Metrics were maintained with no performance regression except within accessibility. Part of this is from last minute changes to homepage for animations, etc.
Vercel - Real User Monitoring
With Vercel & Netlify we can monitor real-time user data for key performance metrics, similar to Lighthouse, but based on actual user interactions. The data below is based on p75 (meaning this is the stats that 75% of our user base is seeing)
First Contentful Paint
1.06s
Largest Contentful Paint
1.11s
Interaction to Next Paint
56ms
Cumulative Layout Shift
0
First Input Delay
5ms
Time to First Byte
0.08s
Real User Monitoring
Prismic/Netlify vs Nextjs/Vercel
Content Live Times
~7m 20s
Prismic took over 7 minutes for changes within the CMS to go live because a full build was required to build all pages again. This number grows as our site grows.
0 - 30s
Our new site only has to rebuild the single page that was changed, meaning new content is live within seconds!
3. Less Hardcoding
We aimed to reduce the number of hardcoded pages and components by increasing flexibility within the CMS. The results speak for themselves:
Components

Scanner & Free Trial Forms
Tables
Navigations
etc
Nearly everything you see on the site today can be edited and created in the CMS 
Storyblok
Switching to Storyblok introduced several CMS-specific benefits not available in Prismic build:
Visual Editing (Real-time page preview while editing)
Comments & Mentions (Improved collaboration within the CMS)
Better Search & Filtering (More robust than Prismic)
Stronger Integrations & Apps
S3 Backups
Timed Releases
Custom Workflows
)
Tech Stack
We’ve made significant upgrades to our stack, incorporating cutting-edge technologies:
Gatsby → Next.js v14
SSG (Static Site Generation) → ISR (Incremental Static Regeneration)
Node v14 → Node v22 (latest version)
Netlify → Vercel
Turborepo
JoyUI
Additionally, we’ve completely re-written everything from the ground up, removing outdated legacy code and logic.
Additional Enhancements
There are so many improvements, new features and things to call out that we didn't want to leave any of these behind:
Hubspot Form RenderingCurrent site relies on Hubspot to render our forms and then our code to style the inputs to match our branding.
Our new site pulls the form definition from Hubspot and renders out the components in JoyUI. We control the validation, submission, etc which gives us more control and an awesome foundation for potential features down the road.
Because of this, it means we have no hardcoded forms on the website like we did in the past. So no more changes needing to go through marketing engineering on scanner gate and free trial forms.
Icons
Plugin that connects directly to audioeye/ui-icons to allow selection of icons for header navs, cards, etc directly in Storyblok
Hubspot Forms
Plugin that automatically pulls our forms directly from Hubspot and allows the user to just have to choose one form. It then automagically pulls in the other corresponding ids it needs
Currently in prismic you have to supply 4 different form ids for anytime you are adding a form to a section. On top of that, it's all manual
In Prismic, we had a limited set of “global” components that allowed us to make updates across multiple pages, primarily focusing on the header and footer. However, these were only applicable to our default pages, not our international microsites or other variations.
Now, we’ve expanded the scope of globals, giving us the ability to update content in one place without having to manually edit every page it appears on. Here’s a look at the new capabilities:
Footer
We can now easily manage footer content across the entire site, ensuring consistency without repetitive edits.
Table of Contents
Previously, adding a table of contents to blog posts required manual entry of each link. Now, it’s fully automated. When you create a blog post, the system will automatically generate the table of contents by pulling all H2 headings from the content.
Mobile Version
The previous site only had a desktop version of the table of contents. Now, we have a mobile-friendly version as well, offering seamless functionality across devices.
Header
We now have the flexibility to create as many headers as needed, along with the ability to add menus, buttons, mega menus, and more.
New Utility Bar has been added for additional functionality in our header navigations
Logo Banners
Gone are the days of updating customer logos or the number of customers on every page. Now, you can update this information in a central global logo banner, making it easier to maintain.
Secondary Navigation
This new component is perfect for multi-page guides that require consistent secondary navigation throughout. It ensures a seamless experience for users navigating across various sections of the site.
Button
Button functionality can now be globally referenced, which is incredibly powerful. If we need to update the text or functionality of a core button (e.g., changing it from linking to a modal form to directing to a demo page), we only need to do so once—no need to edit every individual button on each page.
Plan Cards
Previously, our plans were hardcoded in the CMS. Now, we can create and manage multiple “plans” and reference them throughout different content types, such as Columned or Split Content.
Rich Text Content
With global rich text blocks, we can maintain consistency in areas like the footer across pages. This allows us to update things like client count or other contact information in one place, rather than updating multiple pages individually.
Every component on pages can work with blogs as well as tons of of new embeds for the rich text editor
Card
Eyebrow
Code Block (already on current site but with improved syntax highlighting that actually highlights based on language)
etc
Previously, almost every table in Prismic was hardcoded as static content. Now, our teams can create a variety of dynamic tables with numerous features directly within the CMS. These features include:
Pricing tables
Tables
Checklist tables
Etc
We now have an actual component that allows us to gate content behind a form. Previously this was all done as one off static/hardcoded content
InternationalizationAlthough we had our EU microsites on Prismic, they were quickly thrown together and did not give us a solid foundation to build upon into new countries, build new pages, etc. Our new setup allows for quick integration with new languages and makes it extremely easy for our teams to build new pages in those languages and push out new content.
404 PagesOur previous 404 page was hardcoded and required marketing engineering to update. Now we have full control of this page in the CMS along with versions per language that we support.
Tracking DataNew tracking events added and past event metadata improved across the board. All events can be viewed in our new documentation.
👣(opens in a new tab) Audioeye.com - Event Tracking(opens in a new tab)
BrandingWe have undergone a comprehensive branding update, bringing more consistent styling, messaging, and design across the entire website. This refresh includes updated component looks, enhanced styling, and a more cohesive visual identity. Users will also experience a redesigned Scanner results page with an improved midscreen experience, as well as refined layout and styling updates to the color contrast checker tool for better usability.
FirewallWith our transition to Vercel, we now have access to their firewall features, providing deeper insights into our traffic and enabling custom rules to protect against bot traffic and DDoS attacks. Additionally, we can secure our preview and staging sites behind our own VPN for enhanced access control.
Conclusion
This migration to Storyblok has significantly enhanced our content management experience, streamlined workflows, and improved our site’s overall flexibility and performance. With a stronger foundation in place, we are well-positioned for future growth, personalization, and international expansion.
Next Steps?
Continue gathering feedback from content teams, fine-tune workflows, and explore additional optimizations for personalization and performance.

