<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/removing-next-js-got-my-blog-to-100-on-every-lighthouse-category-hfkomrc2g" -->

---
title: Removing Next.js Got My Blog to 100 on Every Lighthouse...
description: Removing Next.js from a static blog got every Lighthouse category to a perfect 100. The author found Next.js always ships a client runtime, even for pages...
canonical: https://daily.dev/posts/removing-next-js-got-my-blog-to-100-on-every-lighthouse-category-hfkomrc2g
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: Removing Next.js Got My Blog to 100 on Every Lighthouse Category | daily.dev
og:description: Removing Next.js from a static blog got every Lighthouse category to a perfect 100. The author found Next.js always ships a client runtime, even for pages...
og:url: https://daily.dev/posts/removing-next-js-got-my-blog-to-100-on-every-lighthouse-category-hfkomrc2g
og:image: https://api.daily.dev/og/posts/HfkOMrC2g.png
og:image:alt: Removing Next.js Got My Blog to 100 on Every Lighthouse Category
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Removing Next.js Got My Blog to 100 on Every Lighthouse Category

**[Hacker News](https://daily.dev/sources/hn)** · 8 min read · 1 upvotes · 1 comments

## Summary

Removing Next.js from a static blog got every Lighthouse category to a perfect 100. The author found Next.js always ships a client runtime, even for pages built with only server components, because next/link and next/image are themselves client components that trigger hydration. Unused JavaScript alone totaled 230,460 bytes before the switch. After rebuilding the site with Hono instead, unused code dropped to 407 bytes, build time fell about 40%, and the pre-render long task time dropped from 309.3ms to 68.01ms, a 78% improvement.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://korindiehacker.bloffy.blog/en/removing-nextjs-got-my-blog-to-100-on-every-lighthouse-category>

## Questions this post answers

### Why does my Next.js app ship JavaScript and trigger hydration even though I only use server components?

Because next/link and next/image are themselves client components marked with 'use client', so including even just those two forces Next.js to pull in its runtime, hydration code, and the RSC payload for the router. Stripping all custom client components did not remove this, since the framework's App Router runtime, router, and error boundaries still ship regardless.

_Developers chasing a perfect Lighthouse score track framework-level gotchas like this on daily.dev._

### How much faster is Hono than Next.js for rendering a static page before anything appears on screen?

The long task that runs before anything renders took 309.3ms on Next.js (server components only) versus 68.01ms when the same page was rebuilt with Hono, roughly a 78% improvement. Switching also cut unused JavaScript from 230,460 bytes down to 407 bytes and reduced build time by about 40%.

_Anyone weighing lightweight frameworks against Next.js for static sites can compare real benchmarks like this on daily.dev._

## Community take

How the wider developer community reacted, aggregated from 1 discussion and 82 comments across hackernews (as of 2026-10-26).

**TL;DR:** The thread largely agrees that Next.js is overkill for a static blog and that lighter tools (Astro, Hugo, Zola, Hono, plain HTML) are better suited, though some push back that this is an unsurprising non-finding and that Next.js's static export could have solved the same problem.

**Sentiment:** 20% positive · 35% mixed · 45% skeptical

**The case for**

- Several developers confirm lightweight static-site tools (Astro, Hugo, Zola) easily achieve perfect Lighthouse scores with far less complexity.
- Some argue avoiding frameworks entirely is now more viable thanks to LLMs handling boilerplate that frameworks used to simplify.
- Multiple commenters say Next.js mixes paradigms (SSR/CSR/SSG) in ways that add complexity and bugs for library authors and developers alike.

**The pushback**

- Many pointed out Next.js already supports full static export, so the switch may have been unnecessary rather than a fundamental Next.js flaw.
- Several say achieving 100 on Lighthouse with Next.js is trivial with care, making the post's framing misleading.
- Some view the whole premise as an obvious, low-effort observation comparing it to not needing a Ferrari to commute.
- Concern raised that even Next.js's static export still ships a sizeable, largely unnecessary JS bundle.

**By community**

- hackernews (heated): Heavy disagreement split between those celebrating lighter alternatives to Next.js and those defending Next.js or calling the post's finding obvious/unoriginal.

**Hottest debate:** Whether the performance problem was inherent to Next.js or simply a result of not using its static export feature properly.

**Open questions**

- Would Next.js's static export mode have fully closed the gap without switching frameworks?
- How much of the perceived shift away from heavy frameworks is really driven by AI-assisted coding making 'no framework' viable?

**Highlights**

> Respectfully, I don't understand this. They never needed Next.js for a static blog. This is like writing a post about how I didn't need a Ferrari to commute to work and I saved money by taking the bus.
> — [pigbearpig on hackernews · 5 comments](https://news.ycombinator.com/item?id=50239205)

> Am I missing something? Nextjs static export would have solved this I feel. And hosting it on Cloudflare Pages and put the CDN in front and you're done. Having said that, sure perhaps Astro would be lighter than Nextjs.
> — [prtmnth on hackernews](https://news.ycombinator.com/item?id=50240720)

> It's pretty easy to get 100 on every lighthouse category even while using next. The scoring is based on how fast a page loads and what blocks its loading time. If you develop it with a bit of care, that is a non-issue. My funny agency website (https://www.pixlw.com/) is purely nextjs and it scores a 100 on Lighthouse as well because I kept working on it till it didn't.
> — [altmanaltman on hackernews](https://news.ycombinator.com/item?id=50239175)

> The static export still keeps a large JS bundle which is mostly unnecessary
> — [flexagoon on hackernews](https://news.ycombinator.com/item?id=50241118)

> Next.js is not a good fit for most applications. It honestly never has been. It has just been Vercel's relentless over-the-top marketing that has been trying to convince junior developers that it is.
> — [dbbk on hackernews](https://news.ycombinator.com/item?id=50241453)

**Source threads**

- [hackernews](https://news.ycombinator.com/item?id=50237712) · 142 points · 82 comments

## Community discussion

Top comments from developers on daily.dev.

**@diyweb** · 0 upvotes

> The detail that next/link and next/image pull in hydration even on server-only pages is the useful one, since many people assume server components alone give a near zero-JS page. Before switching frameworks it would be worth testing whether static export with plain anchors and a plain img for the hero removes most of that 230 KB. The trade-off is that a custom Hono setup means you now own the routing and caching that the framework handled for you.

## Similar posts on daily.dev

- [I Reduced Our React Bundle by 70% Without Removing a Single Feature](https://daily.dev/posts/i-reduced-our-react-bundle-by-70-without-removing-a-single-feature-szhhzvcpd) · Medium · 18 upvotes · 3 comments
- [Improving navigation experience in v0 with Next.js 16.4](https://daily.dev/posts/improving-navigation-experience-in-v0-with-next-js-16-4-xatsmhtug) · Next.js · 9 upvotes · 1 comments
- [Fixing Server Component Bundle Leaks in Next.js](https://daily.dev/posts/fixing-server-component-bundle-leaks-in-next-js-a3htgnywf) · SitePoint · 1 upvotes · 0 comments
- [Four things that made my Eleventy website faster without removing the fun](https://daily.dev/posts/four-things-that-made-my-eleventy-website-faster-without-removing-the-fun-5pnqlr22o) · Blogging and all that Malarkey · 2 upvotes · 0 comments

---

Tags: [#webdev](https://daily.dev/tags/webdev), [#nextjs](https://daily.dev/tags/nextjs), [#lighthouse](https://daily.dev/tags/lighthouse)

[View this post on daily.dev](https://daily.dev/posts/removing-next-js-got-my-blog-to-100-on-every-lighthouse-category-hfkomrc2g)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"Removing Next.js Got My Blog to 100 on Every Lighthouse Category","url":"https://daily.dev/posts/removing-next-js-got-my-blog-to-100-on-every-lighthouse-category-hfkomrc2g","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/removing-next-js-got-my-blog-to-100-on-every-lighthouse-category-hfkomrc2g"},"datePublished":"2026-10-26T03:55:13.012Z","dateModified":"2026-10-26T10:51:51.607Z","description":"Removing Next.js from a static blog got every Lighthouse category to a perfect 100. The author found Next.js always ships a client runtime, even for pages...","image":"https://media.daily.dev/image/upload/s--VDukGCjf--/f_auto/v1722860399/public/Placeholder%2002","thumbnailUrl":"https://media.daily.dev/image/upload/s--VDukGCjf--/f_auto/v1722860399/public/Placeholder%2002","isAccessibleForFree":true,"articleSection":"Hacker News","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"Hacker News","logo":"https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/hn","url":"https://daily.dev/sources/hn"},"commentCount":1,"discussionUrl":"https://daily.dev/posts/removing-next-js-got-my-blog-to-100-on-every-lighthouse-category-hfkomrc2g","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":1},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":1}],"keywords":"webdev,nextjs,lighthouse","timeRequired":"PT8M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Hacker News","item":"https://daily.dev/sources/hn"},{"@type":"ListItem","position":3,"name":"Removing Next.js Got My Blog to 100 on Every Lighthouse Category"}]}
{"@context":"https://schema.org","@type":"WebPage","@id":"https://daily.dev/posts/removing-next-js-got-my-blog-to-100-on-every-lighthouse-category-hfkomrc2g","comment":[{"@type":"Comment","text":"The detail that next/link and next/image pull in hydration even on server-only pages is the useful one, since many people assume server components alone give a near zero-JS page. Before switching frameworks it would be worth testing whether static export with plain anchors and a plain img for the hero removes most of that 230 KB. The trade-off is that a custom Hono setup means you now own the routing and caching that the framework handled for you.","datePublished":"2026-10-26T15:49:42.844Z","url":"https://daily.dev/posts/HfkOMrC2g#c-XvTgpWrmL","author":{"@type":"Person","name":"DiyWeb","url":"https://daily.dev/diyweb","image":"https://media.daily.dev/image/upload/s--dgS6jDeN--/f_auto/v1790879420/avatars/avatar_774zDwMaRTNS1fv5OKStX?_a=BAMAMicg0"}}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/removing-next-js-got-my-blog-to-100-on-every-lighthouse-category-hfkomrc2g#faq","mainEntity":[{"@type":"Question","name":"Why does my Next.js app ship JavaScript and trigger hydration even though I only use server components?","acceptedAnswer":{"@type":"Answer","text":"Because next/link and next/image are themselves client components marked with 'use client', so including even just those two forces Next.js to pull in its runtime, hydration code, and the RSC payload for the router. Stripping all custom client components did not remove this, since the framework's App Router runtime, router, and error boundaries still ship regardless. Developers chasing a perfect Lighthouse score track framework-level gotchas like this on daily.dev."}},{"@type":"Question","name":"How much faster is Hono than Next.js for rendering a static page before anything appears on screen?","acceptedAnswer":{"@type":"Answer","text":"The long task that runs before anything renders took 309.3ms on Next.js (server components only) versus 68.01ms when the same page was rebuilt with Hono, roughly a 78% improvement. Switching also cut unused JavaScript from 230,460 bytes down to 407 bytes and reduced build time by about 40%. Anyone weighing lightweight frameworks against Next.js for static sites can compare real benchmarks like this on daily.dev."}}]}
```

