Overview
Deal.nl is part of We Compare BV, based in the Netherlands. The product describes itself as “a website that provides price comparisons of every day items for consumers based in the Netherlands.” In practice that means a Dutch-language storefront for finding the best price on the things people actually buy: category browsing, brand rails, and the product price-comparison card at its core.
A site like this depends on speed. People arrive to compare, decide, and leave. Every page that loads slowly is a comparison that does not happen.
The brief
Our conversations with Deal.nl were about two things at once. The first was simple to state and hard to do: optimize the site so it scores far better on performance. The second was more exploratory: the team wanted to see what migrating their Vue and Nuxt stack to Astro would look like in practice, with Vue still in the picture.
So this was never a redesign. The interface people already use stays. The brief was about the engine underneath it, and about proving, with a real implementation rather than a slide, whether a lighter framework earns its keep.
Our approach
We treated the question as something to answer with a build, not an argument. The production site runs on Nuxt. We stood up a parallel implementation on Astro and kept Vue where Vue made sense. Astro’s model lets you ship mostly static, server-rendered HTML and hydrate only the interactive parts, a good fit for a catalogue of comparison cards and category pages where most of the page is content, not application state.
We measured both versions the same way, against PageSpeed Insights, so the comparison was like for like: the existing production Nuxt app on one side, the Astro and Vue demo on the other. We would rather show two real builds and two real reports than promise a number. The demo is live at demo-dav.vercel.app, alongside the production site at deal.nl, so the difference is something you can open and check yourself.
What we made
The deliverable is a working Astro and Vue rebuild of the Deal.nl experience, set against the production Nuxt app so the two can be compared honestly: the same Dutch storefront rendered on a lighter foundation.
Around that we assembled the evidence: PageSpeed Insights reports for both apps, the production Nuxt build as the before and the Astro + Vue demo as the after. Those two reports sit at the centre of the case, because they are the thing the engagement was meant to answer.
Results
On mobile, the Lighthouse performance score moved from 30 to 98 between the production Nuxt app and the Astro + Vue demo.
| Metric | Nuxt (before) | Astro + Vue (after) |
|---|---|---|
| Performance | 30 | 98 |
| Accessibility | 75 | 100 |
| SEO | 93 | 100 |
| First Contentful Paint | 3.8 s | 2.0 s |
| Largest Contentful Paint | 4.3 s | 2.0 s |
| Total Blocking Time | 2,110 ms | 0 ms |
| Cumulative Layout Shift | 0.282 | 0.016 |
| Speed Index | 6.2 s | 2.4 s |
Gallery