<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Ezhil Sivaraj SR</title>
    <description>The latest articles on Forem by Ezhil Sivaraj SR (@ezhil_sivarajsr).</description>
    <link>https://forem.com/ezhil_sivarajsr</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2536645%2F7ef806fa-4146-472d-8e54-6d6b696b72bf.png</url>
      <title>Forem: Ezhil Sivaraj SR</title>
      <link>https://forem.com/ezhil_sivarajsr</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/ezhil_sivarajsr"/>
    <language>en</language>
    <item>
      <title>I Tried Vinext The Build Felt Slightly Better</title>
      <dc:creator>Ezhil Sivaraj SR</dc:creator>
      <pubDate>Wed, 22 Apr 2026 04:55:00 +0000</pubDate>
      <link>https://forem.com/ezhil_sivarajsr/i-tried-vinext-the-build-felt-slightly-better-4ni5</link>
      <guid>https://forem.com/ezhil_sivarajsr/i-tried-vinext-the-build-felt-slightly-better-4ni5</guid>
      <description>&lt;p&gt;I have been building a full-stack mentor app with Bun, tRPC, and Next.js. The project is not very large, but it has the usual pieces you would expect in a modern full-stack application: authentication flow, dashboard pages, scheduled classes, signup, server-side logic, and API communication through tRPC.&lt;/p&gt;

&lt;p&gt;The development experience with Next.js was smooth overall. I was not struggling with the framework, and I was not trying to move away from it because of one major problem. But during regular development, one small thing kept coming back into my mind: the production build time.&lt;/p&gt;

&lt;p&gt;It was not painfully slow. It did not block me for minutes. But when I was making small changes, testing them, and running builds again and again, even a few seconds started to matter. A build that feels fine once can start feeling heavy when it becomes part of your daily feedback loop.&lt;/p&gt;

&lt;p&gt;That is what made me try Vinext.&lt;/p&gt;

&lt;p&gt;I was not trying to write a deep benchmark report. I was not trying to prove that one framework is better than another. I simply wanted to take the same kind of app, run it through Vinext, and see how the build experience felt.&lt;/p&gt;

&lt;p&gt;This post is just that: a practical view from one developer trying Vinext with an app built using Bun and tRPC.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Build Time Started to Matter
&lt;/h2&gt;

&lt;p&gt;Build time is one of those things we usually ignore until it starts interrupting our rhythm.&lt;/p&gt;

&lt;p&gt;When a project is small, we expect everything to feel quick. We expect the development server to start fast, changes to reflect quickly, and production builds to finish without making us wait too long. But modern full-stack frameworks do a lot of work behind the scenes. They compile client code, prepare server code, collect route information, generate static pages where needed, and perform type checks or framework-specific analysis.&lt;/p&gt;

&lt;p&gt;None of that work is wrong. In fact, most of it is useful. The problem is that during active development, the feeling of speed matters almost as much as the actual number.&lt;/p&gt;

&lt;p&gt;If I run a build once before deployment, five seconds may not feel like a big deal. But if I run builds many times while testing changes, comparing outputs, or checking production behavior, the waiting becomes more noticeable.&lt;/p&gt;

&lt;p&gt;That was the situation in my project. The Next.js build was acceptable, but I wanted to see whether Vinext could make that loop feel lighter.&lt;/p&gt;

&lt;h2&gt;
  
  
  The App Setup
&lt;/h2&gt;

&lt;p&gt;The app I tested was a mentor platform built with a modern TypeScript stack. The important pieces were:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Bun as the runtime and package manager&lt;/li&gt;
&lt;li&gt;Next.js as the original framework&lt;/li&gt;
&lt;li&gt;tRPC for type-safe API communication&lt;/li&gt;
&lt;li&gt;A few practical app routes such as dashboard, scheduled classes, and signup&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This matters because I was not testing Vinext with an empty starter template. I wanted to try it against the type of app I actually build.&lt;/p&gt;

&lt;p&gt;At the same time, I want to be clear: this was still a small project. The result should be understood as a local observation, not as a universal statement about every Next.js or Vinext application.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Next.js Build Output
&lt;/h2&gt;

&lt;p&gt;Here is the build output I got from Next.js:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="gp"&gt;$&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;next build
&lt;span class="go"&gt;▲ Next.js 16.1.6 (Turbopack)

✓ Compiled successfully in 4.7s
✓ Finished TypeScript in 2.3s
✓ Collecting page data using 7 workers in 343.7ms
✓ Generating static pages using 7 workers in 178.8ms
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The first number that stood out to me was the &lt;code&gt;4.7s&lt;/code&gt; compile time. After that, the build still had to finish TypeScript, collect page data, and generate static pages.&lt;/p&gt;

&lt;p&gt;To be fair, this is not a bad build time. For many projects, this would be completely acceptable. But for the size of this project, I expected the build to feel a little quicker.&lt;/p&gt;

&lt;p&gt;❗️The important detail here is that I am not calling this a complete benchmark of Next.js. I am only looking at the build output from my own project and describing how it felt during repeated development.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Wanted to See From Vinext
&lt;/h2&gt;

&lt;p&gt;Before trying Vinext, I had a simple question:&lt;/p&gt;

&lt;p&gt;Can a Vite-powered Next.js-like framework make this build feel lighter?&lt;/p&gt;

&lt;p&gt;That was the entire motivation. I was not expecting a miracle. I was not expecting the build to drop from seconds to milliseconds. I just wanted to see whether the experience felt cleaner and whether the output showed any practical improvement.&lt;/p&gt;

&lt;p&gt;Vinext was interesting to me because it tries to keep a familiar mental model while using a different build pipeline. For someone who already works with Next.js, that matters. A tool becomes easier to try when it does not ask you to forget everything you already know.&lt;/p&gt;

&lt;p&gt;Since my app was already using Bun and tRPC, this was also a useful test for my actual workflow.&lt;/p&gt;

&lt;h2&gt;
  
  
  Trying Vinext
&lt;/h2&gt;

&lt;p&gt;I ran the project with Vinext and looked at the build output carefully. Again, this was not a formal benchmark suite. I did not run multiple cold builds, average them, or test across different machines.&lt;/p&gt;

&lt;p&gt;This was a direct local test: run the build, observe the output, compare the visible numbers, and see how the process feels.&lt;/p&gt;

&lt;p&gt;For a first experiment, that was enough. Sometimes you do not need a perfect benchmark to notice whether a tool feels worth exploring further.&lt;/p&gt;

&lt;h2&gt;
  
  
  Vinext Performs Slightly Better
&lt;/h2&gt;

&lt;p&gt;Here is the Vinext build output from my test:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="gp"&gt;$&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;vinext build
&lt;span class="go"&gt;
[1/5] analyze client references...
[2/5] analyze server references... → built in 567ms
[3/5] build rsc environment...     → built in 899ms
[4/5] build client environment...  → built in 1.69s
[5/5] build ssr environment...     → built in 743ms

Build complete.
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;When I added the visible Vinext build stages, the total came to roughly &lt;code&gt;3.9s&lt;/code&gt;. Compared with the &lt;code&gt;4.7s&lt;/code&gt; compile number I saw from Next.js, this was not a huge difference, but it was still noticeable.&lt;/p&gt;

&lt;p&gt;The difference was around &lt;code&gt;0.8s&lt;/code&gt; based on those visible numbers. On paper, that may look small. In practice, it was enough to make the build feel slightly lighter.&lt;/p&gt;

&lt;p&gt;That is the main point of this post.&lt;/p&gt;

