<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Pranav Sindura</title>
    <description>The latest articles on DEV Community by Pranav Sindura (@pranavsindura).</description>
    <link>https://dev.to/pranavsindura</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3202405%2F9c940e33-c597-40a8-a8c8-7ed74e0f943c.jpg</url>
      <title>DEV Community: Pranav Sindura</title>
      <link>https://dev.to/pranavsindura</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/pranavsindura"/>
    <language>en</language>
    <item>
      <title>Stop Abstracting Your Frontend</title>
      <dc:creator>Pranav Sindura</dc:creator>
      <pubDate>Sun, 29 Jun 2025 14:03:16 +0000</pubDate>
      <link>https://dev.to/pranavsindura/stop-abstracting-your-frontend-44dl</link>
      <guid>https://dev.to/pranavsindura/stop-abstracting-your-frontend-44dl</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt;&lt;br&gt;
We treat frontend like backend - abstracting UI into patterns that don’t match how designs actually evolve. Stop trying to make your UI scalable. Instead, make it adaptable. This post breaks down why your frontend abstractions keep failing — and what to do instead.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;p&gt;After working across several UI applications from scrappy personal projects, startups-scale mobile applications and to Big Tech enterprise CRMs, one thing keeps bothering me: &lt;strong&gt;we treat frontend like backend&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;I’ve studied all the usual design patterns to clear interviews: factory, strategy, builder, proxy, facade... the works. And I’ve seen these abstractions leak into frontend codebases where they &lt;strong&gt;don’t belong&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;We try to scale, abstract, and over engineer - and we forget that UI doesn’t reward elegance. It rewards the &lt;strong&gt;ability to iterate, and to adapt&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The issue? People are too eager to treat UI the same way they treat backend systems - with abstraction, encapsulation, and DRY principles - without acknowledging that the rate and nature of change in UI is fundamentally different.&lt;/p&gt;




&lt;h3&gt;
  
  
  &lt;em&gt;UI is Designed to Break&lt;/em&gt;
&lt;/h3&gt;

&lt;p&gt;The most fragile part of your stack is your UI. One small tweak in Figma can undo days of “architectural scaffolding”. Yet people still keep trying to create “smart” abstractions: reusable components, nested sections, configurable UIs with metadata-driven rendering.&lt;/p&gt;

&lt;p&gt;It sounds elegant. Until it isn’t.&lt;/p&gt;

&lt;p&gt;Yes, you should abstract at the foundational level: design tokens, layout primitives, interaction patterns - the building blocks that rarely change.&lt;/p&gt;

&lt;p&gt;I love:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://tailwindcss.com/" rel="noopener noreferrer"&gt;Tailwind&lt;/a&gt; for utility-based layout&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://react.fluentui.dev/" rel="noopener noreferrer"&gt;Fluent UI v9&lt;/a&gt; for structured component reuse&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That’s where abstraction belongs.&lt;/p&gt;




&lt;h3&gt;
  
  
  &lt;em&gt;Figma Doesn’t Care About Your Abstractions&lt;/em&gt;
&lt;/h3&gt;

&lt;p&gt;Designers don’t think in patterns.&lt;/p&gt;

&lt;p&gt;They think in flow, hierarchy, narrative. When they move a section around, introduce a banner between specific bullets, or redesign one screen - your abstraction breaks.&lt;/p&gt;

&lt;p&gt;So you patch it. You add metadata. You build config-based rendering. You invent more patterns. Before long, you’ve created a custom CMS inside your React app.&lt;/p&gt;

