<?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>Forem: Ulhas Vardhan Golchha</title>
    <description>The latest articles on Forem by Ulhas Vardhan Golchha (@golchha21).</description>
    <link>https://forem.com/golchha21</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%2F555227%2F2fe73684-c72a-44e1-8d93-4b897e0abc1f.jpeg</url>
      <title>Forem: Ulhas Vardhan Golchha</title>
      <link>https://forem.com/golchha21</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/golchha21"/>
    <language>en</language>
    <item>
      <title>reSmushit for Laravel</title>
      <dc:creator>Ulhas Vardhan Golchha</dc:creator>
      <pubDate>Sun, 01 Feb 2026 16:20:51 +0000</pubDate>
      <link>https://forem.com/golchha21/resmushit-for-laravel-213n</link>
      <guid>https://forem.com/golchha21/resmushit-for-laravel-213n</guid>
      <description>&lt;p&gt;reSmush.it is a FREE API that provides image optimization. reSmush.it has been implemented on the most common CMS.&lt;/p&gt;

&lt;p&gt;Moreover, reSmush.it is the most used image optimization API with more than 7 billions images already treated, and is still totally Free of charge !&lt;/p&gt;

&lt;p&gt;Ever since I came to know about it I have been using the service for my WordPress setups.&lt;/p&gt;

&lt;p&gt;When I started working with Laravel I was missing this service. So here is the package that I published and now am using in all my Laravel Projects.&lt;/p&gt;

&lt;p&gt;Here is how you can use the package:&lt;/p&gt;

&lt;p&gt;Install via Composer&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;composer require golchha21/resmushit
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Publish configuration file&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;php artisan vendor:publish --provider Golchha21\ReSmushIt\Providers\ServiceProvider --tag=config
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Once you publish the configuration file you can change the values as per you usage:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;return [
    'original' =&amp;gt; true|false,
    'quality' =&amp;gt; 92,
    'mime' =&amp;gt; [
        'image/png',
        'image/jpeg',
        'image/gif',
        'image/bmp',
        'image/tiff',
    ],
    'useragent' =&amp;gt; 'SOME USER AGENT',
    'exif' =&amp;gt; true|false,
];
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Finally, you can use it in two ways:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$file = public_path('images/news1.jpg');
$files = [
    public_path('images/news1.jpg'),
    public_path('images/news2.jpg'),
    public_path('images/news3.jpg'),
    public_path('images/news4.jpg'),
];
$resmushit = new ReSmushIt();
$result = $resmushit-&amp;gt;path($file);
$results = $resmushit-&amp;gt;paths($files);
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;2.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$file = public_path('images/news1.jpg');
$files = [
    public_path('images/news1.jpg'),
    public_path('images/news2.jpg'),
    public_path('images/news3.jpg'),
    public_path('images/news4.jpg'),
];
Optimize::path($file);
Optimize::paths($files);

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Voila.&lt;/p&gt;

&lt;p&gt;Do try and let me know. Also if you find any error and or bugs do add an issue here.&lt;/p&gt;

&lt;p&gt;Few links:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.ulhas.net/" rel="noopener noreferrer"&gt;Website&lt;/a&gt; | &lt;a href="https://github.com/golchha21/" rel="noopener noreferrer"&gt;Github&lt;/a&gt;&lt;br&gt;
&lt;a href="https://github.com/golchha21/ReSmushIt" rel="noopener noreferrer"&gt;reSmushIt for Laravel&lt;/a&gt;&lt;/p&gt;

</description>
      <category>laravel</category>
      <category>php</category>
      <category>showdev</category>
      <category>optmise</category>
    </item>
    <item>
      <title>HTML is Easy to Produce. That’s the Problem.</title>
      <dc:creator>Ulhas Vardhan Golchha</dc:creator>
      <pubDate>Sun, 01 Feb 2026 07:50:19 +0000</pubDate>
      <link>https://forem.com/golchha21/html-is-easy-to-produce-thats-the-problem-a90</link>
      <guid>https://forem.com/golchha21/html-is-easy-to-produce-thats-the-problem-a90</guid>
      <description>&lt;p&gt;HTML is everywhere.&lt;br&gt;
It’s simple, expressive, and universal.&lt;/p&gt;

&lt;p&gt;And yet, most production HTML today is accidental.&lt;/p&gt;

&lt;p&gt;Generated by templates that hide logic in strings.&lt;br&gt;
Wrapped in abstractions until it stops looking like HTML.&lt;br&gt;
Emitted by systems that don’t really care what comes out, as long as it renders.&lt;/p&gt;

&lt;p&gt;The result usually works.&lt;br&gt;
It just isn’t deliberate.&lt;/p&gt;

&lt;p&gt;That’s why HTMLForge exists.&lt;/p&gt;

&lt;h2&gt;
  
  
  The quiet problem with modern HTML
&lt;/h2&gt;

&lt;p&gt;HTML hasn’t failed us.&lt;br&gt;
Our tooling has changed how we treat it.&lt;/p&gt;