&lt;p&gt;Vinext did not completely change the experience. It did not make the build instant. But it did give me a slightly better build result in this project, and the output made the process feel clearer.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Build Output Felt Easier to Read
&lt;/h2&gt;

&lt;p&gt;One thing I liked about Vinext was how the build process was separated into visible stages.&lt;/p&gt;

&lt;p&gt;Instead of only looking at one big build step, I could see what was happening:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;client references were analyzed&lt;/li&gt;
&lt;li&gt;server references were analyzed&lt;/li&gt;
&lt;li&gt;the RSC environment was built&lt;/li&gt;
&lt;li&gt;the client environment was built&lt;/li&gt;
&lt;li&gt;the SSR environment was built&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This made the build output feel more understandable. I could immediately see where time was being spent and how the framework was preparing different parts of the app.&lt;/p&gt;

&lt;p&gt;That kind of clarity is useful. Even when the time difference is small, good output helps developers understand the system better.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why I Am Calling It "Slightly Better"
&lt;/h2&gt;

&lt;p&gt;I am intentionally using the phrase "slightly better" because that is the honest way to describe this result.&lt;/p&gt;

&lt;p&gt;The improvement was real in my test, but it was not dramatic. I do not want to turn a small local observation into a huge claim. Next.js is still mature, powerful, and widely used. Vinext is still something I am exploring.&lt;/p&gt;

&lt;p&gt;But small improvements are still worth noticing.&lt;/p&gt;

&lt;p&gt;In daily development, performance is not only about large wins. Sometimes it is about shaving off small delays, making output easier to understand, and reducing the friction that appears when you repeat the same task many times.&lt;/p&gt;

&lt;p&gt;That is where Vinext felt good to me.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Liked About Vinext
&lt;/h2&gt;

&lt;p&gt;The first thing I liked was the build clarity. The output showed each stage separately, and that made the process easier to follow.&lt;/p&gt;

&lt;p&gt;The second thing was the slight improvement in build time. A difference of less than a second may not sound exciting, but when the build already runs in only a few seconds, even a small improvement is visible.&lt;/p&gt;

&lt;p&gt;The third thing was that the setup felt promising with Bun and tRPC. I did not have to think about it as a completely different way of building apps. It still felt close to the Next.js mental model, which made the experiment more comfortable.&lt;/p&gt;

&lt;p&gt;The fourth thing was the feeling of direction. Vinext feels like an attempt to bring the speed and simplicity people like from Vite into a full-stack React framework style. That idea itself is interesting.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Would Not Claim Yet
&lt;/h2&gt;

&lt;p&gt;There are a few things I do not want to overstate.&lt;/p&gt;

&lt;p&gt;I am not saying Vinext is always faster than Next.js. I tested one project, in one setup, from my local environment.&lt;/p&gt;

&lt;p&gt;I am not saying everyone should migrate immediately. A framework decision is not only about build time. It is also about stability, documentation, deployment, ecosystem support, debugging, and long-term maintenance.&lt;/p&gt;

&lt;p&gt;I am also not saying a &lt;code&gt;0.8s&lt;/code&gt; improvement will matter equally to every developer. For some people, it may not matter at all. For others, especially those who care about tight feedback loops, it may be enough to explore further.&lt;/p&gt;

&lt;p&gt;The honest statement is simple: in my app built with Bun and tRPC, Vinext gave me a slightly better build experience.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where Vinext Still Needs Improvement
&lt;/h2&gt;

&lt;p&gt;Vinext still needs more improvement before I would speak about it as a confident production choice.&lt;/p&gt;

&lt;p&gt;It needs more real-world testing. It needs stronger documentation. It needs more examples. It also needs better out-of-the-box support for different project structures and use cases.&lt;/p&gt;

&lt;p&gt;That is not a negative point. That is how open-source tools grow.&lt;/p&gt;

&lt;p&gt;Every framework starts with rough parts. The difference between a tool that disappears and a tool that becomes useful is often the community around it. If developers only wait for tools to become perfect, those tools move slowly. But if developers try them, find issues, fix what they need, and send pull requests, the tool improves faster.&lt;/p&gt;

&lt;p&gt;Vinext feels like the kind of project where that mindset matters.&lt;/p&gt;

&lt;p&gt;If something is missing and the project is open source, the answer should not always be to complain or wait. Fork it. Understand the code. Add the support you need. Open a pull request.&lt;/p&gt;

&lt;p&gt;This is where I think the mindset of many Indian developers starts falling apart. We use open-source tools every day, but we often stay only on the consumer side. We depend on frameworks, libraries, runtimes, CLIs, and deployment tools, but when we find a gap, we rarely take the next step of contributing back.&lt;/p&gt;

&lt;p&gt;That is a bigger topic, and I want to write about it separately. But Vinext reminded me of it clearly: if we want better tools, we should not only wait for someone else to improve them. We should also build the habit of participating.&lt;/p&gt;

&lt;h2&gt;
  
  
  Final Thought
&lt;/h2&gt;

&lt;p&gt;For my app built with Bun and tRPC, Vinext gave me a slightly better build experience than what I saw with Next.js. The improvement was not huge, but it was enough to make me interested.&lt;/p&gt;

&lt;p&gt;The Next.js build was acceptable. The Vinext build felt a little lighter. The output was clearer, and the staged build process made the experience easier to understand.&lt;/p&gt;

&lt;p&gt;I would not say everyone should migrate immediately. I would say Vinext is worth trying if you are curious about Vite-powered builds in a Next.js-like setup.&lt;/p&gt;

&lt;p&gt;It still needs improvement, but that is also the point. Good tools do not become mature only because people wait for them to become perfect. They improve when developers test them, report issues, and contribute back.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>nextjs</category>
      <category>vite</category>
      <category>opensource</category>
    </item>
    <item>
      <title>When Power Centralizes in the Frontend Ecosystem — Should We Be Alarmed?</title>
      <dc:creator>Ezhil Sivaraj SR</dc:creator>
      <pubDate>Sun, 01 Mar 2026 06:31:58 +0000</pubDate>
      <link>https://forem.com/ezhil_sivarajsr/when-power-centralizes-in-the-frontend-ecosystem-should-we-be-alarmed-36l4</link>
      <guid>https://forem.com/ezhil_sivarajsr/when-power-centralizes-in-the-frontend-ecosystem-should-we-be-alarmed-36l4</guid>
      <description>&lt;p&gt;&lt;em&gt;A research-aware analysis of Vercel's growing influence, React's direction, and the ecosystem fighting back.&lt;/em&gt;&lt;/p&gt;




&lt;p&gt;Over the last few years, the frontend world has experienced an unprecedented consolidation of influence.&lt;/p&gt;

&lt;p&gt;One company sits at the center of:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The most downloaded React framework&lt;/li&gt;
&lt;li&gt;The primary production implementation of React Server Components&lt;/li&gt;
&lt;li&gt;Strategic investment, sponsorship, and acquisition of competing frameworks&lt;/li&gt;
&lt;li&gt;A deployment platform tightly integrated with those tools&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That company is &lt;strong&gt;Vercel&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;This is not an accusation. It is an architectural — and structural — observation.&lt;/p&gt;

&lt;p&gt;When one player shapes both the framework layer and the infrastructure layer, the ecosystem shifts. The question is not whether this is malicious. The question is whether it is &lt;strong&gt;healthy&lt;/strong&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Scale of Influence
&lt;/h2&gt;

&lt;p&gt;Next.js crossed &lt;strong&gt;500M+ downloads in 2025&lt;/strong&gt;. It is built and stewarded by Vercel.&lt;/p&gt;

