DEV Community

Parsa Jiravand profile picture

Parsa Jiravand

Frontend developer building back-office tools with server-driven UI. Big on clean architecture, TypeScript, and writing about the craft. Currently shipping a dev post a day.

Location Istanbul - Turkey Joined Joined on  Personal website https://github.com/parsajiravand

Education

Master of IT

Pronouns

Parsa

Work

Senior frontend developer

Nuxt Server Routes Explained: How Nitro Builds Your API

Nuxt Server Routes Explained: How Nitro Builds Your API

2
Comments
11 min read

Want to connect with Parsa Jiravand?

Create an account to connect with Parsa Jiravand. You can also sign in below to proceed if you already have an account.

Already have an account? Sign in
Your 'Save' Button Makes Copies. The File System Access API Doesn't.

Your 'Save' Button Makes Copies. The File System Access API Doesn't.

3
Comments
6 min read
Stop Guessing When Scrolling Stops — Use scrollend

Stop Guessing When Scrolling Stops — Use scrollend

8
Comments
5 min read
Next.js Route Handlers: GET Stopped Caching in 15 — How to Cache in 16

Next.js Route Handlers: GET Stopped Caching in 15 — How to Cache in 16

7
Comments
13 min read
getCurrentPosition() Doesn't Just Check — It Prompts

getCurrentPosition() Doesn't Just Check — It Prompts

9
Comments 1
5 min read
NestJS Guards: CanActivate, ExecutionContext & Reflector

NestJS Guards: CanActivate, ExecutionContext & Reflector

11
Comments
12 min read
localStorage Isn't Free — It's Blocking Your Main Thread

localStorage Isn't Free — It's Blocking Your Main Thread

9
Comments
5 min read
JSON.stringify Is Quietly Deleting Your File Uploads

JSON.stringify Is Quietly Deleting Your File Uploads

9
Comments
5 min read
The Background Task That Waited 40 Seconds for 'Idle'

The Background Task That Waited 40 Seconds for 'Idle'

8
Comments
5 min read
Vue Composables: The Shared State Trap (+ Cheat Sheet)

Vue Composables: The Shared State Trap (+ Cheat Sheet)

8
Comments
11 min read
The Dropdown You've Been Faking for a Decade

The Dropdown You've Been Faking for a Decade

8
Comments 4
4 min read
Next.js proxy.ts Explained (with Cheat Sheet)

Next.js proxy.ts Explained (with Cheat Sheet)

8
Comments
10 min read
Stop Writing JavaScript To Fix `100vh` On Mobile

Stop Writing JavaScript To Fix `100vh` On Mobile

11
Comments
5 min read
React Derived State: Why That useState Is Probably a Bug

React Derived State: Why That useState Is Probably a Bug

11
Comments 1
12 min read
Your Browser Is Rejecting Every Drop On Purpose

Your Browser Is Rejecting Every Drop On Purpose

10
Comments 1
5 min read
Nuxt Hydration Mismatch: Why It Happens and How to Fix It

Nuxt Hydration Mismatch: Why It Happens and How to Fix It

9
Comments 1
12 min read
Chrome Already Has The Eyedropper You're Building

Chrome Already Has The Eyedropper You're Building

10
Comments 1
5 min read
NestJS Testing Module: Provider Overrides (with Cheat Sheet)

NestJS Testing Module: Provider Overrides (with Cheat Sheet)

17
Comments 3
11 min read
The CSS Property That Fixes Dark Mode's Ugly White Boxes

The CSS Property That Fixes Dark Mode's Ugly White Boxes

12
Comments
4 min read
Stop Debouncing Resize. The Browser Already Watches It.

Stop Debouncing Resize. The Browser Already Watches It.

15
Comments 1
5 min read
Your Fetch Already Streams. You're Buffering It Anyway.

Your Fetch Already Streams. You're Buffering It Anyway.

10
Comments
4 min read
Next.js Parallel & Intercepting Routes: Modals Done Right

Next.js Parallel & Intercepting Routes: Modals Done Right

13
Comments 2
12 min read
Your Custom Element Is Missing From FormData — ElementInternals Fixes It

Your Custom Element Is Missing From FormData — ElementInternals Fixes It

11
Comments 1
4 min read
Vue nextTick Explained: How DOM Updates Are Batched

Vue nextTick Explained: How DOM Updates Are Batched

14
Comments 2
11 min read
The 'Read Aloud' Button That Only Works on the Second Click

The 'Read Aloud' Button That Only Works on the Second Click

14
Comments 1
5 min read
useAsyncData Keys in Nuxt: Caching, Dedupe & the Sharing Bug

useAsyncData Keys in Nuxt: Caching, Dedupe & the Sharing Bug

16
Comments 2
12 min read
The Search Highlight That Deletes Your Selection

The Search Highlight That Deletes Your Selection

17
Comments 4
5 min read
addDays() Mutated a Date Three Components Away From Where I Called It

addDays() Mutated a Date Three Components Away From Where I Called It

15
Comments 5
5 min read
React Form Actions: useActionState & useFormStatus Guide