&lt;p&gt;In most stacks, HTML is the end of a pipeline. Something produced, not designed. Rarely validated. Almost never questioned.&lt;/p&gt;

&lt;p&gt;What this really means is that HTML stopped being a first-class artifact.&lt;/p&gt;

&lt;p&gt;You don’t reason about it.&lt;br&gt;
You don’t enforce rules around it.&lt;br&gt;
You just hope the output looks fine in a browser.&lt;/p&gt;

&lt;p&gt;HTMLForge starts from the opposite assumption.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;HTML should be intentional, explicit, and verifiable.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  HTML is a contract
&lt;/h2&gt;

&lt;p&gt;HTML is not just markup.&lt;/p&gt;

&lt;p&gt;Accessibility lives in attributes.&lt;br&gt;
SEO lives in structure.&lt;br&gt;
Performance lives in semantics.&lt;br&gt;
Maintainability lives in predictability.&lt;/p&gt;

&lt;p&gt;You can generate HTML that renders perfectly while still being invalid, inaccessible, or structurally wrong. Most tools won’t tell you.&lt;/p&gt;

&lt;p&gt;HTMLForge will.&lt;/p&gt;

&lt;p&gt;Not by guessing.&lt;br&gt;
Not by fixing things silently.&lt;br&gt;
By refusing to produce incorrect output.&lt;/p&gt;

&lt;h2&gt;
  
  
  What HTMLForge actually is
&lt;/h2&gt;

&lt;p&gt;HTMLForge is not a template engine.&lt;br&gt;
It’s not a frontend framework.&lt;br&gt;
It’s not trying to replace your stack.&lt;/p&gt;

&lt;p&gt;HTMLForge treats HTML like compiled output.&lt;/p&gt;

&lt;p&gt;Elements, attributes, and structure are defined explicitly.&lt;br&gt;
Rules exist for what is allowed.&lt;br&gt;
Validation happens before HTML is emitted.&lt;/p&gt;

&lt;p&gt;If something is wrong, it fails early. Not in production. Not in a browser. Not in a screen reader.&lt;/p&gt;

&lt;p&gt;Correctness is the primary feature.&lt;/p&gt;

&lt;h2&gt;
  
  
  This is not about ergonomics first
&lt;/h2&gt;

&lt;p&gt;Most tools optimize for speed of writing.&lt;br&gt;
HTMLForge optimizes for confidence of output.&lt;/p&gt;

&lt;p&gt;That’s a deliberate tradeoff.&lt;/p&gt;

&lt;p&gt;HTMLForge is not trying to be cute, fluent, or clever.&lt;br&gt;
It’s trying to be predictable.&lt;/p&gt;

&lt;p&gt;When HTML is generated programmatically and lives for years, small inconsistencies become systemic problems. Bad HTML spreads quietly. Good HTML stays boring and reliable.&lt;/p&gt;

&lt;p&gt;HTMLForge is built for boring reliability.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where HTMLForge fits best
&lt;/h2&gt;

&lt;p&gt;HTMLForge shines when HTML becomes infrastructure.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;CMS rendering layers&lt;/li&gt;
&lt;li&gt;server-side HTML generation&lt;/li&gt;
&lt;li&gt;email systems&lt;/li&gt;
&lt;li&gt;admin interfaces&lt;/li&gt;
&lt;li&gt;framework adapters&lt;/li&gt;
&lt;li&gt;long-lived design systems&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you’re just prototyping a page, this might feel heavy.&lt;br&gt;
If HTML is core to your system, it feels necessary.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why it’s framework-agnostic
&lt;/h2&gt;

&lt;p&gt;HTMLForge doesn’t compete with frameworks.&lt;br&gt;
It sits underneath them.&lt;/p&gt;

&lt;p&gt;Frameworks change.&lt;br&gt;
HTML rules don’t.&lt;/p&gt;

&lt;p&gt;That’s why HTMLForge keeps its core small, stable, and intentionally boring. Integrations live outside the core, adapting it to Laravel, WordPress, or anything else.&lt;/p&gt;

&lt;p&gt;The foundation stays firm.&lt;br&gt;
The ecosystem evolves.&lt;/p&gt;

&lt;h2&gt;
  
  
  Learn more
&lt;/h2&gt;

&lt;p&gt;HTMLForge is open source and actively evolving.&lt;/p&gt;

&lt;p&gt;You can explore the project, read the docs, or follow its progress on GitHub: &lt;a href="https://github.com/golchha21/htmlforge" rel="noopener noreferrer"&gt;https://github.com/golchha21/htmlforge&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The philosophy, plainly
&lt;/h2&gt;

&lt;p&gt;HTMLForge exists because HTML deserves to be treated like code, not like a side effect.&lt;/p&gt;

&lt;p&gt;Not louder.&lt;br&gt;
Not trendier.&lt;br&gt;
Just more honest.&lt;/p&gt;

</description>
      <category>html</category>
      <category>webdev</category>
      <category>opensource</category>
      <category>buildinpublic</category>
    </item>
  </channel>
</rss>