&lt;p&gt;But Next.js is only the most visible piece. Beyond it:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Svelte&lt;/strong&gt; received direct backing from Vercel, with Rich Harris — Svelte's creator — joining the company.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Nuxt&lt;/strong&gt; aligns closely through its Nitro server engine with Vercel's deployment model.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;React Server Components&lt;/strong&gt; are most mature, most documented, and most production-ready inside Next.js.&lt;/li&gt;
&lt;li&gt;The &lt;strong&gt;App Router paradigm&lt;/strong&gt; evolves in tandem with Vercel's infrastructure model.&lt;/li&gt;
&lt;li&gt;Key &lt;strong&gt;React core team members&lt;/strong&gt; — including Sebastian Markbåge, architect behind many of React's foundational innovations — migrated to Vercel starting in late 2021.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;None of this violates open-source principles. All of it is legal.&lt;/p&gt;

&lt;p&gt;But &lt;strong&gt;ecosystem gravity is real&lt;/strong&gt;. When the most popular framework, the most optimized hosting, and the reference implementation of a major architectural shift all converge — centralization begins whether anyone intends it or not.&lt;/p&gt;




&lt;h2&gt;
  
  
  The React Server Components Inflection Point
&lt;/h2&gt;

&lt;p&gt;The most important shift is not Next.js itself. It is &lt;strong&gt;React and the introduction of React Server Components (RSC)&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;RSC fundamentally changes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Where rendering happens&lt;/li&gt;
&lt;li&gt;How data flows between client and server&lt;/li&gt;
&lt;li&gt;The client/server boundary&lt;/li&gt;
&lt;li&gt;Bundle composition and size&lt;/li&gt;
&lt;li&gt;What frameworks are expected to do&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The RSC vision originated at Meta. But the &lt;strong&gt;practical implementation and production readiness owe an enormous debt to Vercel&lt;/strong&gt;. The React team prototyped RSCs internally but struggled to fully iterate at scale. Vercel stepped in — re-architecting Next.js's App Router around RSCs, making server components the &lt;strong&gt;default&lt;/strong&gt; experience, and deeply coupling features like Server Actions, Suspense integration, and streaming to Next.js patterns.&lt;/p&gt;

&lt;p&gt;The result: official React docs heavily recommend Next.js. Much of the RSC guidance — demos, explanations, best practices — flows through Vercel's blog and Next.js documentation. The RSC payload format and Flight protocol are implemented in ways that shine brightest on Vercel's infrastructure.&lt;/p&gt;

&lt;p&gt;This creates a directional influence that compounds over time:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;If RSC becomes the dominant React paradigm, and Next.js remains the leading implementation, then React's architectural future becomes closely aligned with Vercel's ecosystem model.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That does not imply &lt;strong&gt;control&lt;/strong&gt;. But it does imply &lt;strong&gt;gravitational influence&lt;/strong&gt; — and critically, a &lt;strong&gt;conflict of interest&lt;/strong&gt;. Vercel has a financial incentive to push SSR/RSC-heavy architectures that drive usage of their hosting platform. When the core library leans so heavily on one commercial player's implementation, the "open" in open source starts to feel conditional.&lt;/p&gt;




&lt;h2&gt;
  
  
  Why Structural Centralization Matters
&lt;/h2&gt;

&lt;p&gt;Centralization is not inherently harmful. But structural concentration creates &lt;strong&gt;asymmetry&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Imagine one organization influencing:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Framework roadmap and architectural defaults&lt;/li&gt;
&lt;li&gt;Deployment performance benchmarks&lt;/li&gt;
&lt;li&gt;Edge runtime narrative and developer education&lt;/li&gt;
&lt;li&gt;Core language feature priorities through talent concentration&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;They do not need to act aggressively. &lt;strong&gt;Influence alone shapes norms. And norms become standards.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The concern is not intent. It is leverage. Even a benevolent actor holding too much sway creates systemic fragility. Consider the risks:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Vendor lock-in&lt;/strong&gt;: Migrating away from Vercel/Next.js can mean losing seamless RSC benefits, as other frameworks catch up slowly.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Pricing risk&lt;/strong&gt;: A large swath of the ecosystem becomes vulnerable to pricing changes by a single provider.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Innovation bottlenecks&lt;/strong&gt;: When one company's infrastructure model is the implicit target, architectural experimentation narrows.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Security surface&lt;/strong&gt;: When something goes wrong — as with RSC-related vulnerabilities that surfaced in 2025 — the blast radius is enormous.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  The Counterbalance: Ecosystem Resilience
&lt;/h2&gt;

&lt;p&gt;Fortunately, the frontend world is not passive. Alternatives are emerging — not as reactionary forks, but as &lt;strong&gt;parallel visions with their own architectural philosophies&lt;/strong&gt;.&lt;/p&gt;




&lt;h3&gt;
  
  
  Cloudflare and the Portability Response: ViNext
&lt;/h3&gt;

&lt;p&gt;Cloudflare fired the most direct shot with &lt;strong&gt;ViNext&lt;/strong&gt; — a reimplementation of the Next.js API surface built on Vite, designed to deploy natively to Cloudflare Workers with a single command. Built in just one week using AI-assisted development, its message was subtle but powerful:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Frameworks should not be infrastructure-bound.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The performance benchmarks back it up. On a shared 33-route App Router application:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Metric&lt;/th&gt;
&lt;th&gt;Next.js 16.1.6 (Turbopack)&lt;/th&gt;
&lt;th&gt;ViNext (Vite 7 / Rollup)&lt;/th&gt;
&lt;th&gt;ViNext (Vite 8 / Rolldown)&lt;/th&gt;
&lt;th&gt;Improvement&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Production Build Time&lt;/td&gt;
&lt;td&gt;7.38s&lt;/td&gt;
&lt;td&gt;4.64s&lt;/td&gt;
&lt;td&gt;1.67s&lt;/td&gt;
&lt;td&gt;Up to &lt;strong&gt;4.4x faster&lt;/strong&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Client Bundle (gzipped)&lt;/td&gt;
&lt;td&gt;168.9 KB&lt;/td&gt;
&lt;td&gt;74.0 KB&lt;/td&gt;
&lt;td&gt;72.9 KB&lt;/td&gt;
&lt;td&gt;Up to &lt;strong&gt;57% smaller&lt;/strong&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Smaller bundles translate directly to better Core Web Vitals. Faster builds translate to faster developer iteration. These aren't marginal wins — they're structural advantages that challenge the assumption that tight Vercel integration is a prerequisite for performance. By enabling Next-style applications to run natively on Workers, Cloudflare weakened the perception of deployment exclusivity.&lt;/p&gt;




&lt;h3&gt;
  
  
  Remix: Standards-First, Framework-Light
&lt;/h3&gt;

&lt;p&gt;Remix has been undergoing one of the more philosophically interesting evolutions in the React space. Rather than doubling down on RSC alignment, &lt;strong&gt;Remix 3&lt;/strong&gt; in 2026 takes a more radical step — shedding the React dependency entirely in favor of a web-standards-first, imperative model built on a Preact fork under the hood.&lt;/p&gt;

&lt;p&gt;The focus: native browser APIs, zero-dependency lightness, and deployment portability across Node, Deno, and Bun without adapters. This is ideological diversification within the React ecosystem — a signal that you can build serious full-stack applications without betting your infrastructure on any single vendor's architectural assumptions.&lt;/p&gt;




&lt;h3&gt;
  
  
  TanStack Start: Optionality by Design
&lt;/h3&gt;

