Writing
I've been writing on web development, edge performance, databases, AI applications, authentication, payments, and integrations since Mar 13, 2020. Some live here, some live on partner blogs - both are listed below, newest first.
- Posts
- 189
- On rishi.app
- 21
- Elsewhere
- 168
What partners say
3 quotesI have been working with Rishi for about two years now. He assists us with developer relations and content creation activities. Typically, I briefly explain a project, and he builds it impressively in a short period. I highly recommend him for engineering and software development projects.
Enes Akar CEO · Upstash
Rishi collaborated with us to create educational and technical articles showcasing the Koyeb serverless GPU offering. He is highly responsive, with great technical writing skills, able to tackle a wide range of topics. His contributions really helped us scale our content production.
Edouard Bonlieu Co-Founder & CPO · Koyeb
We collaborated with Rishi for a few tutorials/articles on HarperDB. He was great to work with, set clear expectations, and produced the content we were looking for! Great resource for the dev community.
Margo McCabe Head of Partnerships & DevRel · HarperDB
Archive
189 posts# 2026
12 posts- May 12 Agent memory and context for apps github.com ↗
- May 07 Build Google Docs style version history with Postgres branching neon.com ↗
- May 05 Get Started with the Polar Plugin for Strapi github.com ↗
- May 05 Build an AI Tutor for Open Source Repositories with DeepWiki medium.com ↗
- Apr 27 Build an AI teammate to help with your Postgres dev.to ↗
- Apr 26 Choosing Between NextAuth.js, Neon Auth and Better Auth for Postgres neon.com ↗
- Apr 21 What Actually Differs Between Prisma, Drizzle, and TypeORM for Postgres neon.com ↗
- Apr 21 Creem - Sell Framer Templates with Instant Remix Links docs.creem.io ↗
- Apr 15 How Contextual Embeddings and Hybrid Search Fix Retrieval Failures read →
- Apr 07 Build your own Parity Pricing for SaaS with Polar and Astro launchfa.st ↗
- Apr 06 9 Months of Customer Success at Polar read →
- Apr 05 Build a Verified Recent Sales Notification with Polar and Astro launchfa.st ↗
# 2025
33 posts- Dec 26 [Docs] Polar SDK for Supabase polar.sh ↗
- Dec 26 [Docs] Polar SDK for Golang polar.sh ↗
- Dec 09 Live Collaborative Editing in Astro with Cloudflare Durable Objects launchfa.st ↗
- Dec 09 How to schedule subscription downgrades with Upstash QStash raw.githubusercontent.com ↗
- Dec 09 Bot Protection in Astro with Cloudflare Turnstile launchfa.st ↗
- Dec 08 Generating PDFs in Astro with Cloudflare Browser Rendering at the Edge launchfa.st ↗
- Dec 06 Implement Rate Limiting in Astro with Cloudflare Workers launchfa.st ↗
- Dec 05 Setting Up Privacy-Focused Analytics with Tinybird in Astro launchfa.st ↗
- Dec 04 Building Real-Time Chat in Astro with Cloudflare Durable Objects and WebSockets launchfa.st ↗
- Dec 03 Implementing Incremental Static Regeneration (ISR) in Astro with Cloudflare KV launchfa.st ↗
- Dec 02 How to disable email editing in checkout polar.sh ↗
- Dec 01 Protecting Astro from Supply Chain Attacks: Part 1 - Understanding Shai-Hulud 2.0 and Immediate Response launchfa.st ↗
- Dec 01 Reusing Database Queries in Astro SSG launchfa.st ↗
- Dec 01 How to Grant Meter Credits Before Purchase polar.sh ↗
- Dec 01 How to Grant Meter Credits After Purchase polar.sh ↗
- Nov 27 Using Partytown with Google Tag Manager in Astro: A Step-by-Step Guide launchfa.st ↗
- Nov 26 Automate Preview Deployments with Netlify and Neon Database Branching neon.com ↗
- Nov 20 Deploy Unsloth on Koyeb for Lightning-Fast LLM Training koyeb.com ↗
- Nov 08 How to Create Checkout Session polar.sh ↗
- Jul 23 JWT Security Best Practices phasetwo.io ↗
- Jul 23 Decoding JWTs Structure phasetwo.io ↗
- Jul 23 Benefits and Drawbacks of JWTs phasetwo.io ↗
- Jul 12 How Rishi Raj Jain helped improve the Home page speed of Neon speedvitals.com ↗
- Jun 06 How I Sped Up the neon.tech Homepage from ~400ms to ~90ms read →
- Apr 25 Query Cloud Firestore with Astro on Cloudflare Workers launchfa.st ↗
- Apr 25 Query Redis with Astro on Cloudflare Workers launchfa.st ↗
- Apr 24 How to Generate Pre-signed URLs for Firebase Storage with Astro on Cloudflare Workers launchfa.st ↗
- Apr 23 How to Generate Pre-signed URLs for Cloudflare R2 with Astro on Cloudflare Workers launchfa.st ↗
- Apr 23 How to Generate Pre-signed URLs for Amazon S3 with Astro on Cloudflare Workers launchfa.st ↗
- Mar 27 Search From a Million Books in Milliseconds With Neon and pg_search neon.tech ↗
- Mar 01 Building Real-Time Comments with a Serverless Postgres neon.tech ↗
- Jan 15 Authenticate users in Next.js with Auth.js upstash.com ↗
- Jan 05 Instantly Copy TB-Size Datasets: The Magic of Copy-on-Write neon.tech ↗
# 2024
103 posts- Dec 27 Using Directus CMS with Neon Postgres and Astro to build a blog neon.tech ↗
- Dec 21 Using DBeaver with a Hosted Postgres neon.tech ↗
- Dec 19 Build Your Own AI Voice Assistant neon.tech ↗
- Dec 18 Auto Translate your Website with OpenAI and Upstash Workflow upstash.com ↗
- Dec 18 Drizzle with Local and Serverless Postgres neon.tech ↗
- Dec 18 Building a Real-Time AI Voice Assistant with ElevenLabs neon.tech ↗
- Nov 29 Using pgAdmin4 with a Hosted Postgres neon.tech ↗
- Nov 28 Connect from Drizzle to Neon neon.tech ↗
- Nov 26 Efficiently Syncing 60 Million Rows from Snowflake to Postgres neon.tech ↗
- Nov 24 Authenticating users in Astro with Better Auth: A Step-by-Step Guide launchfa.st ↗
- Nov 20 Use FLUX, PyTorch, and Streamlit to Build an AI Image Generation App koyeb.com ↗
- Oct 30 Astro vs Next.js: Choosing the Right Framework in 2024 launchfa.st ↗
- Oct 26 6 Essential Features Every Web Starter Kit Should Include launchfa.st ↗
- Oct 17 Using OpenAI Swarm in Python: A Step-by-Step Guide launchfa.st ↗
- Oct 11 Scheduling Audio Transcriptions with QStash upstash.com ↗
- Sep 27 Build a RAG Chatbot with Upstash, OpenAI, Clerk, and Next.js upstash.com ↗
- Sep 19 Building In-App Notifications in Next.js getstream.io ↗
- Sep 19 Comparing local-first frameworks and approaches neon.tech ↗
- Aug 20 Neon Twin: How to deploy a change tested in Neon to prod in RDS neon.tech ↗
- Aug 02 Connect from Phoenix to Neon neon.tech ↗
- Aug 02 Connect from TypeORM to Neon neon.tech ↗
- Aug 02 Connect from Knex to Neon neon.tech ↗
- Aug 02 Building Slack notifications to monitor pg_dump and restore workflows neon.tech ↗
- Jul 20 If I have read-only tables in Postgres, should I index them heavily? neon.tech ↗
- Jul 10 Connect a SolidStart application to Neon neon.tech ↗
- Jul 10 Connect a NestJS application to Neon neon.tech ↗
- Jul 05 Real-Time Notifications using pg_notify with Neon Postgres neon.tech ↗
- Jul 03 Database testing with fixtures and seeding neon.tech ↗
- Jul 03 Connect a JavaScript application to Neon neon.tech ↗
- Jul 03 Connect a React application to Neon neon.tech ↗
- Jul 02 Create a Telegram Bot in Next.js App Router: A Step-by-Step Guide launchfa.st ↗
- Jun 27 Using OpenAI Whisper to Transcribe Podcasts on Koyeb koyeb.com ↗
- Jun 13 Import data from Postgres with the @neondatabase/pg-import CLI neon.tech ↗
- Jun 13 Injecting Environment Variables Dynamically in Cloudflare Pages launchfa.st ↗
- Jun 12 Connect an Express application to Neon neon.tech ↗
- Jun 11 Using LlamaIndex with Postgres to Build your own Reverse Image Search Engine neon.tech ↗
- Jun 11 Build a RAG chatbot with Astro, Postgres, and LlamaIndex neon.tech ↗
- Jun 10 How to use Firebase Storage to upload and retrieve files in Next.js (Pages Router)? dev.to ↗
- Jun 10 How to you use GitHub Issues as your CMS? dev.to ↗
- Jun 09 Using Unplugin Icons in Astro with React: A Step-by-Step Guide launchfa.st ↗
- Jun 09 Using Unplugin Icons in SvelteKit: A Step-by-Step Guide launchfa.st ↗
- Jun 09 Using Unplugin Icons in Next.js: A Step-by-Step Guide launchfa.st ↗
- Jun 05 The silent syntax difference in foreign keys between Postgres and MySQL neon.tech ↗
- Jun 05 Using Strapi CMS with Neon Postgres and Astro to build a blog neon.tech ↗
- Jun 05 Using Payload CMS with Neon Postgres to Build an E-commerce Store in Next.js neon.tech ↗
- Jun 05 Run your own analytics with Umami, Fly.io and Neon neon.tech ↗
- Jun 05 Using Animate On Scroll (AOS) in Astro: A Step-by-Step Guide launchfa.st ↗
- Jun 01 Add feature flags in SvelteKit apps with Neon Postgres neon.tech ↗
- May 23 Build an AI Powered Mobile Chatbot with Expo and Cloudflare AI upstash.com ↗
- May 22 How to upload to S3 in Next.js and save references in Postgres neon.tech ↗
- May 21 Query Postgres in Next.js Server Actions neon.tech ↗
- May 16 Getting started with Django, PostgreSQL, and Readyset readyset.io ↗
- May 15 Build an AI Chatbot for any website using Replit Postgres and OpenAI replit.com ↗
- May 14 Using LlamaIndex and MongoDB to Build a Job Search Assistant koyeb.com ↗
- May 06 Using Server-Sent Events (SSE) to stream LLM responses in Next.js upstash.com ↗
- May 01 Securing SvelteKit Apps with Keycloak phasetwo.io ↗
- May 01 Using Stream to Build a Livestream Chat App in Next.js getstream.io ↗
- Apr 30 Securing Remix Apps with Keycloak phasetwo.io ↗
- Apr 25 Using PhotoSwipe in Astro to Build an Image Gallery launchfa.st ↗
- Apr 17 Using Transformers for Shiki to enrich Syntax Highlighting in Astro launchfa.st ↗
- Apr 16 Integrating Vector Search in E-commerce Platforms with Upstash Vector upstash.com ↗
- Apr 16 Using GreenSock Animation Platform (GSAP) in Astro with View Transitions: A Step-by-Step Guide launchfa.st ↗
- Apr 16 Using GreenSock Animation Platform (GSAP) in Astro: A Step-by-Step Guide launchfa.st ↗
- Apr 14 Using Firebase Realtime Database in Astro with Vue: A Step-by-Step Guide launchfa.st ↗
- Apr 13 Authenticating users in Astro with Clerk and React: A Step-by-Step Guide launchfa.st ↗
- Apr 12 Authenticating users in Astro using Neon Postgres and Lucia Auth neon.tech ↗
- Apr 10 Build a Dynamic E-Commerce Store UI with Astro, Neon Postgres, and AWS Amplify neon.tech ↗
- Apr 10 Build authenticated and paywall pages with Stripe and Xata xata.io ↗
- Apr 09 Using Autonomous AI Agents with SerpApi and AutoGPT to Build a Trip Planner koyeb.com ↗
- Mar 31 Deploy Next.js to AWS Amplify: A Step-by-Step Guide launchfa.st ↗
- Mar 30 Deploy SvelteKit to AWS Amplify: A Step-by-Step Guide launchfa.st ↗
- Mar 30 Deploy Astro to Amazon ECS on AWS Fargate: A Step-by-Step Guide launchfa.st ↗
- Mar 28 Deploy Astro to AWS Amplify: A Step-by-Step Guide launchfa.st ↗
- Mar 28 Caching OpenAI Chat API Responses with LangChain and Xata xata.io ↗
- Mar 25 Building a Tweet Scheduler using Upstash upstash.com ↗
- Mar 13 Using Astro and Server-Sent Events (SSE) to Build Realtime In-App Notifications koyeb.com ↗
- Mar 13 Building an Article Recommendation System with Upstash upstash.com ↗
- Mar 06 Building a Retrieval-Augmented Generation Chatbot with SvelteKit and Xata Vector Search xata.io ↗
- Mar 01 Block Users from Specific Countries using Hono Ultrafast Web Framework and Vercel Edge Functions dev.to ↗
- Mar 01 Capture IP address using Bun with ElysiaJS, Docker and Render.com dev.to ↗
- Mar 01 Tackle DDOS attacks with Redis Rate Limiting dev.to ↗
- Mar 01 Qwik look at Resumability with Astro on Vercel dev.to ↗
- Mar 01 Authenticating users via Google OAuth 2.0 on the Edge using Nitro by UnJS and Deno Land dev.to ↗
- Mar 01 25 lines to setup a Form and send Emails in Next.js 14 using Server Actions dev.to ↗
- Mar 01 Building Rate Limiter based on IP Address with Netlify Blobs and Edge Functions dev.to ↗
- Mar 01 How to Implement Feature Flags in Node.js using Unleash dev.to ↗
- Mar 01 How to Implement Feature Flags in Astro using Unleash dev.to ↗
- Mar 01 Experience of building a complete? font optimization package for Astro websites dev.to ↗
- Mar 01 Automating access to a GitHub Repo using Stripe Webhooks and Astro Endpoints dev.to ↗
- Mar 01 How To Upload Images with Astro and Xata dev.to ↗
- Mar 01 How to Implement Contextual Feature Flags in SvelteKit using Unleash dev.to ↗
- Mar 01 How to Implement Contextual Feature Flags in Angular using Unleash dev.to ↗
- Mar 01 Building a Real-Time AI Chatbot w/ Model Training using HarperDB, Pinecone, Next.js, LangChain & Vercel harperdb.io ↗
- Mar 01 Building your own Image Gallery with Remix, HarperDB, ImageKit and Vercel harperdb.io ↗
- Mar 01 Credentials User Authentication with HarperDB, Hono and Vercel harperdb.io ↗
- Mar 01 Build a Retrieval-Augmented Generation Chatbot using pgvector koyeb.com ↗
- Mar 01 Create your own content management system with Remix and Xata xata.io ↗
- Mar 01 Build your own image gallery CMS xata.io ↗
- Mar 01 Add feature flags in Astro apps using Xata and Vercel xata.io ↗
- Mar 01 Building your own RAG chatbot with Upstash upstash.com ↗
- Mar 01 Building Real-Time Notifications with Upstash Redis, Next.js Server Actions and Vercel upstash.com ↗
- Mar 01 Building an AI Chatbot trained on custom content with LangChain, Faiss and Next.js upstash.com ↗
- Jan 02 SEO Optimization for Client Side Rendered Next.js Apps read →
# 2023
8 posts- Jun 15 Building an open-source JIRA using Firebase, Upstash and SvelteKit upstash.com ↗
- Jun 08 Build Your Own Showcase Gallery With Storyblok, SvelteKit and Edgio storyblok.com ↗
- May 26 Parsing noscript Elements using Cheerio in Node.js read →
- May 24 Decoupled Migration: A Deep Dive into Migrating Large E-commerce Websites Page by Page with Edgio v6 read →
- May 21 Building an open-source alternative to LinkTree with Astro, Upstash and GitHub upstash.com ↗
- May 02 Build Your Own Link Hub With Storyblok, Astro and Edgio storyblok.com ↗
- Jan 03 Using Dotenv Vault with Edgio and Nuxt.js read →
- Jan 01 Case Study: How Nginx.com can leverage Edgio to improve their First Page Loads upto ~50%, acing Largest Contentful Paint. read →
# 2022
12 posts- Dec 26 Case Study: How Miko.AI can leverage Edgio to improve their First Page Loads upto ~67%, acing Largest Contentful Paint. read →
- Dec 25 Case Study: How Optym.com can leverage Edgio to improve their First Page Loads upto ~50%, acing Largest Contentful Paint. read →
- Dec 21 Using Firebase Admin with SvelteKit read →
- Dec 16 What is a Proxy Server? read →
- Oct 11 Writing hindi using devanagari package in overleaf read →
- Jun 08 Dynamic Open Graph Image Generator with Layer0, Next.js, TailwindCSS, Chrome AWS Lambda and Puppeteer-Core dev.to ↗
- Jun 05 Conditional Basic Authorization using the platform, Layer0 dev.to ↗
- Jun 03 Basic Authentication using the platform, Layer0 dev.to ↗
- May 03 Case Study: How Nike.com can leverage Edgio to improve their First Page Loads and Navigation upto ~80%, acing Largest Contentful Paint. read →
- Mar 18 Using Layer0’s EdgeJS to Configure Custom Security Headers dev.to ↗
- Feb 22 Compute runtime dependencies for your Remix Express app via @vercel/nft read →
- Jan 23 Custom Service Worker in any app with esbuild rishi-raj-jain.medium.com ↗
# 2021
16 posts- Nov 02 Using Firebase Admin with Next.js read →
- Oct 21 Building Dynamic Previews with Next.js, TailwindCSS, Chrome AWS Lambda and Edgio read →
- Sep 28 Build Your Personal Blog With Next.js, Storyblok, and Layer0 storyblok.com ↗
- Sep 11 Svelte, Service Worker and Edgio read →
- Aug 12 A/B testing using Layer0 Edge Split Testing with Google Optimize Server Side framework read →
- Aug 09 Enabling Service Worker with Vue 2 and Vue 3 read →
- Jul 14 A guide to Incremental Static (Re)generation (ISG and ISR) With Layer0 and Nuxt.js! layer0.co ↗
- Jul 09 Deploy Next SPA with Storyblok to Layer0 storyblok.com ↗
- Jul 09 Deploying Sanity Studio with Surge sanity.io ↗
- Jul 04 Deploying Sanity Studio with Layer0 sanity.io ↗
- Jun 22 Building with the right Meta Tags: From empowering Social Media Previews to SEO dev.to ↗
- Jun 21 How To Build Your Own Likes and Comments System With Firebase and React read →
- Jun 13 Setup your app on Google Domains with Layer0 dev.to ↗
- Jun 10 Incremental Static (Re)Generation with Nuxt.js and Layer0 dev.to ↗
- Apr 18 From delivering content to eXperience — How Layer0 has changed my eXperience as a Front-End D̶e̶v̶e̶l̶o̶p̶e̶r Engineer medium.com ↗
- Jan 10 Dynamic Markdown Blogs in Next.js/React using gray-matter, react-markdown and react-syntax-highlighter medium.com ↗
# 2020
5 posts- Oct 20 Case study: A UX-centered analysis of information sharing and privacy over WhatsApp bootcamp.uxdesign.cc ↗
- Jul 20 Mobile, Web Apps? Get started with React Native. API? Use Apollo GraphQL. medium.com ↗
- Jun 05 Next.js | SWR (Stale While Revalidate) – Introduction geeksforgeeks.org ↗
- May 14 Static & Dynamic Websites medium.com ↗
- May 13 A Short guide to Starting ‘Web Development’ medium.com ↗