<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Performance on Gaurav.dev</title><link>/tags/performance/</link><description>Recent content in Performance on Gaurav.dev</description><generator>Hugo</generator><language>en-US</language><copyright>© 2026 Gaurav. Built with care and clean code.</copyright><lastBuildDate>Fri, 18 Sep 2026 00:00:00 +0000</lastBuildDate><atom:link href="/tags/performance/index.xml" rel="self" type="application/rss+xml"/><item><title>A Production Checklist for Next.js Applications</title><link>/posts/nextjs-production-checklist/</link><pubDate>Fri, 18 Sep 2026 00:00:00 +0000</pubDate><guid>/posts/nextjs-production-checklist/</guid><description>&lt;p&gt;A successful &lt;code&gt;next build&lt;/code&gt; proves that the application compiles. It does not prove that the product is ready for real users, crawlers, traffic spikes, or a difficult incident.&lt;/p&gt;&#10;&lt;h2 id="rendering-and-caching"&gt;Rendering and caching&lt;/h2&gt;&#10;&lt;p&gt;Confirm the rendering strategy for every important route. Static content should not become dynamic because a convenience API reads request state. Dynamic pages need explicit cache behaviour, and revalidation should match how quickly the underlying data can change. Test authenticated and anonymous paths separately.&lt;/p&gt;</description></item><item><title>PostgreSQL Performance: Fix the Model Before Adding Hardware</title><link>/posts/postgresql-performance-basics/</link><pubDate>Sun, 30 Aug 2026 00:00:00 +0000</pubDate><guid>/posts/postgresql-performance-basics/</guid><description>&lt;p&gt;When a PostgreSQL-backed application slows down, larger infrastructure can hide the symptom while preserving the cause. A better response starts with evidence.&lt;/p&gt;&#10;&lt;h2 id="find-the-expensive-work"&gt;Find the expensive work&lt;/h2&gt;&#10;&lt;p&gt;Enable and review query statistics, then rank statements by total time—not only average duration. A moderately slow query executed thousands of times may cost more than one dramatic report. Correlate database behaviour with application endpoints, background jobs, and recent releases.&lt;/p&gt;&#10;&lt;p&gt;Use &lt;code&gt;EXPLAIN (ANALYZE, BUFFERS)&lt;/code&gt; on a safe environment with representative data. Look for large row-estimate errors, sequential scans over selective predicates, repeated nested operations, sorting that spills to disk, and far more rows removed than returned.&lt;/p&gt;</description></item><item><title>Technical SEO Is an Engineering Quality Practice</title><link>/posts/technical-seo-engineering/</link><pubDate>Thu, 30 Jul 2026 00:00:00 +0000</pubDate><guid>/posts/technical-seo-engineering/</guid><description>&lt;p&gt;Technical SEO is often reduced to metadata. In practice, it is the work of making valuable content discoverable, understandable, fast, and stable for both people and search systems.&lt;/p&gt;&#10;&lt;h2 id="make-discovery-intentional"&gt;Make discovery intentional&lt;/h2&gt;&#10;&lt;p&gt;Important pages need crawlable links in a clear information hierarchy. Generate accurate sitemaps, keep robots directives deliberate, and use canonical URLs to express the preferred version of duplicate or parameterised content. Redirect moved pages once, directly, and preserve meaning.&lt;/p&gt;</description></item><item><title>Fiber or Axum for Performance-Critical Services?</title><link>/posts/fiber-axum-performance-services/</link><pubDate>Tue, 30 Jun 2026 00:00:00 +0000</pubDate><guid>/posts/fiber-axum-performance-services/</guid><description>&lt;p&gt;Go and Rust are compelling when a service has demanding latency, throughput, memory, or reliability constraints. Fiber and Axum provide productive HTTP layers for those ecosystems, but choosing between them is a broader decision than comparing router benchmarks.&lt;/p&gt;&#10;&lt;h2 id="fiber-operational-simplicity-with-go"&gt;Fiber: operational simplicity with Go&lt;/h2&gt;&#10;&lt;p&gt;Fiber offers an Express-inspired API on top of Go’s &lt;code&gt;fasthttp&lt;/code&gt; ecosystem. Teams coming from JavaScript can become productive quickly, while Go provides straightforward compilation, deployment, concurrency, and tooling. A single binary with predictable runtime behaviour is valuable for containers, edge nodes, and operationally lean teams.&lt;/p&gt;</description></item></channel></rss>