&lt;p&gt;TanStack Start approaches full-stack React architecture differently from the ground up:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Router-first foundation built on TanStack Router&lt;/li&gt;
&lt;li&gt;Data orchestration as a primitive&lt;/li&gt;
&lt;li&gt;Vite-powered development with instant startup and fast HMR&lt;/li&gt;
&lt;li&gt;Runtime flexibility and cloud neutrality&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Its design philosophy reflects an &lt;strong&gt;awareness of structural centralization&lt;/strong&gt; and aims to avoid reproducing it. Strong support for modern React patterns — including emerging RSC compatibility — comes without the lock-in. It positions itself as a Next.js alternative with less cognitive overhead and more portability.&lt;/p&gt;




&lt;h3&gt;
  
  
  Astro: Quiet Full-Stack Expansion
&lt;/h3&gt;

&lt;p&gt;Astro continues expanding its capabilities while keeping &lt;strong&gt;framework optionality&lt;/strong&gt; central.&lt;/p&gt;

&lt;p&gt;React is supported — not required. Infrastructure is pluggable — not assumed. After joining Cloudflare in 2026, Astro v6 Beta introduced a redesigned dev server matching production runtime and first-class Workers support. Its islands architecture delivers zero-JS-by-default performance for content sites while enabling full-stack capabilities, and its multi-framework component strategy (React, Vue, Svelte interchangeably) acts as a &lt;strong&gt;decentralizing force&lt;/strong&gt; in itself.&lt;/p&gt;

&lt;p&gt;For many content-driven and hybrid applications, Astro is already outperforming Next.js — and its independence from React-core shifts means it sidesteps the Vercel/React entanglement entirely.&lt;/p&gt;




&lt;h2&gt;
  
  
  Hosting Diversity Still Exists — And It Matters
&lt;/h2&gt;

&lt;p&gt;The framework layer isn't the only one that matters. On the infrastructure side, the ecosystem has real options:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Cloudflare Workers&lt;/strong&gt; — especially with ViNext and Astro-native integrations — offers global distribution with strong cold start consistency.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Netlify&lt;/strong&gt; remains a major frontend hosting platform with strong edge capabilities and Jamstack heritage.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Railway&lt;/strong&gt; provides intelligent, all-in-one cloud infrastructure for apps and databases with automatic scaling.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Sevalla&lt;/strong&gt; — a Heroku-like platform backed by Cloudflare infrastructure — offers competitive pricing and straightforward Docker deploys.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;As long as multiple viable hosting providers exist, structural monopoly is prevented. The risk decreases when exit options remain healthy and credible. Competition at the infrastructure layer directly protects developers at the framework layer.&lt;/p&gt;




&lt;h2&gt;
  
  
  So Is This a Monopoly?
&lt;/h2&gt;

&lt;p&gt;Not legally. Not absolutely.&lt;/p&gt;

&lt;p&gt;But &lt;strong&gt;influence concentration is undeniable&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;When the most widely adopted React framework, the primary RSC implementation, the reference documentation, and a tightly integrated hosting model all converge on one company — the ecosystem narrows. Developers who follow the "official path" end up, perhaps without realizing it, optimizing for Vercel's infrastructure model.&lt;/p&gt;

&lt;p&gt;However, the frontend community has demonstrated resilience:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Infrastructure portability (Cloudflare Workers / ViNext)&lt;/li&gt;
&lt;li&gt;Architectural diversification (Remix 3, TanStack Start)&lt;/li&gt;
&lt;li&gt;Multi-framework strategies with true optionality (Astro)&lt;/li&gt;
&lt;li&gt;Hosting plurality (Netlify, Railway, Sevalla, and others)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The web has survived previous periods of centralization — from the browser wars to platform capture attempts. Its survival mechanism has always been the same: &lt;strong&gt;fragmentation through innovation&lt;/strong&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  A Measured Conclusion
&lt;/h2&gt;

&lt;p&gt;The concern is not that Vercel intends harm. The concern is &lt;strong&gt;structural concentration&lt;/strong&gt; — and the systemic fragility it creates even when the dominant actor is well-intentioned.&lt;/p&gt;

&lt;p&gt;The benchmarks are now contested. The alternatives are now credible. The ideological counter-movements — portability-first, standards-first, cloud-neutral — are gaining real traction.&lt;/p&gt;

&lt;p&gt;Power in technology becomes problematic not when someone holds it — but when no one challenges it.&lt;/p&gt;

&lt;p&gt;Right now, the frontend world is challenging it. And that is a sign of health.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Use Vercel where it excels. But know your alternatives. The more broadly adoption spreads across frameworks, runtimes, and hosts, the more resilient — and innovative — the ecosystem stays.&lt;/em&gt;&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Sources synthesized from ecosystem research, Cloudflare engineering benchmarks, and community analysis across developer forums and technical blogs.&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>vercel</category>
      <category>react</category>
      <category>nextjs</category>
    </item>
    <item>
      <title>Microsoft Azure Static Web Apps: The Art of Sucking, Web App Horror Story</title>
      <dc:creator>Ezhil Sivaraj SR</dc:creator>
      <pubDate>Sun, 27 Jul 2025 13:47:59 +0000</pubDate>
      <link>https://forem.com/ezhil_sivarajsr/microsoft-azure-static-web-apps-the-art-of-sucking-web-app-horror-story-4jg1</link>
      <guid>https://forem.com/ezhil_sivarajsr/microsoft-azure-static-web-apps-the-art-of-sucking-web-app-horror-story-4jg1</guid>
      <description>&lt;p&gt;&lt;strong&gt;❗️Disclaimer&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;This is a random rant by a junior dev who experienced hell with azure so don't come to conclusion.&lt;/li&gt;
&lt;li&gt;If You have any POV on my rant leave it in the comments definitely i will take your view.
&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  🖕 Intro: Drop &amp;amp; Deploy? More Like Drop &amp;amp; Die
&lt;/h2&gt;

&lt;p&gt;I built a static web app. A beautiful React-Router v7 (Remix based) app with SSR. What I wanted was simple — something like Netlify, Vercel, or even AWS Amplify. Just drag, drop, and deploy. Clean. Simple. Painless.&lt;/p&gt;

&lt;p&gt;Then I met Microsoft Azure Static Web Apps — and my life started flashing before my eyes.&lt;/p&gt;

&lt;p&gt;At first I thought, “Hey, Microsoft’s been doing this cloud thing for a while. Maybe they’ve figured out a nice flow.”&lt;br&gt;
But Microsoft — bless their clueless hearts — said:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;“Hmm, we are Microsoft. We always suck. Let’s make deployment feel like debugging in production… blindfolded.”&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  🚽 1. No Support for Remix? Because Microsoft Can’t Be Bothered
&lt;/h2&gt;

&lt;p&gt;Let’s address the elephant in the package.json: Remix — a proper React framework with excellent SSR support — is completely ignored by Azure.&lt;/p&gt;

&lt;p&gt;Where’s the preset mode for Remix like the one Azure provides for Angular, Vue, Gatsby, Next.js, Svelte, Hugo, Jekeyll, Nuxt, Blazor etc.?&lt;/p&gt;

&lt;p&gt;Oh, there isn’t one. Because Remix isn’t “cool enough” to be given a preset — not by Azure’s internal “blessed frameworks” club.&lt;/p&gt;

&lt;p&gt;Leave Blazor its microsoft own stuffs&lt;/p&gt;

&lt;p&gt;And fine — you’re forcing me to use Azure Functions for SSR. Cool. Then where the hell is the wrapper library for Remix?&lt;/p&gt;

