<?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: Florian</title>
    <description>The latest articles on DEV Community by Florian (@florianheysen).</description>
    <link>https://dev.to/florianheysen</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%2F800172%2F534bba30-c3e8-40aa-8f0b-4c131bedff35.png</url>
      <title>DEV Community: Florian</title>
      <link>https://dev.to/florianheysen</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/florianheysen"/>
    <language>en</language>
    <item>
      <title>Openinary: The Self-Hosted Cloudinary Alternative Nobody Built Before</title>
      <dc:creator>Florian</dc:creator>
      <pubDate>Sun, 21 Dec 2025 13:06:10 +0000</pubDate>
      <link>https://dev.to/florianheysen/openinary-the-self-hosted-cloudinary-alternative-nobody-built-before-25po</link>
      <guid>https://dev.to/florianheysen/openinary-the-self-hosted-cloudinary-alternative-nobody-built-before-25po</guid>
      <description>&lt;p&gt;I spent the last &lt;strong&gt;6 months&lt;/strong&gt; building &lt;strong&gt;Openinary&lt;/strong&gt;, and I believe it fills a real gap in the self-hosted ecosystem.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Problem
&lt;/h2&gt;

&lt;p&gt;You know what’s wild?&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;There’s &lt;strong&gt;Nextcloud&lt;/strong&gt; for file storage&lt;/li&gt;
&lt;li&gt;There’s &lt;strong&gt;Immich&lt;/strong&gt; for photos&lt;/li&gt;
&lt;li&gt;But there was &lt;strong&gt;nothing&lt;/strong&gt; for &lt;strong&gt;image processing and delivery at scale&lt;/strong&gt;, fully self-hosted&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Most SaaS image platforms follow the same pattern:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A great API&lt;/li&gt;
&lt;li&gt;Strong lock-in&lt;/li&gt;
&lt;li&gt;A bill that keeps growing&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Cloudinary&lt;/strong&gt; gates your media.&lt;br&gt;
&lt;strong&gt;Uploadcare&lt;/strong&gt; does the same.&lt;/p&gt;

&lt;p&gt;I was paying &lt;strong&gt;$90/month&lt;/strong&gt; for Cloudinary.&lt;/p&gt;

&lt;p&gt;For what?&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Resizing images&lt;/li&gt;
&lt;li&gt;Processing a demo video&lt;/li&gt;
&lt;li&gt;Adding watermarks&lt;/li&gt;
&lt;li&gt;Optimizing formats&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  The Solution
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Openinary&lt;/strong&gt; is what I built.&lt;/p&gt;

&lt;p&gt;A &lt;strong&gt;self-hosted, open-source alternative to Cloudinary&lt;/strong&gt;, focused on &lt;strong&gt;simplicity and control&lt;/strong&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  What it does
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Self-hosted, runs on your own infrastructure via &lt;strong&gt;Docker&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Simple URL-based API&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Example: &lt;code&gt;/w_1500,h_500,f_avif/sample.jpg&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;&lt;p&gt;Smart caching with invalidation&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;S3-compatible storage&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;Works with &lt;strong&gt;AWS S3&lt;/strong&gt;, &lt;strong&gt;Cloudflare R2&lt;/strong&gt;, &lt;strong&gt;MinIO&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;Automatic format optimization&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;WebP, AVIF, best format per browser&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;Open source&lt;/strong&gt;, &lt;strong&gt;AGPL-3.0&lt;/strong&gt; license&lt;/p&gt;&lt;/li&gt;

&lt;/ul&gt;




&lt;h2&gt;
  
  
  Why It Matters
&lt;/h2&gt;

&lt;p&gt;The &lt;strong&gt;self-hosted movement is real&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;People are moving away from SaaS lock-in, especially for &lt;strong&gt;core infrastructure&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Until now, one piece was missing:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;You couldn’t process and deliver media at scale on your own infrastructure.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Openinary aims to fill that gap.&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Current Status
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;⭐ &lt;strong&gt;83 GitHub stars&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;🔥 Featured on &lt;strong&gt;GitHub Trending&lt;/strong&gt; (Dec 9)&lt;/li&gt;
&lt;li&gt;🎥 &lt;strong&gt;8,000+ views&lt;/strong&gt; on the feature video&lt;/li&gt;
&lt;li&gt;🎯 Goal: &lt;strong&gt;100 stars by Dec 31&lt;/strong&gt; (yes, I’m chasing this 😅)&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Tech Stack
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Runtime:&lt;/strong&gt; Node.js&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Deployment:&lt;/strong&gt; Docker, one command&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Storage:&lt;/strong&gt; S3-compatible (AWS, Cloudflare R2, MinIO)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;License:&lt;/strong&gt; AGPL-3.0&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Try It
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;GitHub:&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://github.com/openinary/openinary" rel="noopener noreferrer"&gt;https://github.com/openinary/openinary&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Deploy guides:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://docs.openinary.dev/guides/coolify-deployment" rel="noopener noreferrer"&gt;Deploy on Coolify&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.openinary.dev/guides/dokploy-deployment" rel="noopener noreferrer"&gt;Deploy on Dokploy&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;




&lt;h2&gt;
  
  
  Looking For
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Early feedback, especially from &lt;strong&gt;Cloudinary users&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Ideas on what to build next&lt;/li&gt;
&lt;li&gt;Help spreading the word before the end of the year&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you’ve hit the wall with expensive image services, or wanted to self-host but couldn’t find a solid solution, I’d love to hear from you.&lt;/p&gt;




&lt;h2&gt;
  
  
  Questions?
&lt;/h2&gt;

&lt;p&gt;Drop them in the comments.&lt;br&gt;
Happy to discuss the &lt;strong&gt;architecture&lt;/strong&gt;, &lt;strong&gt;use cases&lt;/strong&gt;, or &lt;strong&gt;why I built this instead of using existing solutions&lt;/strong&gt;.&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>selfhosted</category>
      <category>devops</category>
      <category>docker</category>
    </item>
  </channel>
</rss>
