<?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: Sushruth Shastry</title>
    <description>The latest articles on DEV Community by Sushruth Shastry (@sushruth).</description>
    <link>https://dev.to/sushruth</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%2F58626%2F20518a2c-8011-48a3-ae15-3e3054177145.jpg</url>
      <title>DEV Community: Sushruth Shastry</title>
      <link>https://dev.to/sushruth</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/sushruth"/>
    <language>en</language>
    <item>
      <title>Progressive frustration</title>
      <dc:creator>Sushruth Shastry</dc:creator>
      <pubDate>Sat, 19 Apr 2025 03:45:16 +0000</pubDate>
      <link>https://dev.to/sushruth/progressive-frustration-287k</link>
      <guid>https://dev.to/sushruth/progressive-frustration-287k</guid>
      <description>&lt;p&gt;Just as usual, I wanted to work on a weekend project. I came up with a name. I registered a domain.&lt;/p&gt;

&lt;p&gt;I started with a new &lt;a href="https://www.jetify.com/devbox/" rel="noopener noreferrer"&gt;&lt;code&gt;devbox&lt;/code&gt;&lt;/a&gt; because I like a clean install like that without requiring to run a whole container. Now, I wanted pick something I felt nice about to work with. Here were the choices in my head -&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; &lt;a href="https://deno.com/" rel="noopener noreferrer"&gt;&lt;code&gt;deno&lt;/code&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt; &lt;a href="https://bun.sh/docs" rel="noopener noreferrer"&gt;&lt;code&gt;bun&lt;/code&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt; &lt;a href="https://nodejs.org/" rel="noopener noreferrer"&gt;&lt;code&gt;nodejs&lt;/code&gt;&lt;/a&gt; 😔&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;I thought - YOLO, lets go &lt;a href="https://deno.com/" rel="noopener noreferrer"&gt;&lt;code&gt;deno&lt;/code&gt;&lt;/a&gt;! 🦖. I loved how it is an all in one tool with fmt, lint, test, and what not. I wanted that. Okay so I decided to use &lt;a href="https://fresh.deno.dev/docs/introduction" rel="noopener noreferrer"&gt;&lt;code&gt;fresh&lt;/code&gt;&lt;/a&gt; over deno because its native to deno, right?&lt;/p&gt;

&lt;p&gt;I also needed a CSS framework but I did not want to think too much. So I found the smallest usable one for me - &lt;a href="https://picocss.com/" rel="noopener noreferrer"&gt;&lt;code&gt;pico.css&lt;/code&gt;&lt;/a&gt;! it was so easy and it got the job done. By far the direction I am heading seems great!&lt;/p&gt;

&lt;p&gt;I loved how easy things were and how snappy and fast it was. It was awesome! my "Work in progress" page finished so quick. And thats pretty much all I accomplished.&lt;/p&gt;

&lt;p&gt;I wanted 3 things next -&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; Feature flags&lt;/li&gt;
&lt;li&gt; Global state&lt;/li&gt;
&lt;li&gt; Maybe some networking on the client side?&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;I first tried to use &lt;a href="https://www.growthbook.io/" rel="noopener noreferrer"&gt;&lt;code&gt;growthbook&lt;/code&gt;&lt;/a&gt;. They had only &lt;a href="https://react.dev/" rel="noopener noreferrer"&gt;&lt;code&gt;react&lt;/code&gt;&lt;/a&gt; support. I thought - I could use the &lt;a href="https://docs.growthbook.io/lib/js" rel="noopener noreferrer"&gt;&lt;code&gt;js sdk&lt;/code&gt;&lt;/a&gt; and work around it. Ok fine. It seemed a bit complicated to use in terms of their UI. Okay fine, I try to find an easier one maybe I can self-host. That way I could even put it behind &lt;a href="https://www.cloudflare.com/application-services/products/cdn/" rel="noopener noreferrer"&gt;&lt;code&gt;cloudflare CDN&lt;/code&gt;&lt;/a&gt; and use caching on it and clever cache-busting when I change values could help propagate changes. Okay fine I have a plan. I ended up going with &lt;a href="https://www.flagsmith.com/" rel="noopener noreferrer"&gt;&lt;code&gt;Flagsmith&lt;/code&gt;&lt;/a&gt; instead. It was even easier. Perfect.&lt;/p&gt;

&lt;p&gt;Now, Server-side rendering chaos ensues.&lt;/p&gt;

&lt;p&gt;I need to make a ton of decisions&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;do I fetch the flags on server side or client side? Why one over the other?&lt;/li&gt;
&lt;li&gt;how do I retro-fit &lt;a href="https://nextjs.org/" rel="noopener noreferrer"&gt;&lt;code&gt;nextjs&lt;/code&gt;&lt;/a&gt; instructions on the Flagsmith website to fit Deno's &lt;a href="https://fresh.deno.dev/docs/introduction" rel="noopener noreferrer"&gt;&lt;code&gt;fresh&lt;/code&gt;&lt;/a&gt; over &lt;a href="https://preactjs.com/" rel="noopener noreferrer"&gt;&lt;code&gt;preact&lt;/code&gt;&lt;/a&gt;?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Now I am just losing my mind. I should not have chosen this stack. I still have to think through authentication, I18n...&lt;/p&gt;

&lt;p&gt;This is why I need something that works across &lt;code&gt;"NATIVES"&lt;/code&gt; - an acronym I personally use for my work.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;code&gt;N&lt;/code&gt; - Networking&lt;/li&gt;
&lt;li&gt;  &lt;code&gt;A&lt;/code&gt; - Authentication&lt;/li&gt;
&lt;li&gt;  &lt;code&gt;T&lt;/code&gt; - Telemetry&lt;/li&gt;
&lt;li&gt;  &lt;code&gt;I&lt;/code&gt; - Internationalization&lt;/li&gt;
&lt;li&gt;  &lt;code&gt;V&lt;/code&gt; - Versioning (slow rollouts)&lt;/li&gt;
&lt;li&gt;  &lt;code&gt;E&lt;/code&gt; - Experimentation&lt;/li&gt;
&lt;li&gt;  &lt;code&gt;S&lt;/code&gt; - State&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I need a suite of tools that all work together in all those areas with full knowledge of each other. I am gonna make a thin "bring your own framework" type of js library layer as a connective tissue between all these. I am that frustrated.&lt;/p&gt;

&lt;p&gt;I am also thinking about the fragmentation of UI frameworks and "pick a side"-ness of all of them where we cluster the available frameworks into clumps and how mild barriers are forming around each ecosystem. I do not feel so great about that. Although I understand this is how web has always been and it has worked out to a certain degree. &lt;/p&gt;

&lt;p&gt;Maybe I will go back to just using plain webpack + react + react ecosystem.&lt;/p&gt;

</description>
      <category>deno</category>
      <category>fresh</category>
      <category>webdev</category>
      <category>devjournal</category>
    </item>
  </channel>
</rss>