&lt;p&gt;Actually there is one from &lt;code&gt;@scandinavianairlines/remix-azure-functions&lt;/code&gt;&lt;br&gt;
but is not working properly i don't know why, but yeah i am trying to build on my own&lt;/p&gt;

&lt;p&gt;Microsoft thinks “static” equals “Next.js.” Nothing else matters. Not even the fact that Remix is open-source, React-based, and used by real teams in production.&lt;/p&gt;

&lt;p&gt;And this isn’t just incompetence — it’s negligence. Remix is open-source, React-based, and being used in enterprise apps. But Microsoft still treats it like an exotic stack nobody asked for.&lt;/p&gt;

&lt;p&gt;This isn’t developer tooling.&lt;br&gt;
This is a clique — and if you’re not in the cool kid circle, you’re left to rot in documentation hell.&lt;/p&gt;

&lt;h2&gt;
  
  
  🤡 2. SSR/SSG with Azure Static Web Apps? LMAO No.
&lt;/h2&gt;

&lt;p&gt;Netlify: Just mark a route for SSR.&lt;br&gt;
Vercel: Just export getServerSideProps.&lt;br&gt;
Azure: “Write a function. Yes, an actual Azure Function with HTTP trigger. For your SSR. And wire it to your static site manually.”&lt;/p&gt;

&lt;p&gt;Let me get this straight.&lt;/p&gt;

&lt;p&gt;I want to serve a blog, not launch a satellite. But Microsoft goes:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;“Hmm. We suck better when you suffer more. Please spin up a managed function to serve your homepage.”&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Why?&lt;/p&gt;

&lt;p&gt;Why the actual f**k would a static asset be routed through a serverless function? You know what’s faster than that? Literally anything. A potato with a USB stick.&lt;/p&gt;

&lt;p&gt;And then the punchline hits:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;“Don’t worry. It’s behind a CDN.” – Microsoft, doing PR damage control&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Oh, wow! Thanks! So now it’s a slow function and a CDN mystery box. Very cool.&lt;/p&gt;

&lt;h2&gt;
  
  
  🧪 3. Azure CLI &amp;amp; Local Testing – The Great Gaslight
&lt;/h2&gt;

&lt;p&gt;Okay, fine. Let’s run it locally and test it.&lt;br&gt;
I fire up Azure CLI, hit swa start and try to run my Remix build.&lt;/p&gt;

&lt;p&gt;Does it behave like production?&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;“Hmm, we’re Microsoft. We always suck. Our CLI is only for decoration.”&lt;/em&gt;&lt;br&gt;
Nothing matches.&lt;br&gt;
Routing fails.&lt;br&gt;
API proxies break.&lt;br&gt;
Your managed function doesn’t even start unless you give it a sacrifice and half your CPU.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;What the hell is this platform?&lt;/p&gt;

&lt;p&gt;Even Firebase Hosting does better — and that shit is older than Stack Overflow.&lt;/p&gt;

&lt;h2&gt;
  
  
  💩 4. Pricing – You Pay for the Abuse
&lt;/h2&gt;

&lt;p&gt;Now let’s talk cost.&lt;/p&gt;

&lt;p&gt;You think: “Oh, it’s just a static web app, this should be free or cheap, right?”&lt;/p&gt;

&lt;p&gt;Nope.&lt;/p&gt;

&lt;p&gt;Microsoft be like:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Hmm, we suck your wallet too. Enjoy charges for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Function executions&lt;/li&gt;
&lt;li&gt;Bandwidth&lt;/li&gt;
&lt;li&gt;Storage&lt;/li&gt;
&lt;li&gt;Your will to live”
Meanwhile, others give you:&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;

&lt;ul&gt;
&lt;li&gt;Free tier that actually works&lt;/li&gt;
&lt;li&gt;Preview deployments that don’t randomly break&lt;/li&gt;
&lt;li&gt;Functions that aren’t tied to Azure’s flavor of the month&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Azure? You’ll be debugging why your cost spiked and why your function deployed without logs at the same time. God help you if you’re running an open-source project with limited budget.&lt;/p&gt;

&lt;h2&gt;
  
  
  🪦 5. Reliability? What’s That?
&lt;/h2&gt;

&lt;p&gt;Let’s say, by some miracle, you get your Remix site deployed. It works! For a while.&lt;/p&gt;

&lt;p&gt;Then the 6th commit rolls in.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;“Hmm, we are Microsoft. We suck your source control too. Let’s silently corrupt your deployment!”&lt;/em&gt;&lt;br&gt;
Poof. It’s gone. No logs. No rollback. Just broken deployments and a message: “Resource unavailable.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Now let me tell you my own personal hell:&lt;/strong&gt;&lt;br&gt;
The first time I tried deploying, Azure yelled at me with a tsc build error. Confused, I popped the hood to see what was happening. Turns out the error came from an internal dependency: @azure/functions — a library that Microsoft themselves maintain. Sounds promising, right?&lt;/p&gt;

&lt;p&gt;So I added a custom build step to ensure it was properly installed. That’s when the real shitshow began.&lt;/p&gt;

&lt;p&gt;💥Boom.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;“Package not found on npm.”&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Yes, a Microsoft-managed library… wasn’t even on the registry at that moment. You heard that right — the official function library used by their entire static app ecosystem… gone. Vanished. Poof. 404’d into oblivion.&lt;/p&gt;

&lt;p&gt;I tried again. Different setup. Same result. And eventually?&lt;br&gt;
The entire Static Web App resource got corrupted. Deployment wasn’t just failing — the whole Azure resource was now broken. Unusable. Bricked like a bootlooping Android phone.&lt;/p&gt;

&lt;p&gt;You think I’m exaggerating? Go ahead and try it. Make six commits to your working Remix project and watch it fall apart.&lt;/p&gt;

&lt;p&gt;So now, guess what?&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;I had to recreate the Static Web App resource from scratch, update my CI, fix the repo permissions, and start over — all because Microsoft can’t even maintain their own deployment infra.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I don’t even have words for this. You know what works better? GitHub Pages.&lt;/p&gt;

&lt;p&gt;I pray for Microsoft Azure’s slow and public demise. Not because I hate Microsoft — but because they clearly hate developers.&lt;/p&gt;

&lt;h2&gt;
  
  
  📛 6. Real Dev Confessions
&lt;/h2&gt;

&lt;p&gt;I’ve seen real developers ask:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;“Why is Azure Static Web App not picking my SSR route?”&lt;/li&gt;
&lt;li&gt;“Why does it break after pushing a commit?”&lt;/li&gt;
&lt;li&gt;“Why does it only work if I use VS Code and deploy from there?”&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Answer:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Because Microsoft only wants you to use Microsoft tools with Microsoft defaults while worshiping the shrine of Satya in Visual Studio.&lt;/em&gt;&lt;br&gt;
Even the error messages are passive-aggressive:&lt;br&gt;
&lt;em&gt;“Your build failed.”&lt;br&gt;
“Where?”&lt;br&gt;
“Yes.”&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  🕵️‍♂️ A Side Note: Vercel’s Quiet Monopoly
&lt;/h2&gt;

&lt;p&gt;Funny how Microsoft only supports frameworks touched by Vercel.&lt;/p&gt;

&lt;p&gt;Next.js? First-class support.&lt;br&gt;
Svelte? Funded by vercel.&lt;br&gt;
Nuxt.js? Merged with Vercel.&lt;br&gt;
HUGO? Microsoft is closely working with Go.&lt;br&gt;
Jekeyll? Works with Nitro underthehood - (Nitro funded by Vercel).&lt;/p&gt;