React Form Actions: useActionState & useFormStatus Guide

9
Comments 2
11 min read
My .catch() Never Ran. The Bug Was Two Lines Above It

My .catch() Never Ran. The Bug Was Two Lines Above It

9
Comments 2
5 min read
NestJS Module Encapsulation Explained (with Cheat Sheet)

NestJS Module Encapsulation Explained (with Cheat Sheet)

14
Comments 2
12 min read
I Shipped 'Passwordless Login.' It Still Asked for a Username.

I Shipped 'Passwordless Login.' It Still Asked for a Username.

20
Comments 4
5 min read
Stop Hardcoding Share Buttons — Use the Web Share API

Stop Hardcoding Share Buttons — Use the Web Share API

19
Comments 3
6 min read
Next.js Server Actions: Mutations & Security (Cheat Sheet)

Next.js Server Actions: Mutations & Security (Cheat Sheet)

19
Comments
12 min read
Your Required Field Turns Red Before You Type Anything

Your Required Field Turns Red Before You Type Anything

22
Comments 2
4 min read
Web Workers in JavaScript: The Complete Guide

Web Workers in JavaScript: The Complete Guide

18
Comments 3
10 min read
One CSS Property Replaces Your Checkbox Hack

One CSS Property Replaces Your Checkbox Hack

22
Comments
4 min read
Screen Wake Lock API: Keep the Screen On Without the Silent-Video Hack

Screen Wake Lock API: Keep the Screen On Without the Silent-Video Hack

11
Comments 2
5 min read
React Compiler 1.0: What useMemo You Can Delete

React Compiler 1.0: What useMemo You Can Delete

18
Comments
12 min read
Your Timer Doesn't Know You Tabbed Away

Your Timer Doesn't Know You Tabbed Away

18
Comments 2
4 min read
NestJS Dependency Injection Explained (with Cheat Sheet)

NestJS Dependency Injection Explained (with Cheat Sheet)

11
Comments
11 min read
Stop Regex-Parsing document.cookie. Use CookieStore

Stop Regex-Parsing document.cookie. Use CookieStore

11
Comments 1
5 min read
The await That Silently Breaks navigator.clipboard.writeText()

The await That Silently Breaks navigator.clipboard.writeText()

13
Comments
5 min read
You're not quiet in meetings, you're editing

You're not quiet in meetings, you're editing

19
Comments 1
8 min read
Shadow DOM Needed JavaScript to Exist. Now It Doesn't.

Shadow DOM Needed JavaScript to Exist. Now It Doesn't.

25
Comments 5
5 min read
Next.js Cache Components Explained (with Cheat Sheet)

Next.js Cache Components Explained (with Cheat Sheet)

16
Comments
12 min read
Your SPA Router Reacts to Navigation. The Navigation API Intercepts It.

Your SPA Router Reacts to Navigation. The Navigation API Intercepts It.

15
Comments
5 min read
Debounce and Throttle in JavaScript: The Complete Guide

Debounce and Throttle in JavaScript: The Complete Guide

19
Comments 1
11 min read
You Don't Need a WebSocket for That Live Feed

You Don't Need a WebSocket for That Live Feed

8
Comments
6 min read
Nuxt useState vs ref(): Why Server State Leaks Across Users

Nuxt useState vs ref(): Why Server State Leaks Across Users

16
Comments
12 min read
Delete Your padding-bottom Aspect-Ratio Hack

Delete Your padding-bottom Aspect-Ratio Hack

15
Comments
5 min read
React Re-render vs Remount: What Actually Triggers Each

React Re-render vs Remount: What Actually Triggers Each

20
Comments 1
11 min read
Stop Using outline: none. Use :focus-visible Instead.

Stop Using outline: none. Use :focus-visible Instead.

17
Comments
4 min read
NestJS Request Lifecycle Explained (with Cheat Sheet)

NestJS Request Lifecycle Explained (with Cheat Sheet)

22
Comments 5
11 min read
Your Grid Has Invisible Columns: auto-fill vs auto-fit

Your Grid Has Invisible Columns: auto-fill vs auto-fit

15
Comments
4 min read
You're truncating bios with `.slice()`. `Intl.Segmenter` knows where the emoji actually end.

You're truncating bios with `.slice()`. `Intl.Segmenter` knows where the emoji actually end.

24
Comments 2
5 min read
Delete Your Auto-Resize Textarea JS. CSS Does It Now.

Delete Your Auto-Resize Textarea JS. CSS Does It Now.

18
Comments 1
5 min read
Nobody tells you the question window is closing

Early job ignorance costs credibility fast

Nobody tells you the question window is closing

18
Comments 4
6 min read
JavaScript Closures: The Complete Guide (with Cheat Sheet)

JavaScript Closures: The Complete Guide (with Cheat Sheet)

16
Comments
12 min read
CSS Animations Can't Reverse Mid-Flight. The Web Animations API Can.

CSS Animations Can't Reverse Mid-Flight. The Web Animations API Can.

12
Comments
5 min read
loading...