&lt;p&gt;Before your content payload looked like -&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="p"&gt;[&lt;/span&gt;
    &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;This is point #1&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;This is rendered as bullet point list within a section&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Great!&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;
&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now it looks like -&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="p"&gt;[&lt;/span&gt;
    &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;type&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;BULLET&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;content&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;This is point #1&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
    &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;type&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;BANNER_SMALL&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;image&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;https://link.to/the/small/banner&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;alt&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;this is an image of your small banner&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;maxVersionToShowOn&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;1.9.0&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
    &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;type&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;BULLET&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;content&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Not so great :(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then the new engineer arrives. They need to implement a small change. But first, they have to reverse-engineer your abstraction. They ask:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“How is this page rendered again?”&lt;br&gt;
“Why is the footer wrapped inside a section factory?”&lt;br&gt;
“Why is the banner conditionally injected via content metadata?”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The answer is: because the team prematurely abstracted everything into patterns that looked elegant once, but are painful forever.&lt;/p&gt;




&lt;h3&gt;
  
  
  &lt;em&gt;The Cost of Abstraction is Underestimated&lt;/em&gt;
&lt;/h3&gt;

&lt;p&gt;Design changes more frequently than business logic.&lt;/p&gt;

&lt;p&gt;Your database schema might stay stable for months. Your Figma file changes every 2 weeks.&lt;/p&gt;

&lt;p&gt;But frontend abstraction assumes the opposite: that content is stable, and structure is sacred.&lt;/p&gt;

&lt;p&gt;That’s just not how UI works. The result?&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Engineers fear touching the UI&lt;/li&gt;
&lt;li&gt;Pages get rebuilt from scratch&lt;/li&gt;
&lt;li&gt;Abstractions go stale&lt;/li&gt;
&lt;li&gt;Designers are told: “This isn’t feasible”&lt;/li&gt;
&lt;li&gt;Innovation slows down&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  &lt;em&gt;UI is a Canvas to Iterate, not a System to Scale&lt;/em&gt;
&lt;/h3&gt;

&lt;p&gt;We need to stop over-engineering the frontend. Your UI doesn’t need to be scalable. It needs to be navigable, editable, and fast to iterate on.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Favor composition over abstraction&lt;/li&gt;
&lt;li&gt;Favor readability over DRY&lt;/li&gt;
&lt;li&gt;Favor changeability over structure&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  &lt;em&gt;KISS - Keep It Super Simple.&lt;/em&gt;
&lt;/h3&gt;

&lt;p&gt;Treat design as the primary driver. Build for change, not for elegance. Your abstraction won’t save you when the banner moves.&lt;/p&gt;




&lt;blockquote&gt;
&lt;p&gt;💡 Takeaways:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Abstract slowly, especially in the UI.&lt;/li&gt;
&lt;li&gt;Prioritize readability and adaptability.&lt;/li&gt;
&lt;li&gt;Align your component design with the rate of change in design, not backend logic.&lt;/li&gt;
&lt;li&gt;KISS still wins — even in 2025.&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;

</description>
      <category>webdev</category>
      <category>programming</category>
      <category>javascript</category>
      <category>ui</category>
    </item>
    <item>
      <title>10 Reasons why your Documentation sucks</title>
      <dc:creator>Pranav Sindura</dc:creator>
      <pubDate>Wed, 25 Jun 2025 15:36:07 +0000</pubDate>
      <link>https://dev.to/pranavsindura/10-reasons-why-your-documentation-sucks-3gfh</link>
      <guid>https://dev.to/pranavsindura/10-reasons-why-your-documentation-sucks-3gfh</guid>
      <description>&lt;p&gt;&lt;strong&gt;You&lt;/strong&gt; love writing docs, don’t you?&lt;/p&gt;

&lt;p&gt;You drop the link in chat - “hey, wrote this up.”&lt;/p&gt;

&lt;p&gt;Your team gives you a 👍, maybe even a “nice one.”&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;But nobody actually uses it.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A week later, they ask you the same question.&lt;/p&gt;

&lt;p&gt;6 months later, even you stop trusting what you wrote.&lt;/p&gt;




&lt;p&gt;Here are &lt;strong&gt;10 reasons&lt;/strong&gt; why your documentation sucks.&lt;/p&gt;

&lt;h3&gt;
  
  
  1.
&lt;/h3&gt;

&lt;p&gt;You open three docs for the same system.&lt;br&gt;
Each one says something slightly different.&lt;br&gt;
You don’t know which is right, so you ask someone.&lt;br&gt;
Now there are four sources of truth.&lt;/p&gt;

&lt;h3&gt;
  
  
  2.
&lt;/h3&gt;

&lt;p&gt;The most reliable signal in a doc isn’t the content.&lt;br&gt;
It’s the last modified date.&lt;br&gt;
If it hasn’t been touched in 6 months, odds are it’s lying to you.&lt;/p&gt;

&lt;h3&gt;
  
  
  3.
&lt;/h3&gt;

&lt;p&gt;Everyone says “just write it down.”&lt;br&gt;
Nobody says who’s supposed to clean it up.&lt;br&gt;
So your wiki grows.&lt;br&gt;
And trust shrinks.&lt;/p&gt;

&lt;h3&gt;
  
  
  4.
&lt;/h3&gt;

&lt;p&gt;Most people won’t navigate your folder structure.&lt;br&gt;
They search keywords.&lt;br&gt;
And if nothing useful shows up in 30 seconds, they ask in Slack.&lt;br&gt;
Your structure doesn’t matter if it’s invisible.&lt;/p&gt;

&lt;h3&gt;
  
  
  5.
&lt;/h3&gt;

&lt;p&gt;Docs don’t age like wine.&lt;br&gt;
They age like milk.&lt;br&gt;
If there’s no owner, no expiry date, and no signal of freshness - assume rotten.&lt;/p&gt;

&lt;h3&gt;
  
  
  6.
&lt;/h3&gt;

&lt;p&gt;You find a README.&lt;br&gt;
It looks promising.&lt;br&gt;
But the person who wrote it left the company last quarter.&lt;br&gt;
You still read it - but you don’t rely on it.&lt;/p&gt;

&lt;h3&gt;
  
  
  7.
&lt;/h3&gt;

&lt;p&gt;Even broken docs help sometimes.&lt;br&gt;
They point you to someone who knows more.&lt;br&gt;
That’s faster than digging through repos.&lt;br&gt;
Wrong docs can still move things forward.&lt;/p&gt;

&lt;h3&gt;
  
  
  8.
&lt;/h3&gt;

&lt;p&gt;Nobody wants to update a doc they didn’t write.&lt;br&gt;
So people fork it.&lt;br&gt;
Now there are two similar-but-not-same versions.&lt;br&gt;
Both kind of wrong in different ways.&lt;/p&gt;

&lt;h3&gt;
  
  
  9.
&lt;/h3&gt;

&lt;p&gt;People love structure - until they’re allowed to create folders.&lt;br&gt;
Now there are 12 levels, and nobody knows where anything lives.&lt;br&gt;
You end up searching by memory.&lt;br&gt;
Good luck with that.&lt;/p&gt;

&lt;h3&gt;
  
  
  10.
&lt;/h3&gt;

&lt;p&gt;Most documentation systems aren’t broken.&lt;br&gt;
They’re just neglected.&lt;br&gt;
It’s not a mess - it’s slow abandonment.&lt;br&gt;
You don’t notice it… until you really need something.&lt;/p&gt;




&lt;p&gt;You can’t fix what nobody owns. And most docs? &lt;strong&gt;Nobody&lt;/strong&gt; owns them.&lt;/p&gt;

&lt;p&gt;What can you do instead?&lt;/p&gt;

</description>
      <category>programming</category>
      <category>documentation</category>
      <category>productivity</category>
      <category>discuss</category>
    </item>
    <item>
      <title>Consistency Means Having Fun</title>
      <dc:creator>Pranav Sindura</dc:creator>
      <pubDate>Sun, 08 Jun 2025 13:45:37 +0000</pubDate>
      <link>https://dev.to/pranavsindura/consistency-means-having-fun-77o</link>
      <guid>https://dev.to/pranavsindura/consistency-means-having-fun-77o</guid>
      <description>&lt;p&gt;Everyone says consistency is everything.&lt;/p&gt;

&lt;p&gt;“1% improvement every day.”&lt;br&gt;
“Discipline over motivation.”&lt;br&gt;
“Show up even when you don’t feel like it.”&lt;/p&gt;

&lt;p&gt;I believe that. I’ve lived that.&lt;/p&gt;

&lt;p&gt;But here’s something that hit me recently:&lt;br&gt;
&lt;strong&gt;What’s the point of consistency if it stops being enjoyable?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If you keep showing up to a system that drains you, at some point you’ll either break the system, or it’ll break you.&lt;/p&gt;

&lt;p&gt;A few weeks ago, my routine was solid.&lt;br&gt;
Morning learning work &amp;gt; Office &amp;gt; Evening personal work. I was working on learning about Azure AI Search, and Power Automate - pace was flowing.&lt;/p&gt;

&lt;p&gt;And then it collapsed. Not all at once. Just... gradually.&lt;/p&gt;

&lt;p&gt;In the mornings, I had my learning routine—exploring Power Automate and Azure offerings, which I accessed through my work laptop because of enterprise subscriptions.&lt;br&gt;
Then came regular office work. In the evenings, I’d return to the learning track.&lt;/p&gt;

&lt;p&gt;On weekends, I had to work on a Tally project that also needed a Windows setup.&lt;/p&gt;

&lt;p&gt;At that point, I found myself juggling everything - learning, office work, and project tasks - on the same laptop.&lt;/p&gt;

&lt;p&gt;The boundary between work and “my time” started to blur. I’d wake up, open the laptop, and I was already in work mode—before I even got a chance to think about my learning, my reflections, my plans.&lt;/p&gt;

&lt;p&gt;That small shift threw everything off.&lt;/p&gt;




&lt;p&gt;I stopped checking my reflection board.&lt;br&gt;
Stopped working on my learning items.&lt;br&gt;
Didn’t even open my todo doc for days.&lt;/p&gt;

&lt;p&gt;And suddenly, the thing I was looking forward to every morning… wasn’t something I wanted to touch anymore.&lt;/p&gt;

&lt;p&gt;Instead, I binged 24 episodes of "The Apothecary Diaries" (enjoying it!) in two days. Didn’t plan to. Just... did.&lt;br&gt;
I told myself I was tired. But I wasn’t.&lt;br&gt;
I was bored. Burnt, maybe. But mostly bored.&lt;/p&gt;

&lt;p&gt;That’s when this clicked:&lt;br&gt;
&lt;strong&gt;I stopped because I wasn’t having fun anymore.&lt;/strong&gt;&lt;/p&gt;




&lt;p&gt;Now - when I say “fun”, I don’t mean dopamine-chasing, scrolling, or sugar-hits.&lt;br&gt;
I mean &lt;em&gt;aliveness&lt;/em&gt;. Flow. That sense of rhythm where something clicks and time just moves.&lt;/p&gt;

&lt;p&gt;Fun can be walking around the lake near my house.&lt;br&gt;
Watching trees move. Seeing birds messing around by the water.&lt;br&gt;
Or fixing a small piece of my wardrobe.&lt;br&gt;
Or trying a weird side idea that wasn’t on the plan.&lt;br&gt;
Not because it’s productive. But because it feels like me.&lt;/p&gt;

&lt;p&gt;And maybe - maybe, that isn’t a break from the system.&lt;br&gt;
That &lt;em&gt;is&lt;/em&gt; the system.&lt;/p&gt;




&lt;p&gt;So I added a new question to my weekly retrospection:&lt;/p&gt;

&lt;p&gt;“Did I have fun this week?”&lt;/p&gt;

&lt;p&gt;Not “Was I entertained?”&lt;br&gt;
Not “Did I rest?”&lt;/p&gt;

&lt;p&gt;But: Did I enjoy something deeply enough to want to keep coming back to it?&lt;/p&gt;

&lt;p&gt;If the answer is no for too many weeks in a row, something’s off.&lt;br&gt;
Even if the routine looks good from the outside.&lt;/p&gt;

&lt;p&gt;So I’ve added two more:&lt;/p&gt;

&lt;p&gt;Am I feeling burnt out?&lt;br&gt;
Do I need a distraction?&lt;/p&gt;

&lt;p&gt;Sometimes, I just need to do the same task differently.&lt;br&gt;
Sometimes, I need to switch tasks entirely.&lt;br&gt;
And sometimes, I need to walk away, reset, and come back with fresh eyes.&lt;/p&gt;




&lt;p&gt;The big shift here is this:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Consistency doesn’t mean doing the same thing the same way every day.&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;It means continuing to show up in a way that works for you.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;That might look like switching mediums.&lt;br&gt;
That might look like skipping a day and reflecting instead.&lt;br&gt;
That might look like changing the weight, the reps, the pace—just enough to keep it interesting.&lt;/p&gt;

&lt;p&gt;I’m starting to think that variety isn’t the enemy of consistency.&lt;br&gt;
It’s how you sustain it.&lt;/p&gt;

&lt;p&gt;I was hitting most of what I wanted. Checklists were clearing. I even tweaked my retrospection process to better suit how I think.&lt;/p&gt;

&lt;p&gt;Because consistency isn’t about how hard you grind.&lt;br&gt;
It’s about how long you’re willing to keep showing up.&lt;br&gt;
And you’re not going to show up for something that doesn’t feel good, at least some of the time.&lt;/p&gt;

&lt;p&gt;So yeah—consistency means having fun.&lt;br&gt;
Not always. Not recklessly. But enough to make you want to do it again tomorrow.&lt;/p&gt;




&lt;p&gt;Have you ever burnt out from something you actually loved? What brought you back?&lt;br&gt;
Tell me your story, I’m genuinely curious.&lt;/p&gt;

</description>
      <category>productivity</category>
      <category>motivation</category>
      <category>selfimprovement</category>
      <category>routines</category>
    </item>
  </channel>
</rss>