&lt;p&gt;Remix? Dead to them.&lt;br&gt;
Astro? Don’t even ask.&lt;/p&gt;

&lt;p&gt;Makes you wonder — is the frontend world slowly being eaten alive by one player?&lt;/p&gt;

&lt;p&gt;Or its just me felt like this with wrong intension&lt;/p&gt;

&lt;p&gt;We’ll talk about that how open source is being turned into a walled garden in the next blog.&lt;/p&gt;

&lt;h2&gt;
  
  
  ☠️ Final Words: Azure Static Web Apps Shouldn’t Exist
&lt;/h2&gt;

&lt;p&gt;Microsoft had a chance.&lt;/p&gt;

&lt;p&gt;They could’ve built a great alternative to Vercel and Netlify.&lt;br&gt;
Instead, they built a bloated, poorly documented, slow-as-f**k platform that punishes you for trying to do anything non-Next.js.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;“We are Microsoft. We always suck. But this time, we suck harder.”&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;My suggestion&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;em&gt;Please, if you’re a junior dev: stay the hell away from Azure Static Web Apps.&lt;/em&gt;&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;&lt;em&gt;☠️ DANGER AHEAD ☠️&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Use Cloudflare, Vercel, Netlify, or even bare metal hosting. Anything but this.&lt;/p&gt;

&lt;p&gt;I genuinely hope Microsoft kills Azure Static Web Apps and starts over — or at least admits they don’t care about frontend devs.&lt;/p&gt;

&lt;p&gt;Because if this is the future of frontend cloud hosting…&lt;/p&gt;

&lt;p&gt;Lets go for some other work.&lt;/p&gt;

</description>
      <category>microsoft</category>
      <category>azure</category>
      <category>staticwebapps</category>
      <category>azurefunctions</category>
    </item>
    <item>
      <title>Vike 6: The Underrated Meta-Framework That Lets You Choose Your Own Stack</title>
      <dc:creator>Ezhil Sivaraj SR</dc:creator>
      <pubDate>Thu, 03 Apr 2025 15:58:00 +0000</pubDate>
      <link>https://forem.com/ezhil_sivarajsr/vike-6-the-underrated-meta-framework-that-lets-you-choose-your-own-stack-891</link>
      <guid>https://forem.com/ezhil_sivarajsr/vike-6-the-underrated-meta-framework-that-lets-you-choose-your-own-stack-891</guid>
      <description>&lt;p&gt;&lt;strong&gt;Vike 6&lt;/strong&gt;, a powerful meta-framework that's shaking up the way we build modern web applications. If you're looking for a flexible solution for Server-Side Rendering (SSR) and Static Site Generation (SSG) that lets you choose your favorite UI framework, Vike 6 is worth your attention.&lt;/p&gt;

&lt;p&gt;Originally known as Vue-SSR, Vike has evolved into a framework-agnostic beast, supporting React, Vue, Solid, and more. This transformation, spearheaded by Sébastien Chopin and a team of dedicated contributors, marks a significant milestone in the framework's journey. Vike 6's release brings a refined developer experience and empowers you to build high-performance web apps without being tied to a specific framework. Check out the project on Vike's GitHub 🏗️!&lt;/p&gt;

&lt;h2&gt;
  
  
  ❓ Why Vike 6 Isn't Getting More Exposure
&lt;/h2&gt;

&lt;p&gt;Despite its powerful features and flexibility, Vike 6 hasn't gained mainstream adoption. Here's why:👇&lt;/p&gt;

&lt;p&gt;&lt;em&gt;&lt;strong&gt;1. 🌍 The Frontend Ecosystem is Saturated&lt;/strong&gt;&lt;/em&gt;&lt;br&gt;
Developers and companies have already invested in Next.js, Nuxt, SvelteKit, and SolidStart - all of which offer similar SSR/SSG features with strong communities. Vike lacks differentiation beyond being framework-agnostic.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;&lt;strong&gt;2. 📢 Lack of Awareness and Marketing&lt;/strong&gt;&lt;/em&gt;&lt;br&gt;
Unlike Next.js (backed by Vercel) or Nuxt (backed by NuxtLabs), Vike doesn't have a strong marketing push. Many developers simply haven't heard of it.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;&lt;strong&gt;3. 🏢 Companies Don't Prioritize Meta-Framework Changes&lt;/strong&gt;&lt;/em&gt;&lt;br&gt;
While developers rapidly switched from Node.js to Bun or Deno, frontend migrations are harder to justify. Companies are more cautious about migrating entire frontend architectures compared to switching JS runtimes.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;&lt;strong&gt;4. 📚 Learning Curve and Documentation&lt;/strong&gt;&lt;/em&gt;&lt;br&gt;
While Vike is powerful, its documentation is not as polished as competing frameworks. New users might struggle to grasp its concepts compared to Next.js's polished guides.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;&lt;strong&gt;5. 💰 Pricing Model and Monetization Uncertainty&lt;/strong&gt;&lt;/em&gt;&lt;br&gt;
Vike doesn't have a clear business model like Vercel's hosting for Next.js. Developers are hesitant to adopt tools that lack long-term funding or support.&lt;/p&gt;
&lt;h2&gt;
  
  
  ❓ Can Vike Gain Traction
&lt;/h2&gt;

&lt;p&gt;For Vike to become mainstream, it needs:&lt;/p&gt;

&lt;p&gt;💪🏻 Stronger marketing efforts (community building, tutorials, and real-world case studies).&lt;/p&gt;

&lt;p&gt;👍🏻 Better onboarding experience with improved documentation and DX.&lt;/p&gt;

&lt;p&gt;✍🏻 Clear differentiation from existing meta-frameworks.&lt;/p&gt;

&lt;p&gt;Until then, developers and companies are hesitant to adopt it, despite its strong technical merits.&lt;/p&gt;
&lt;h2&gt;
  
  
  🎨 Framework Agnostic - Choose Your Own Framework
&lt;/h2&gt;

&lt;p&gt;One of Vike's most compelling features is its framework-agnostic core. Unlike other meta-frameworks that are tightly coupled with a specific UI library, Vike provides a set of core functionalities that are independent of your chosen framework. This 'choose your own adventure' approach gives you the freedom to use the tools you love.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;🚀 Getting Started Quickly&lt;/em&gt;&lt;/strong&gt;&lt;br&gt;
Vike provides a CLI scaffold tool that helps you set up a project quickly with your preferred UI framework. This eliminates the hassle of manually configuring SSR, routing, and data fetching.⚡&lt;/p&gt;

&lt;p&gt;&lt;em&gt;&lt;strong&gt;Creating a New Vike Project&lt;/strong&gt;&lt;/em&gt;&lt;br&gt;
To create a new Vike project, you can use the npm create command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npm create vike@latest
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You'll be prompted to select a framework, such as React, Vue, Solid, Svelte, or even a custom setup.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;✔ Select your UI framework:
❯ React
  Vue
  Solid
  Svelte
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Once selected, Vike generates a starter template with the appropriate configurations for your chosen framework. 🎯&lt;/p&gt;

&lt;p&gt;&lt;em&gt;&lt;strong&gt;Example: Setting Up a React Project ⚛️&lt;/strong&gt;&lt;/em&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npm create vike@latest my-vike-app
cd my-vike-app
npm install
npm run dev
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This initializes a React-based Vike app with SSR and SSG capabilities already configured.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;&lt;strong&gt;Understanding the Scaffolded Structure&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;&lt;strong&gt;🏗️ What's Inside the Scaffolded Project?&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The generated project includes:&lt;/p&gt;

