Next.js to Hono: What a 100-Point Lighthouse Blog Actually Shows
A new account of moving a public blog from Next.js to Hono makes a useful case for measuring the JavaScript a reading page actually needs. It is one implementation report, however, rather than a framework-wide result. Before copying the migration, compare your own pages under matched conditions and check which publishing features you would need to replace.

Keep the author’s result attached to its workload
In an October 26, 2026 post, Bloffy’s creator reports reaching 100 across Lighthouse categories after the move. The post describes public pages with no interaction, earlier caching and image-optimization work, and a Next.js 16.1.6 implementation. The author also says the blog’s management app still uses Next.js. Those details matter: a public reading page and its editing application can have different requirements.
The creator’s migration account and reported measurements
Compare measurements, not just the score badge
Chrome’s documentation says the Lighthouse Performance score is a weighted combination of metric scores. Opportunities and Diagnostics do not directly contribute to that score, although acting on them can improve the underlying metrics. It also explains why results fluctuate with conditions such as devices, network routing, ads and browser extensions.
Chrome’s explanation of scoring and variability
For a useful before-and-after comparison, save the reports and record the tested URL, build, device mode, tool version and relevant test settings. Keep page content and third-party scripts comparable. Repeat the runs and retain the spread of results, rather than selecting the best run from one build and the worst from the other.
Read the metrics and diagnostics together. If the proposed benefit is less client JavaScript, inspect what was transferred and which scripts ran, alongside rendering and blocking measurements. If you also changed image delivery or caching, record those changes separately. A faster replacement does not, by itself, isolate which change produced the gain.
Check real visitors separately
Google’s web.dev guidance distinguishes lab data, gathered under controlled device and network conditions, from field data collected from real visits. Real users bring different devices, networks and locations. Good lab results and poor field results can therefore coexist; a single successful lab run cannot establish every visitor’s experience.
Google’s guide to interpreting lab and field differences
After a trial, compare available real-user data over an appropriate observation period, keeping any changes in audience or traffic visible. If your site lacks usable field data, say that in the decision record. Do not replace the missing evidence with a claim that the new framework must be faster for everyone.
Inventory features before replacing the publishing stack
Next.js also supports static export, which produces HTML, CSS and JavaScript assets for a static web server. Its documentation lists important boundaries: Incremental Static Regeneration, Server Actions and the default image-optimization loader are among the unsupported features in that mode. Static output is an architectural choice with feature consequences, not simply a switch that promises a perfect score.
Next.js static-export capabilities and unsupported features
List how a new article becomes public, how images are prepared, what search and forms require, and how old URLs remain reachable. Test one representative reading page before committing to a full rewrite. Include a publishing update and a broken-link check in that trial, so you assess both the reader experience and the work of operating the site.
Check your performance comparison
Choose the implementation that meets your measured performance target while preserving the features you need. The useful lesson from the report is to examine the workload and its delivered code; its 100-point result remains evidence about that particular blog.