<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>pulkit.blog</title>
  <subtitle>Notes by Pulkit on building software, system design, and the craft of interfaces.</subtitle>
  <id>https://pulkit.blog/</id>
  <link href="https://pulkit.blog/" />
  <link rel="self" href="https://pulkit.blog/feed.xml" />
  <updated>2026-08-09T00:00:00Z</updated>
  <author><name>Pulkit</name><uri>https://pulkit.page/</uri></author>
  <entry>
    <title>Kaksha: The App I Built for My Mother</title>
    <id>https://pulkit.blog/kaksha/</id>
    <link href="https://pulkit.blog/kaksha/" />
    <published>2026-08-09T00:00:00Z</published>
    <updated>2026-08-09T00:00:00Z</updated>
    <summary>My mother has spent the last year building the timetable for an entire government school by hand. I finally sat down, made her explain how it actually works, and shipped an Android tablet app for her in one night. This is that story.</summary>
  </entry>
  <entry>
    <title>Partial Clones, Shallow Clones, and Sparse Checkout</title>
    <id>https://pulkit.blog/git-partial-clones/</id>
    <link href="https://pulkit.blog/git-partial-clones/" />
    <published>2026-08-03T00:00:00Z</published>
    <updated>2026-08-03T00:00:00Z</updated>
    <summary>A deep dive into git&apos;s three cloning knobs: how partial clone, shallow clone, and sparse checkout actually work under the hood, and the exact recipe that turns a multi-gigabyte clone into a few seconds of download when you only need to touch one file.</summary>
  </entry>
  <entry>
    <title>My First Talk: Claude Directory</title>
    <id>https://pulkit.blog/my-first-talk/</id>
    <link href="https://pulkit.blog/my-first-talk/" />
    <published>2026-06-13T00:00:00Z</published>
    <updated>2026-06-13T00:00:00Z</updated>
    <summary>The story of the craziest 24 hours I&apos;ve had: launching Claude Directory, watching it cross 75k views and 160+ stars overnight, and then walking up to demo it on stage for the very first time in my life.</summary>
  </entry>
  <entry>
    <title>Git Worktrees</title>
    <id>https://pulkit.blog/git-worktrees/</id>
    <link href="https://pulkit.blog/git-worktrees/" />
    <published>2026-05-29T00:00:00Z</published>
    <updated>2026-05-29T00:00:00Z</updated>
    <summary>A deep dive into git worktrees: how they actually work under the hood, the full command surface, and the workflow I use to run multiple AI agents like Claude Code in parallel without them stepping on each other.</summary>
  </entry>
  <entry>
    <title>The Cookie Sync Pattern</title>
    <id>https://pulkit.blog/cookie-sync-pattern/</id>
    <link href="https://pulkit.blog/cookie-sync-pattern/" />
    <published>2026-05-04T00:00:00Z</published>
    <updated>2026-05-04T00:00:00Z</updated>
    <summary>How to make localStorage state work with SSR. No more hydration mismatches, no more flash of wrong content. A pattern that works for themes, sidebars, user preferences, and any persisted UI state.</summary>
  </entry>
  <entry>
    <title>An MCP Server That Writes Itself</title>
    <id>https://pulkit.blog/mcp-server-that-writes-itself/</id>
    <link href="https://pulkit.blog/mcp-server-that-writes-itself/" />
    <published>2026-04-22T00:00:00Z</published>
    <updated>2026-04-22T00:00:00Z</updated>
    <summary>A plain-language look at how to put an MCP server in front of a Hono API, reuse your existing auth and OpenAPI file, and let tools generate themselves from your routes.</summary>
  </entry>
  <entry>
    <title>Rate Limiting</title>
    <id>https://pulkit.blog/system-design/rate-limiting/</id>
    <link href="https://pulkit.blog/system-design/rate-limiting/" />
    <published>2026-04-11T00:00:00Z</published>
    <updated>2026-04-11T00:00:00Z</updated>
    <summary>Learn how rate limiters protect your systems from being overwhelmed. Understand where to place them, why Redis is the go-to database, five popular algorithms, and how to scale with sharding. Includes the practical insight of building rate limiters as libraries instead of services.</summary>
  </entry>
  <entry>
    <title>BullMQ Cron Jobs with Redis in Node.js</title>
    <id>https://pulkit.blog/cron-jobs-with-bullmq/</id>
    <link href="https://pulkit.blog/cron-jobs-with-bullmq/" />
    <published>2026-03-29T00:00:00Z</published>
    <updated>2026-03-29T00:00:00Z</updated>
    <summary>Schedule cron jobs in Node.js with BullMQ repeatable jobs and Redis: workers, scheduler internals, graceful shutdown, and DB sync. Full TypeScript code.</summary>
  </entry>
  <entry>
    <title>Invisible Scissors</title>
    <id>https://pulkit.blog/design-engineering/clip-path-reveals/</id>
    <link href="https://pulkit.blog/design-engineering/clip-path-reveals/" />
    <published>2026-03-25T00:00:00Z</published>
    <updated>2026-03-25T00:00:00Z</updated>
    <summary>clip-path trims elements into circles and polygons, but it is also a powerful animation tool. Learn how inset clipping works, build before and after sliders without extra wrappers, reveal images without layout shift, and fire reveals with Intersection Observer.</summary>
  </entry>
  <entry>
    <title>Choreographing Multi-Step Motion</title>
    <id>https://pulkit.blog/design-engineering/keyframe-animations/</id>
    <link href="https://pulkit.blog/design-engineering/keyframe-animations/" />
    <published>2026-03-15T00:00:00Z</published>
    <updated>2026-03-15T00:00:00Z</updated>
    <summary>Keyframe animations let you choreograph multi-step sequences that play automatically, loop forever, or pause mid-flight. Learn when to reach for keyframes over transitions, how fill-mode controls the before and after, and how to stack independent animations on a single element.</summary>
  </entry>
  <entry>
    <title>Smooth Scrolling in Next.js</title>
    <id>https://pulkit.blog/smooth-scroll/</id>
    <link href="https://pulkit.blog/smooth-scroll/" />
    <published>2026-03-03T00:00:00Z</published>
    <updated>2026-03-03T00:00:00Z</updated>
    <summary>How to add buttery smooth scrolling to a Next.js app using Lenis, GSAP ScrollTrigger, and Locomotive Scroll. The tradeoffs, the setup, and when you actually need it.</summary>
  </entry>
  <entry>
    <title>Smooth Operators</title>
    <id>https://pulkit.blog/design-engineering/css-transitions/</id>
    <link href="https://pulkit.blog/design-engineering/css-transitions/" />
    <published>2026-02-27T00:00:00Z</published>
    <updated>2026-02-27T00:00:00Z</updated>
    <summary>CSS transitions interpolate between UI states so changes feel intentional. Learn the four transition properties, why to avoid &apos;all&apos;, when transitions beat keyframes, and how to keep hover effects off touch devices.</summary>
  </entry>
  <entry>
    <title>How I Use Cursor to Build at 1000x Speed</title>
    <id>https://pulkit.blog/how-i-use-cursor/</id>
    <link href="https://pulkit.blog/how-i-use-cursor/" />
    <published>2026-02-26T00:00:00Z</published>
    <updated>2026-02-26T00:00:00Z</updated>
    <summary>A deep dive into how I use Cursor AI to ship production features faster than ever, the workflows that actually work, and why my company sponsors the Ultra plan for every engineer</summary>
  </entry>
  <entry>
    <title>Moving Things Without Moving Them</title>
    <id>https://pulkit.blog/design-engineering/moving-things-without-moving-them/</id>
    <link href="https://pulkit.blog/design-engineering/moving-things-without-moving-them/" />
    <published>2026-02-24T00:00:00Z</published>
    <updated>2026-02-24T00:00:00Z</updated>
    <summary>Understand CSS transforms and why they&apos;re the foundation of performant animations. Learn translate, rotate, scale, the order trap that catches everyone, and how to think in 3D.</summary>
  </entry>
  <entry>
    <title>Offloading Motion to the GPU</title>
    <id>https://pulkit.blog/design-engineering/offloading-motion-to-the-gpu/</id>
    <link href="https://pulkit.blog/design-engineering/offloading-motion-to-the-gpu/" />
    <published>2026-02-03T00:00:00Z</published>
    <updated>2026-02-03T00:00:00Z</updated>
    <summary>Fix janky CSS animations by understanding the rendering pipeline. Learn which properties trigger GPU acceleration, why transform beats width, and when to choose CSS over JavaScript.</summary>
  </entry>
  <entry>
    <title>Training Your Eye for Motion</title>
    <id>https://pulkit.blog/design-engineering/training-your-eye-for-motion/</id>
    <link href="https://pulkit.blog/design-engineering/training-your-eye-for-motion/" />
    <published>2026-01-29T00:00:00Z</published>
    <updated>2026-01-29T00:00:00Z</updated>
    <summary>Why taste is the skill that separates good interfaces from great ones. Learn how to develop your intuition for animation, study the work of others, and build the judgment that AI can&apos;t replace.</summary>
  </entry>
  <entry>
    <title>The Physics Behind Natural Motion</title>
    <id>https://pulkit.blog/design-engineering/the-physics-behind-natural-motion/</id>
    <link href="https://pulkit.blog/design-engineering/the-physics-behind-natural-motion/" />
    <published>2026-01-28T00:00:00Z</published>
    <updated>2026-01-28T00:00:00Z</updated>
    <summary>Move beyond duration-based animations. Learn how spring physics creates motion that responds, adapts, and feels genuinely natural. The secret behind iOS&apos;s fluid interactions.</summary>
  </entry>
  <entry>
    <title>When to Animate and When to Skip</title>
    <id>https://pulkit.blog/design-engineering/when-to-animate-and-when-to-skip/</id>
    <link href="https://pulkit.blog/design-engineering/when-to-animate-and-when-to-skip/" />
    <published>2026-01-28T00:00:00Z</published>
    <updated>2026-01-28T00:00:00Z</updated>
    <summary>Not every interaction needs motion. Learn how frequency, duration, and context determine whether animation helps or hurts your interface. The difference between delight and frustration.</summary>
  </entry>
  <entry>
    <title>Easing Curves That Feel Natural</title>
    <id>https://pulkit.blog/design-engineering/easing-curves-that-feel-natural/</id>
    <link href="https://pulkit.blog/design-engineering/easing-curves-that-feel-natural/" />
    <published>2026-01-27T00:00:00Z</published>
    <updated>2026-01-27T00:00:00Z</updated>
    <summary>Master easing curves to make your animations feel natural. Learn why linear is almost always wrong, how cubic-bezier works, and which easing to use for different interactions.</summary>
  </entry>
  <entry>
    <title>The Psychology of Motion in UI</title>
    <id>https://pulkit.blog/design-engineering/psychology-of-motion/</id>
    <link href="https://pulkit.blog/design-engineering/psychology-of-motion/" />
    <published>2026-01-25T00:00:00Z</published>
    <updated>2026-01-25T00:00:00Z</updated>
    <summary>Discover why some animations feel natural while others feel off. Explore the brain&apos;s wiring for movement, the uncanny valley of UI, and when animation becomes harmful.</summary>
  </entry>
  <entry>
    <title>Introduction to Big Data Tools</title>
    <id>https://pulkit.blog/system-design/big-data-tools/</id>
    <link href="https://pulkit.blog/system-design/big-data-tools/" />
    <published>2026-01-24T00:00:00Z</published>
    <updated>2026-01-24T00:00:00Z</updated>
    <summary>Learn why big data processing exists, how distributed computing works, and why tools like Apache Spark handle the heavy lifting so you can focus on business logic.</summary>
  </entry>
  <entry>
    <title>Bloom Filters</title>
    <id>https://pulkit.blog/system-design/bloom-filters/</id>
    <link href="https://pulkit.blog/system-design/bloom-filters/" />
    <published>2026-01-24T00:00:00Z</published>
    <updated>2026-01-24T00:00:00Z</updated>
    <summary>Learn how Bloom filters work: a probabilistic data structure that tells you with 100% certainty when something doesn&apos;t exist. Understand hash functions, bit arrays, false positives, and real-world use cases like recommendation engines and web crawlers.</summary>
  </entry>
  <entry>
    <title>Consistent Hashing</title>
    <id>https://pulkit.blog/system-design/consistent-hashing/</id>
    <link href="https://pulkit.blog/system-design/consistent-hashing/" />
    <published>2026-01-24T00:00:00Z</published>
    <updated>2026-01-24T00:00:00Z</updated>
    <summary>Learn how consistent hashing solves the data ownership problem in distributed systems. Understand hash-based routing, the ring abstraction, and how to scale up and down with minimal data movement.</summary>
  </entry>
  <entry>
    <title>Communication Protocols</title>
    <id>https://pulkit.blog/system-design/communication-protocols/</id>
    <link href="https://pulkit.blog/system-design/communication-protocols/" />
    <published>2026-01-23T00:00:00Z</published>
    <updated>2026-01-23T00:00:00Z</updated>
    <summary>Understand how clients and servers communicate over the network. TCP fundamentals, HTTP, WebSockets, Server-Sent Events, and API paradigms like REST, GraphQL, gRPC, and tRPC.</summary>
  </entry>
  <entry>
    <title>High Availability</title>
    <id>https://pulkit.blog/system-design/high-availability/</id>
    <link href="https://pulkit.blog/system-design/high-availability/" />
    <published>2026-01-23T00:00:00Z</published>
    <updated>2026-01-23T00:00:00Z</updated>
    <summary>Learn how to build resilient systems through data redundancy, automatic failover, and leader election. Understand backup strategies, database replication, disaster recovery patterns, and how leader election enables zero-downtime auto-recovery.</summary>
  </entry>
  <entry>
    <title>Circuit Breakers</title>
    <id>https://pulkit.blog/system-design/circuit-breakers/</id>
    <link href="https://pulkit.blog/system-design/circuit-breakers/" />
    <published>2026-01-13T00:00:00Z</published>
    <updated>2026-01-13T00:00:00Z</updated>
    <summary>Learn how circuit breakers prevent cascading failures in distributed systems. Understand why services fail together, how to implement circuit breakers, and practical patterns for building resilient microservices.</summary>
  </entry>
  <entry>
    <title>Load Balancers</title>
    <id>https://pulkit.blog/system-design/load-balancers/</id>
    <link href="https://pulkit.blog/system-design/load-balancers/" />
    <published>2026-01-11T00:00:00Z</published>
    <updated>2026-01-11T00:00:00Z</updated>
    <summary>Learn how load balancers enable horizontal scalability by distributing traffic across multiple servers. Understand load balancing algorithms, request flow, and key advantages for building resilient systems.</summary>
  </entry>
  <entry>
    <title>Message Queues vs Streams: SQS, RabbitMQ, Kafka, Pub/Sub</title>
    <id>https://pulkit.blog/system-design/async-processing/</id>
    <link href="https://pulkit.blog/system-design/async-processing/" />
    <published>2026-01-10T00:00:00Z</published>
    <updated>2026-01-10T00:00:00Z</updated>
    <summary>Message queues vs streams explained with SQS, RabbitMQ, Kafka, and Redis Pub/Sub, covering ack, dead letter queues, and async processing at scale.</summary>
  </entry>
  <entry>
    <title>Caching</title>
    <id>https://pulkit.blog/system-design/caching/</id>
    <link href="https://pulkit.blog/system-design/caching/" />
    <published>2026-01-08T00:00:00Z</published>
    <updated>2026-01-08T00:00:00Z</updated>
    <summary>Understand caching fundamentals: what it is, why it matters, and how to use it. Learn about cache architecture, key-value access patterns, and real-world examples with Redis and Memcached.</summary>
  </entry>
  <entry>
    <title>Non-Relational Databases</title>
    <id>https://pulkit.blog/system-design/non-relational-databases/</id>
    <link href="https://pulkit.blog/system-design/non-relational-databases/" />
    <published>2026-01-08T00:00:00Z</published>
    <updated>2026-01-08T00:00:00Z</updated>
    <summary>Explore the world of NoSQL databases: Document DBs, Key-Value Stores, and Graph Databases. Learn when to use each type, their trade-offs, and why they scale horizontally out of the box.</summary>
  </entry>
  <entry>
    <title>Understanding Database Scaling and Sharding Patterns</title>
    <id>https://pulkit.blog/system-design/understanding-database-scaling-sharding/</id>
    <link href="https://pulkit.blog/system-design/understanding-database-scaling-sharding/" />
    <published>2026-01-07T00:00:00Z</published>
    <updated>2026-01-07T00:00:00Z</updated>
    <summary>Master database scaling from vertical to horizontal scaling, read replicas, sharding strategies, and partitioning techniques. Learn when to use synchronous vs asynchronous replication and how to choose the right shard key.</summary>
  </entry>
  <entry>
    <title>React Virtualized List from Scratch</title>
    <id>https://pulkit.blog/virtualized-list/</id>
    <link href="https://pulkit.blog/virtualized-list/" />
    <published>2026-01-04T00:00:00Z</published>
    <updated>2026-01-04T00:00:00Z</updated>
    <summary>Build a React virtualized list from scratch with the simple scroll math that renders only visible rows to keep huge lists smooth.</summary>
  </entry>
  <entry>
    <title>Database Transaction Internals: ACID, WAL, MVCC &amp; Locking</title>
    <id>https://pulkit.blog/system-design/db-transaction-internals/</id>
    <link href="https://pulkit.blog/system-design/db-transaction-internals/" />
    <published>2026-01-03T00:00:00Z</published>
    <updated>2026-01-03T00:00:00Z</updated>
    <summary>Database transaction internals explained: how ACID, WAL, MVCC, and locking work across PostgreSQL, MySQL, and MongoDB to keep data consistent.</summary>
  </entry>
  <entry>
    <title>Next.js Build Output Symbols (● ○ ƒ) and SSG</title>
    <id>https://pulkit.blog/ssg-in-nextjs/</id>
    <link href="https://pulkit.blog/ssg-in-nextjs/" />
    <published>2026-01-01T00:00:00Z</published>
    <updated>2026-01-01T00:00:00Z</updated>
    <summary>Next.js build output symbols decoded: ● means SSG (prerendered as static HTML), ○ Static, ƒ Dynamic, plus how SSG, SSR and ISR work.</summary>
  </entry>
  <entry>
    <title>Branded Types in TypeScript</title>
    <id>https://pulkit.blog/branded-types-in-typescript/</id>
    <link href="https://pulkit.blog/branded-types-in-typescript/" />
    <published>2025-12-26T00:00:00Z</published>
    <updated>2025-12-26T00:00:00Z</updated>
    <summary>Learn how branded types can prevent ID mix-ups and enforce domain rules across your TypeScript, Next.js, Drizzle, and Zod codebase.</summary>
  </entry>
  <entry>
    <title>SEO for Next.js Portfolio</title>
    <id>https://pulkit.blog/seo-for-nextjs-portfolio/</id>
    <link href="https://pulkit.blog/seo-for-nextjs-portfolio/" />
    <published>2025-12-21T00:00:00Z</published>
    <updated>2025-12-21T00:00:00Z</updated>
    <summary>Discover the exact SEO strategies that helped my Next.js website rank at the top of Google search results using SSG, dynamic metadata, and Open Graph optimization</summary>
  </entry>
  <entry>
    <title>RAG Chatbot with Qdrant</title>
    <id>https://pulkit.blog/rag-chatbot-with-qdrant/</id>
    <link href="https://pulkit.blog/rag-chatbot-with-qdrant/" />
    <published>2025-12-11T00:00:00Z</published>
    <updated>2025-12-11T00:00:00Z</updated>
    <summary>Learn how to build an intelligent chatbot using Retrieval-Augmented Generation (RAG) with Qdrant vector database, OpenAI embeddings, and Next.js. A complete guide to creating context-aware AI assistants.</summary>
  </entry>
  <entry>
    <title>Coolify: Self-Host Postgres, Redis &amp; Next.js</title>
    <id>https://pulkit.blog/deploying-on-coolify/</id>
    <link href="https://pulkit.blog/deploying-on-coolify/" />
    <published>2025-07-26T00:00:00Z</published>
    <updated>2025-07-26T00:00:00Z</updated>
    <summary>Coolify self-hosting guide to deploy Postgres, Redis, and a Next.js app on one server, an open-source Vercel alternative you fully control.</summary>
  </entry>
  <entry>
    <title>Build a Contact Form with Resend in Next.js</title>
    <id>https://pulkit.blog/contact-form-with-resend/</id>
    <link href="https://pulkit.blog/contact-form-with-resend/" />
    <published>2024-12-13T00:00:00Z</published>
    <updated>2024-12-13T00:00:00Z</updated>
    <summary>Build a Resend contact form in Next.js using Server Actions and React email templates, then verify a custom domain to reach the inbox.</summary>
  </entry>
  <entry>
    <title>Open Graph Images in Next.js</title>
    <id>https://pulkit.blog/og-images-in-nextjs/</id>
    <link href="https://pulkit.blog/og-images-in-nextjs/" />
    <published>2024-11-15T00:00:00Z</published>
    <updated>2024-11-15T00:00:00Z</updated>
    <summary>Learn how to enhance your Next.js app with dynamic Open Graph images to boost social media visibility and engagement</summary>
  </entry>
  <entry>
    <title>Prisma ORM with PostgreSQL</title>
    <id>https://pulkit.blog/prisma-with-postgresql/</id>
    <link href="https://pulkit.blog/prisma-with-postgresql/" />
    <published>2024-08-17T00:00:00Z</published>
    <updated>2024-08-17T00:00:00Z</updated>
    <summary>Prisma ORM with PostgreSQL setup in Node.js and TypeScript, covering schema, migrations, and type-safe CRUD operations for fewer runtime errors</summary>
  </entry>
  <entry>
    <title>React Image Gallery with PhotoSwipe</title>
    <id>https://pulkit.blog/image-gallery-with-photoswipe/</id>
    <link href="https://pulkit.blog/image-gallery-with-photoswipe/" />
    <published>2024-08-12T00:00:00Z</published>
    <updated>2024-08-12T00:00:00Z</updated>
    <summary>Build a React image gallery with PhotoSwipe and react-photoswipe-gallery to add animated, responsive image zoom to your app</summary>
  </entry>
  <entry>
    <title>React Context Menu with react-contexify</title>
    <id>https://pulkit.blog/context-menu-in-react/</id>
    <link href="https://pulkit.blog/context-menu-in-react/" />
    <published>2024-08-10T00:00:00Z</published>
    <updated>2024-08-10T00:00:00Z</updated>
    <summary>Build a custom React context menu with react-contexify, adding items, separators, submenus, and right-click triggers for fast in-app actions.</summary>
  </entry>
  <entry>
    <title>AWS S3 with Node.js: Upload Files with SDK v3</title>
    <id>https://pulkit.blog/aws-s3-with-nodejs/</id>
    <link href="https://pulkit.blog/aws-s3-with-nodejs/" />
    <published>2024-08-08T00:00:00Z</published>
    <updated>2024-08-08T00:00:00Z</updated>
    <summary>Integrate AWS S3 with Node.js using the @aws-sdk/client-s3 S3 client to upload files and images and manage buckets in your app.</summary>
  </entry>
  <entry>
    <title>Node.js on EC2 with PM2 and NGINX</title>
    <id>https://pulkit.blog/nodejs-on-ec2/</id>
    <link href="https://pulkit.blog/nodejs-on-ec2/" />
    <published>2024-08-05T00:00:00Z</published>
    <updated>2024-08-05T00:00:00Z</updated>
    <summary>Learn to deploy Node.js applications on EC2 using PM2 and NGINX for robust and scalable production environments. Step-by-step guide included</summary>
  </entry>
  <entry>
    <title>Creating Your Own npx Command</title>
    <id>https://pulkit.blog/creating-npx-command/</id>
    <link href="https://pulkit.blog/creating-npx-command/" />
    <published>2024-07-27T00:00:00Z</published>
    <updated>2024-07-27T00:00:00Z</updated>
    <summary>Learn to create a personalized `npx` command to share your details with others efficiently. Follow my step-by-step guide on creating `npx devpulkit`</summary>
  </entry>
  <entry>
    <title>FastAPI SSE: Server-Sent Events in Python</title>
    <id>https://pulkit.blog/sse-with-fastapi/</id>
    <link href="https://pulkit.blog/sse-with-fastapi/" />
    <published>2024-07-26T00:00:00Z</published>
    <updated>2024-07-26T00:00:00Z</updated>
    <summary>Stream real-time Server-Sent Events from FastAPI with sse-starlette&apos;s EventSourceResponse for long-running tasks and live updates. Full Python code.</summary>
  </entry>
  <entry>
    <title>Scroll Indicator with Framer Motion useScroll</title>
    <id>https://pulkit.blog/scroll-indicator-with-framer/</id>
    <link href="https://pulkit.blog/scroll-indicator-with-framer/" />
    <published>2024-07-24T00:00:00Z</published>
    <updated>2024-07-24T00:00:00Z</updated>
    <summary>Build a horizontal scroll indicator with Framer Motion using the useScroll and useTransform hooks to track scroll progress in React.</summary>
  </entry>
  <entry>
    <title>Python Dependency Management with Poetry</title>
    <id>https://pulkit.blog/python-poetry-guide/</id>
    <link href="https://pulkit.blog/python-poetry-guide/" />
    <published>2024-07-13T00:00:00Z</published>
    <updated>2024-07-13T00:00:00Z</updated>
    <summary>Learn how to simplify Python dependency management using Poetry with easy installation, project setup, and a FastAPI server example</summary>
  </entry>
  <entry>
    <title>VSCode in Your Browser</title>
    <id>https://pulkit.blog/vscode-in-browser/</id>
    <link href="https://pulkit.blog/vscode-in-browser/" />
    <published>2024-07-04T00:00:00Z</published>
    <updated>2024-07-04T00:00:00Z</updated>
    <summary>Guide on setting up a VSCode Server in your browser using Docker</summary>
  </entry>
  <entry>
    <title>Typewriter Effect in React</title>
    <id>https://pulkit.blog/typewriter-effect-in-react/</id>
    <link href="https://pulkit.blog/typewriter-effect-in-react/" />
    <published>2024-04-28T00:00:00Z</published>
    <updated>2024-04-28T00:00:00Z</updated>
    <summary>Learn how to create a typewriter effect in React with this step-by-step guide. Engage your audience with nostalgic charm</summary>
  </entry>
</feed>