&lt;p&gt;🧿 A minimal project structure tailored for your chosen framework.&lt;br&gt;
🧿 Vike configuration files to manage SSR, SSG, and routing.&lt;br&gt;
🧿 A default page setup with &lt;code&gt;+Page.js&lt;/code&gt; and &lt;code&gt;+server.js&lt;/code&gt; files.&lt;br&gt;
🧿 This means you can start building immediately, without worrying about complex configurations.🎉&lt;/p&gt;

&lt;p&gt;Vike's scaffold command ensures that developers can get started quickly while keeping the project structure clean and maintainable.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;my-vike-app/
├── pages/
│   ├── index/+Page.js  # Home page
│   ├── about/+Page.js  # About page
│   ├── products/+Page.js  # Dynamic Route Example
│   ├── products/+server.js  # Server-Side Data Fetching
├── renderer/  # Custom Rendering Logic
├── vite.config.js  # Vite Configuration
└── package.json
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Each page has a &lt;code&gt;+Page.js&lt;/code&gt; file, and optional +server.js for data fetching. This makes it easy to add new pages and manage SSR efficiently.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;&lt;strong&gt;Customizing the Setup&lt;/strong&gt;&lt;/em&gt;&lt;br&gt;
For advanced users, you can scaffold a barebones project and configure everything manually:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npm create vike@latest -- --empty
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This gives you a minimal setup where you can add your own custom integrations and structure the project however you like.&lt;/p&gt;

&lt;h2&gt;
  
  
  ⚡ SSG and SSR: Best of Both Worlds
&lt;/h2&gt;

&lt;p&gt;Vike excels at both Static Site Generation (SSG) and Server-Side Rendering (SSR), giving you the flexibility to choose the best approach for your application's needs. 🔄&lt;/p&gt;

&lt;p&gt;&lt;em&gt;&lt;strong&gt;⚡ SSG: Blazing Fast Performance&lt;/strong&gt;&lt;/em&gt;&lt;br&gt;
Vike pre-renders static HTML at build time, resulting in lightning-fast page loads and excellent SEO. You can pre-render specific pages or your entire site:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;// Example page config for SSG
export const prerender = true;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;em&gt;&lt;strong&gt;🌐 SSR: Dynamic and Up-to-Date&lt;/strong&gt;&lt;/em&gt;&lt;br&gt;
Vike renders pages on the server and sends fully rendered HTML to the client, improving initial load times and SEO. Server-side data fetching ensures your pages are always fresh.&lt;/p&gt;
&lt;h2&gt;
  
  
  🗿 The Power of &lt;code&gt;pageContext&lt;/code&gt;
&lt;/h2&gt;

&lt;p&gt;At the heart of Vike's data management is pageContext. This central data object is available on both the server and client, facilitating seamless data sharing across different parts of your application. Think of it as a universal data store for your pages.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;pageContext&lt;/code&gt; contains different types of data:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;pageContext.data&lt;/code&gt;  - Holds fetched data for the page.&lt;br&gt;
&lt;code&gt;pageContext.config&lt;/code&gt;  - Stores configuration settings.&lt;br&gt;
&lt;code&gt;pageContext.routeParams&lt;/code&gt;  - Contains dynamic route parameters.&lt;br&gt;
&lt;code&gt;pageContext.urlOriginal&lt;/code&gt;  - Stores the original URL.&lt;br&gt;
&lt;code&gt;pageContext.exports&lt;/code&gt;  - Includes exports from the page component.&lt;/p&gt;

&lt;p&gt;This structured approach makes data access and management seamless in your application.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;&lt;strong&gt;Custom Routing with pageContext&lt;/strong&gt;&lt;/em&gt;&lt;br&gt;
With Vike, you can define your own routing while ensuring the routes are hydrated on both the server and client using pageContext. Here's an example:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;&lt;strong&gt;Step 1: Define a Custom Route&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Create a &lt;code&gt;+Page.js&lt;/code&gt; file inside a directory, for example, &lt;code&gt;/pages/products/&lt;/code&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;// /pages/products/+Page.js
export { default } from './ProductPage';
export const route = '/products/:id';
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;em&gt;&lt;strong&gt;Step 2: Create the Page Component&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Use &lt;code&gt;pageContext.routeParams&lt;/code&gt; to dynamically fetch the product data based on the route parameter id.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;// /pages/products/ProductPage.js
import { useData } from 'vike-react';

