---
title: "My posts on design."
url: "https://sarthakmishra.com/blog"
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) · [Site index](https://sarthakmishra.com/llms.txt)

# My posts on design.

I write about anything and everything that interests me.

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

[![Hands guide three sequential interface cards from image selection to a completed checkmark.](https://sarthakmishra.com/assets/how-startups-designed-their-mvps-hero-BqVRm4If.jpeg)](https://sarthakmishra.com/blog/how-startups-designed-their-mvps)

[Nov 03 2026](https://sarthakmishra.com/blog/how-startups-designed-their-mvps)

## [How Dropbox, DoorDash, Airbnb and Stripe designed their MVPs](https://sarthakmishra.com/blog/how-startups-designed-their-mvps)

[Early UI and founder stories from Dropbox, DoorDash, Airbnb, Stripe, Zapier, and Product Hunt. What to design first, reuse, and leave for later.](https://sarthakmishra.com/blog/how-startups-designed-their-mvps)

[![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)

[![Illustration of a woman arranging portrait photographs on a green table, surrounded by plants and paper.](https://sarthakmishra.com/assets/hiring-a-freelance-designer-hero-DLgj3U9y.jpeg)](https://sarthakmishra.com/blog/hiring-a-freelance-designer)

[Oct 22 2026](https://sarthakmishra.com/blog/hiring-a-freelance-designer)

## [How to hire a freelance designer who can deliver](https://sarthakmishra.com/blog/hiring-a-freelance-designer)

[A founder’s guide to hiring a freelance designer: check real contributions, constraints, working fit, and delivery before committing to the work.](https://sarthakmishra.com/blog/hiring-a-freelance-designer)

[![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)

## 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#webpage",
      "url": "https://sarthakmishra.com/blog",
      "name": "Blog posts on Design, Dev, Growth and more 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#items"
      }
    },
    {
      "@type": "ItemList",
      "@id": "https://sarthakmishra.com/blog#items",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "How Dropbox, DoorDash, Airbnb and Stripe designed their MVPs",
          "url": "https://sarthakmishra.com/blog/how-startups-designed-their-mvps"
        },
        {
          "@type": "ListItem",
          "position": 2,
          "name": "Adaptive video with FFmpeg, Vite and a custom player",
          "url": "https://sarthakmishra.com/blog/adaptive-video-streaming"
        },
        {
          "@type": "ListItem",
          "position": 3,
          "name": "How to scope a SaaS project you can afford to finish",
          "url": "https://sarthakmishra.com/blog/scoping-a-saas-project"
        },
        {
          "@type": "ListItem",
          "position": 4,
          "name": "Optimizing the sh*t out of TanStack Start",
          "url": "https://sarthakmishra.com/blog/optimizing-tanstack-start"
        },
        {
          "@type": "ListItem",
          "position": 5,
          "name": "How to hire a freelance designer who can deliver",
          "url": "https://sarthakmishra.com/blog/hiring-a-freelance-designer"
        },
        {
          "@type": "ListItem",
          "position": 6,
          "name": "Why I moved from Astro to TanStack Start",
          "url": "https://sarthakmishra.com/blog/astro-to-tanstack-start"
        },
        {
          "@type": "ListItem",
          "position": 7,
          "name": "How I automated internal linking with AI",
          "url": "https://sarthakmishra.com/blog/automating-internal-linking"
        },
        {
          "@type": "ListItem",
          "position": 8,
          "name": "How to generate animated icons with TypeScript",
          "url": "https://sarthakmishra.com/blog/building-animated-nav-icons"
        }
      ]
    }
  ]
}
```
