---
title: "My posts on dev."
url: "https://sarthakmishra.com/blog/tag/dev"
description: "In-depth articles and insights about design, dev, growth, journal: hands-on build guides, essays and opinions, and the latest technology trends."
image: "https://sarthakmishra.com/sarthak-og-image.webp"
---

[View HTML](https://sarthakmishra.com/blog/tag/dev) · [Site index](https://sarthakmishra.com/llms.txt)

# My posts on dev.

I write about anything and everything that interests me.

[design](https://sarthakmishra.com/blog/tag/design)[dev](https://sarthakmishra.com/blog)[growth](https://sarthakmishra.com/blog/tag/growth)[journal](https://sarthakmishra.com/blog/tag/journal)

[![Illustrated hands frame a floating video player with play button against an abstract purple background.](https://sarthakmishra.com/assets/adaptive-video-streaming-hero-BdJfL03g.jpeg)](https://sarthakmishra.com/blog/adaptive-video-streaming)

[Nov 01 2026](https://sarthakmishra.com/blog/adaptive-video-streaming)

## [Adaptive video with FFmpeg, Vite and a custom player](https://sarthakmishra.com/blog/adaptive-video-streaming)

[How I turn recordings into cached AV1 and H.264 streams with FFmpeg and Vite, then play them with native HLS or Mattebox behind custom React controls.](https://sarthakmishra.com/blog/adaptive-video-streaming)

[![Gold coins and a clock spiral into a deep blue vortex.](https://sarthakmishra.com/assets/scoping-a-saas-project-hero-CJ2n9BSM.jpeg)](https://sarthakmishra.com/blog/scoping-a-saas-project)

[Oct 31 2026](https://sarthakmishra.com/blog/scoping-a-saas-project)

## [How to scope a SaaS project you can afford to finish](https://sarthakmishra.com/blog/scoping-a-saas-project)

[How I approach SaaS scope and pricing as a former agency owner and current freelancer, and what to ask when budgeting for design and development.](https://sarthakmishra.com/blog/scoping-a-saas-project)

[![Colorful illustration of a central palm tree icon surrounded by charts, interface controls, and hands.](https://sarthakmishra.com/assets/optimizing-tanstack-start-hero-CzYctZnB.jpeg)](https://sarthakmishra.com/blog/optimizing-tanstack-start)

[Oct 26 2026](https://sarthakmishra.com/blog/optimizing-tanstack-start)

## [Optimizing the sh\*t out of TanStack Start](https://sarthakmishra.com/blog/optimizing-tanstack-start)

[A practical TanStack Start performance guide: how cutting downloads and fixing fonts and images took my home page from 73 to 100 on mobile Lighthouse.](https://sarthakmishra.com/blog/optimizing-tanstack-start)

[![Colorful vintage televisions display abstract symbols and retro website layouts.](https://sarthakmishra.com/assets/astro-to-tanstack-start-hero-pu-nd-Vm.jpeg)](https://sarthakmishra.com/blog/astro-to-tanstack-start)

[Oct 20 2026](https://sarthakmishra.com/blog/astro-to-tanstack-start)

## [Why I moved from Astro to TanStack Start](https://sarthakmishra.com/blog/astro-to-tanstack-start)

[I moved my portfolio to the React stack I use for client work. Getting Astro's loading behavior and performance back took more work.](https://sarthakmishra.com/blog/astro-to-tanstack-start)

[![Magnifying glass examining highlighted lines on overlapping documents, with pink accents and a yellow lightning bolt.](https://sarthakmishra.com/assets/automating-internal-linking-hero-DTj2-DZU.jpeg)](https://sarthakmishra.com/blog/automating-internal-linking)

[Oct 19 2026](https://sarthakmishra.com/blog/automating-internal-linking)

## [How I automated internal linking with AI](https://sarthakmishra.com/blog/automating-internal-linking)

[Find internal link opportunities with embeddings and a reranker, make an LLM justify each link, and place links at build time instead of editing MDX.](https://sarthakmishra.com/blog/automating-internal-linking)

[![Seven colorful app icons float over a pastel sunset and ocean, including home, coffee, book, paper plane, binoculars, and sun.](https://sarthakmishra.com/assets/building-animated-nav-icons-hero-Ca3xkLHy.jpeg)](https://sarthakmishra.com/blog/building-animated-nav-icons)

[Oct 15 2026](https://sarthakmishra.com/blog/building-animated-nav-icons)

## [How to generate animated icons with TypeScript](https://sarthakmishra.com/blog/building-animated-nav-icons)

[How I replaced my Lordicon nav icons with seven animated sprite icons drawn in TypeScript, rendered with sharp, and played on a canvas.](https://sarthakmishra.com/blog/building-animated-nav-icons)

[![Pixel-art blue orb floats above a reflective lake beneath a starry, moonlit sky, with cursor.](https://sarthakmishra.com/assets/building-interactive-svg-avatar-hero-BFowlMS5.jpeg)](https://sarthakmishra.com/blog/building-interactive-svg-avatar)

[Oct 13 2026](https://sarthakmishra.com/blog/building-interactive-svg-avatar)

## [How to build an interactive Grok Bot-like avatar](https://sarthakmishra.com/blog/building-interactive-svg-avatar)

[Build a Grok Bot-like avatar with SVG, Astro, and React. Add cursor tracking, expressive eyes, protective winks, and natural idle animations.](https://sarthakmishra.com/blog/building-interactive-svg-avatar)

[![Hands reach toward a glowing vintage computer enclosed in a glass dome, surrounded by stars.](https://sarthakmishra.com/assets/managed-endpoints-hero-ClXGqE6Q.jpeg)](https://sarthakmishra.com/blog/assume-the-endpoint-is-hostile)

[Jun 27 2026](https://sarthakmishra.com/blog/assume-the-endpoint-is-hostile)

## [Assume the Endpoint Is Hostile](https://sarthakmishra.com/blog/assume-the-endpoint-is-hostile)

[Lakhs of government PCs can reach the core, each trusting whoever sits in front of it. Borrow Apple's closed model and make the wrong move unavailable.](https://sarthakmishra.com/blog/assume-the-endpoint-is-hostile)

## Subscribe to my newsletter

You'll get two emails initially: a confirmation link to verify your subscription, followed by a welcome message. Thanks for joining!

You can read all of my [previous issues here](https://sarthakmishra.com/newsletter)

## Structured data

```json
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@type": "WebSite",
      "@id": "https://sarthakmishra.com/#website",
      "url": "https://sarthakmishra.com/",
      "name": "Sarthak Mishra",
      "publisher": {
        "@id": "https://sarthakmishra.com/#person"
      },
      "inLanguage": "en"
    },
    {
      "@type": "Person",
      "@id": "https://sarthakmishra.com/#person",
      "name": "Sarthak Mishra",
      "url": "https://sarthakmishra.com/about",
      "jobTitle": "Design Engineer",
      "image": "https://sarthakmishra.com/og-images/sarthak-mishra.webp",
      "sameAs": [
        "https://github.com/SarthakMishra",
        "https://www.linkedin.com/in/itssarthakmishra/",
        "https://x.com/MishraMishry"
      ]
    },
    {
      "@type": "CollectionPage",
      "@id": "https://sarthakmishra.com/blog/tag/dev#webpage",
      "url": "https://sarthakmishra.com/blog/tag/dev",
      "name": "Blog posts on Dev by Sarthak Mishra",
      "description": "In-depth articles and insights about design, dev, growth, journal: hands-on build guides, essays and opinions, and the latest technology trends.",
      "inLanguage": "en",
      "isPartOf": {
        "@id": "https://sarthakmishra.com/#website"
      },
      "mainEntity": {
        "@id": "https://sarthakmishra.com/blog/tag/dev#items"
      }
    },
    {
      "@type": "ItemList",
      "@id": "https://sarthakmishra.com/blog/tag/dev#items",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "Adaptive video with FFmpeg, Vite and a custom player",
          "url": "https://sarthakmishra.com/blog/adaptive-video-streaming"
        },
        {
          "@type": "ListItem",
          "position": 2,
          "name": "How to scope a SaaS project you can afford to finish",
          "url": "https://sarthakmishra.com/blog/scoping-a-saas-project"
        },
        {
          "@type": "ListItem",
          "position": 3,
          "name": "Optimizing the sh*t out of TanStack Start",
          "url": "https://sarthakmishra.com/blog/optimizing-tanstack-start"
        },
        {
          "@type": "ListItem",
          "position": 4,
          "name": "Why I moved from Astro to TanStack Start",
          "url": "https://sarthakmishra.com/blog/astro-to-tanstack-start"
        },
        {
          "@type": "ListItem",
          "position": 5,
          "name": "How I automated internal linking with AI",
          "url": "https://sarthakmishra.com/blog/automating-internal-linking"
        },
        {
          "@type": "ListItem",
          "position": 6,
          "name": "How to generate animated icons with TypeScript",
          "url": "https://sarthakmishra.com/blog/building-animated-nav-icons"
        },
        {
          "@type": "ListItem",
          "position": 7,
          "name": "How to build an interactive Grok Bot-like avatar",
          "url": "https://sarthakmishra.com/blog/building-interactive-svg-avatar"
        },
        {
          "@type": "ListItem",
          "position": 8,
          "name": "Assume the Endpoint Is Hostile",
          "url": "https://sarthakmishra.com/blog/assume-the-endpoint-is-hostile"
        }
      ]
    }
  ]
}
```