export default function ProductPage({ pageContext }) {
  const { id } = pageContext.routeParams;
  const data = useData();

  return (
    &amp;lt;div&amp;gt;
      &amp;lt;h1&amp;gt;Product {id}&amp;lt;/h1&amp;gt;
      &amp;lt;p&amp;gt;{data.description}&amp;lt;/p&amp;gt;
    &amp;lt;/div&amp;gt;
  );
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;em&gt;&lt;strong&gt;Step 3: Fetch Data on the Server&lt;/strong&gt;&lt;/em&gt;&lt;br&gt;
Modify the &lt;code&gt;+server.js&lt;/code&gt; file to fetch data dynamically before rendering.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;// /pages/products/+server.js
export { onBeforeRender };

async function onBeforeRender(pageContext) {
  const { id } = pageContext.routeParams;
  const data = await fetch(`https://api.example.com/products/${id}`).then(res =&amp;gt; res.json());
  return {
    pageContext: { data }
  };
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;em&gt;&lt;strong&gt;How It Works:&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Custom Route Definition - The &lt;code&gt;route&lt;/code&gt; export in &lt;code&gt;+Page.js&lt;/code&gt; defines a dynamic route (&lt;code&gt;/products/:id&lt;/code&gt;).&lt;/p&gt;

&lt;p&gt;Data Fetching on the Server - &lt;code&gt;onBeforeRender&lt;/code&gt; fetches data based on &lt;code&gt;routeParams&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Hydration on the Client - &lt;code&gt;useData()&lt;/code&gt; hook allows client components to access the server-fetched data.&lt;/p&gt;

&lt;p&gt;This approach gives you complete control over routing while ensuring server-side rendering and hydration work seamlessly.&lt;/p&gt;

&lt;h2&gt;
  
  
  💸 Pricing Structure
&lt;/h2&gt;

&lt;p&gt;While Vike itself is open-source and free to use, it does have a tiered pricing model for additional services and features. Here's how it works:🏷️&lt;/p&gt;

&lt;p&gt;&lt;em&gt;&lt;strong&gt;🎟️ Free Tier (For Individual Hobbies &amp;amp; Startups)&lt;/strong&gt;&lt;/em&gt;&lt;br&gt;
✅ Full access to the core framework&lt;br&gt;
✅ SSR &amp;amp; SSG functionality included&lt;br&gt;
✅ Unlimited personal &amp;amp; open-source projects&lt;br&gt;
✅ Basic community support via GitHub discussions&lt;/p&gt;

&lt;p&gt;&lt;em&gt;&lt;strong&gt;💼 Paid Tier (For Enterprises &amp;amp; Premium Features)&lt;/strong&gt;&lt;/em&gt;&lt;br&gt;
Vike offers paid plans for businesses that need additional functionality and support:&lt;/p&gt;

&lt;p&gt;💎 Enterprise Support: Priority bug fixes, dedicated support channels.&lt;br&gt;
📊 Advanced Analytics: Insights into page rendering performance.&lt;br&gt;
☁️ Managed Hosting (if applicable): Optimized Vike deployment solutions.&lt;/p&gt;

&lt;p&gt;The exact pricing details haven't been heavily marketed, which contributes to uncertainty among developers and companies.&lt;/p&gt;

&lt;h2&gt;
  
  
  🎯 Conclusion
&lt;/h2&gt;

&lt;p&gt;With Vike 6, you get the power of SSR, SSG, framework-agnostic flexibility, and seamless data management. Whether you're building a static blog📝 or a dynamic web app, Vike provides the tools to make it happen efficiently.💡&lt;/p&gt;

&lt;p&gt;However, its lack of marketing, developer awareness, and the reluctance of companies to rethink frontend stacks means adoption has been slow. Additionally, uncertainty around its monetization model makes some developers hesitant to commit.🤔&lt;/p&gt;

&lt;p&gt;Ready to give it a try ❓&lt;/p&gt;

&lt;p&gt;Check out &lt;a href="https://vike.dev/" rel="noopener noreferrer"&gt;Vike's documentation&lt;/a&gt; and start building!🚀&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>javascript</category>
      <category>react</category>
      <category>vite</category>
    </item>
    <item>
      <title>The LAMP Lock-in: Why NIC Still Won’t Upgrade in 2025?</title>
      <dc:creator>Ezhil Sivaraj SR</dc:creator>
      <pubDate>Tue, 11 Feb 2025 19:37:12 +0000</pubDate>
      <link>https://forem.com/ezhil_sivarajsr/the-lamp-lock-in-why-nic-still-wont-upgrade-in-2025-4l3b</link>
      <guid>https://forem.com/ezhil_sivarajsr/the-lamp-lock-in-why-nic-still-wont-upgrade-in-2025-4l3b</guid>
      <description>&lt;p&gt;It's 2025, yet a significant number of Indian government websites and web apps are still running on the LAMP (🐧 Linux, 🌐 Apache, 🐬 MySQL, 🐘 PHP) stack. While LAMP has been a go-to architecture for decades, its continued dominance in mission-critical applications raises serious concerns about ⚡ performance, 📈 scalability, and 🎭 user experience.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;## The Persistence of LAMP in NIC’s Web Infrastructure&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The National Informatics Centre (NIC) is responsible for hosting and maintaining a large portion of 🇮🇳 India’s government websites and portals. From 📜 public service portals to 🏛️ administrative tools, NIC continues to rely on LAMP despite the existence of more modern, scalable, and efficient alternatives.&lt;/p&gt;

&lt;p&gt;While LAMP is a decent choice for 🏗️ static websites or simple operations, the real issue arises when it's used for highly 📊 data-driven applications—especially those meant for government services. These systems require high availability, rapid response times, and scalability, all of which LAMP struggles to deliver effectively in 2025.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;## Why This Matters: LAMP's Limitations in Data-Driven Applications&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The problem isn’t just about sticking to an old-school 🏚️ tech stack. The issue lies in how LAMP is being used for applications that demand:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;🚀 High Concurrency Handling – Government portals often experience traffic spikes, especially during 📅 exams, 📄 registrations, and 🗳️ elections. LAMP’s monolithic nature struggles with such loads compared to modern architectures like microservices with Node.js or Go.&lt;/li&gt;
&lt;li&gt;📏 Scalability – Scaling a PHP-based application running on LAMP isn’t as seamless as with modern frameworks. Horizontal scaling with PHP-FPM and MySQL replication is possible, but it's far from the cloud-native, auto-scaling capabilities of Kubernetes with containerized applications.&lt;/li&gt;
&lt;li&gt;🐢 Performance Issues – Slow government portals are not just frustrating but also hinder critical services. PHP, while improved over the years, still lacks the performance optimizations that modern frameworks like Next.js (Node.js) or Angular (Typescript) offer.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;## Case Study: Poorly Optimized Government Websites&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Some major Indian government websites highlight these concerns:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;🛂 Indian Passport Website – Used by lakhs of users, this website runs on JSP (Java Server Pages). While JSP was a good option years ago, it struggles with today’s enormous traffic load. Developed &amp;amp; maintained by TCS, the website is wrapped in outdated table-based UI structures, showing a lack of proper frontend development.&lt;/li&gt;
&lt;li&gt;🛢️ BharatGas, 🚘 Sarathi Parivahan, 📜 NSDL Portals – These platforms also lack a modern UI/UX approach. They rely on outdated table-based layouts that hinder user experience, showing an evident need for better frontend frameworks.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If these services can be offered, why not transition to modern frameworks like Angular, React, or Laravel for PHP-based applications?&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;NIC should not force reliance on JSP or LAMP when better alternatives exist.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;**&lt;/p&gt;

&lt;h2&gt;
  
  
  Running Cheap is Not Always the Best Option
&lt;/h2&gt;

&lt;p&gt;**&lt;/p&gt;

&lt;p&gt;One of the key reasons LAMP is still widely used is cost-cutting. NIC's focus on running services as cheaply as possible has led to the continued reliance on older technology. However, running a tech stack just because it’s cost-effective isn’t always a good idea—especially when it results in slow, inefficient applications that affect millions of users daily.&lt;/p&gt;

&lt;p&gt;In contrast, many modern government services worldwide have embraced cloud-native and microservices architectures, leveraging frameworks like Spring Boot (Java), FastAPI (Python), and serverless solutions to ensure scalability and performance.&lt;/p&gt;

&lt;p&gt;**&lt;/p&gt;

&lt;h2&gt;
  
  
  The Way Forward: What NIC Should Consider
&lt;/h2&gt;

&lt;p&gt;**&lt;/p&gt;

&lt;p&gt;If the goal is to improve digital governance and citizen experience, NIC needs to rethink its approach. Some potential steps include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;🏗️ Adopting Microservices: Breaking down monolithic PHP applications into microservices can drastically improve scalability and performance.&lt;/li&gt;
&lt;li&gt;☁️ Leveraging Cloud Infrastructure: Instead of hosting everything on NIC's data centers, adopting cloud-native services can improve reliability.&lt;/li&gt;
&lt;li&gt;🖥️ Choosing the Right Frameworks: For data-driven applications, using frameworks optimized for high performance, such as Next.js, Spring Boot, or Golang, can significantly enhance user experience.&lt;/li&gt;
&lt;li&gt;⚡ Prioritizing Performance Optimization: A well-optimized backend, along with caching strategies (Redis, CDN), can mitigate slow response times.&lt;/li&gt;
&lt;li&gt;🎨 Improving UI/UX: Hiring skilled front-end developers and using modern UI frameworks (React, Angular, Vue) can drastically improve usability of government websites.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;**&lt;/p&gt;

&lt;h2&gt;
  
  
  Final Thoughts: NIC Needs to Change
&lt;/h2&gt;

&lt;p&gt;**&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;NIC has a responsibility to modernize, ensuring better digital services for millions of Indians. It’s time for a change—what’s stopping it?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;While LAMP has served its purpose, its continued dominance in NIC’s infrastructure is no longer justifiable in 2025. Data-driven applications require frameworks that are built for modern needs, not just solutions that were good two decades ago. If NIC aims to enhance digital public services, it must embrace newer, scalable, and high-performance technologies instead of staying in its comfort zone with LAMP.&lt;/p&gt;

&lt;p&gt;Additionally, a better UI/UX focus is necessary. Government websites must hire skilled front-end developers to improve accessibility, user experience, and navigation.&lt;/p&gt;

&lt;p&gt;What do you think? Should NIC finally move on from LAMP, or is there a case for keeping it around? Let’s discuss!&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>government</category>
      <category>development</category>
    </item>
  </channel>
</rss>
