Skip to content
Ayush Raj

Ayush Raj

  • ayushraj.dev/portfolio
  • software development
  • www.youtube.com/c/AyushRaj1024
  • Contact Me
  • How we ensure canonical URLs appear in plain HTML (View Source) – Next.js on Firebase Hosting

    May 19, 2026

    ·

    software development
    How we ensure canonical URLs appear in plain HTML (View Source) – Next.js on Firebase Hosting
  • Sending Transactional Email from a Go App with Gmail and OAuth2: A Practical Framework

    A guide for developers who need to ship contact-form and inquiry email without SMTP passwords—and who care about architecture, deliverability, and honest trade-offs. Why this guide exists Many small and mid-size products still send “someone filled out the form” email through a third-party provider, a legacy microservice, or—increasingly—Gmail. Google explicitly… Read ⇢

    Sending Transactional Email from a Go App with Gmail and OAuth2: A Practical Framework
  • Making Heavy Analytics Reports Feel Fast: Viewport-Based Loading Without Breaking Your API

    When a “report” page fires twenty-plus API calls on load, users wait on a blank screen or a single spinner. When those calls must stay sequential (rate limits, OAuth quotas, or backend constraints), you cannot simply parallelize everything. You can still give fast feedback and progressive content by loading only what the user can see—and queuing the rest… Read ⇢

    Making Heavy Analytics Reports Feel Fast: Viewport-Based Loading Without Breaking Your API
  • A Local-First Development Workflow When Your Host Doesn’t Play Nice with IDEs

    How to develop safely on shared hosting that supports FTP/SSH but blocks direct IDE connections If you’ve ever worked on a client project hosted on shared hosting—the kind that offers FTP and SSH access but doesn’t allow your IDE to connect directly to the server—you know the frustration. You can’t… Read ⇢

    A Local-First Development Workflow When Your Host Doesn’t Play Nice with IDEs
  • Designing Consistent Metrics Across Summary and Detail Views in Enterprise Web Apps

    One of the most insidious bugs in enterprise dashboards is not a crash, not a null pointer, and not a failed query. It is a number that is simply wrong — and worse, wrong in a way that looks plausible. You build a summary table that shows a user has 1… Read ⇢

    Designing Consistent Metrics Across Summary and Detail Views in Enterprise Web Apps
  • TypedQuery and Auto-Boxing: Why Your JPA Query Throws “Long is incompatible with Integer”

    If you’ve spent any time with JPA and Hibernate, you’ve probably run into this cryptic runtime exception at least once: The frustrating part? Your code compiles perfectly. Your entity’s id field is declared as Integer. Everything looks right. And yet, at runtime, Hibernate blows up. Here’s exactly why this happens and how to… Read ⇢

    TypedQuery and Auto-Boxing: Why Your JPA Query Throws “Long is incompatible with Integer”
  • The savings you make when you get your software made by a developer

    There are a lot of software products out there that companies are offering that are sold as SAAS (Software as a service) and they get to charge you monthly (in 2025 the global SAAS industry made $295 billion to $300 billion). We have many examples of this (The Adobe Suite,… Read ⇢

    The savings you make when you get your software made by a developer
  • Building a Dynamic sitemap.xml for a Static Website on Firebase (REST API–Driven)

    A sitemap is one of those things that looks simple until you ship a static build. If your site is deployed as static files (for example, a static-exported Next.js app), you get great performance and cheap hosting—but you lose the ability to generate server-side content at request time. That becomes… Read ⇢

    Building a Dynamic sitemap.xml for a Static Website on Firebase (REST API–Driven)
  • How To Fix SSL Timeout and Rate-Limit Errors in CyberPanel (acme.sh + ZeroSSL → Let’s Encrypt)

    When running a web server on CyberPanel (which uses acme.sh under the hood), SSL certificates are usually issued automatically. But one morning, I found my SSL renewals timing out — the logs showed connections to acme.zerossl.com. Eventually, they started throwing 429 rate-limit errors from Let’s Encrypt after I switched CAs.… Read ⇢

    How To Fix SSL Timeout and Rate-Limit Errors in CyberPanel (acme.sh + ZeroSSL → Let’s Encrypt)
  • Data-Driven Link Verification with Playwright (Python) + pytest

    When you refactor menus, migrate content, or run a large SEO cleanup, you often need to prove that specific anchor texts on specific pages now point to the new target URLs. Doing that by hand is slow and error-prone. This article shows a clean, repeatable way to automate it using:… Read ⇢

    Data-Driven Link Verification with Playwright (Python) + pytest
1 2 3 … 13
Next

Ayush Raj

  • Twitter
  • Instagram

Loading Comments...