<?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: Dheeraj</title>
    <description>The latest articles on DEV Community by Dheeraj (@dheeraz).</description>
    <link>https://dev.to/dheeraz</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%2F3851777%2Fff605f48-5a92-4dc3-b05b-a3ae3d94ba4b.png</url>
      <title>DEV Community: Dheeraj</title>
      <link>https://dev.to/dheeraz</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/dheeraz"/>
    <language>en</language>
    <item>
      <title>Empty (Blank Board): A Minimal Canvas Where Everything Is a Plugin</title>
      <dc:creator>Dheeraj</dc:creator>
      <pubDate>Mon, 30 Mar 2026 14:33:40 +0000</pubDate>
      <link>https://dev.to/dheeraz/empty-blank-board-a-minimal-canvas-where-everything-is-a-plugin-5427</link>
      <guid>https://dev.to/dheeraz/empty-blank-board-a-minimal-canvas-where-everything-is-a-plugin-5427</guid>
      <description>&lt;p&gt;I built &lt;strong&gt;Empty&lt;/strong&gt; (also called Blank Board) a super-minimalist workspace where the entire app starts as a completely blank grid.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fw9md04bfpbks3njzxso8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fw9md04bfpbks3njzxso8.png" alt=" " width="800" height="380"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;No toolbars. No bloat. No forced features.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Every single thing you want on your board? It has to be added as a &lt;strong&gt;plugin&lt;/strong&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Why I Made It
&lt;/h3&gt;

&lt;p&gt;I wanted a clean canvas with a tiny ~100-line vanilla JS micro-kernel. Everything else including notes, timers, images, markdown, tools lives as optional plugins. Even the plugin manager itself is a plugin.&lt;/p&gt;

&lt;h3&gt;
  
  
  How Plugins Work
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Plugins are simple standalone &lt;strong&gt;ES modules&lt;/strong&gt; (just one &lt;code&gt;.js&lt;/code&gt; file)&lt;/li&gt;
&lt;li&gt;No frameworks, no build step, no dependencies&lt;/li&gt;
&lt;li&gt;Only need a &lt;code&gt;meta&lt;/code&gt; object and a &lt;code&gt;setup&lt;/code&gt; function&lt;/li&gt;
&lt;li&gt;Uses dynamic &lt;code&gt;import()&lt;/code&gt;, an event bus, and hooks for communication&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Super Easy to Contribute
&lt;/h3&gt;

&lt;p&gt;Want to add your own plugin? It's ridiculously simple:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Fork the community registry → &lt;a href="https://github.com/dheeraz101/Empty_Plugins" rel="noopener noreferrer"&gt;Empty_Plugins&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Add &lt;strong&gt;one line&lt;/strong&gt; to &lt;code&gt;plugins.json&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Open a Pull Request&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Your plugin instantly becomes available to everyone using the app.&lt;/p&gt;

&lt;p&gt;Current examples: &lt;strong&gt;Hello Box&lt;/strong&gt; and &lt;strong&gt;Sticky Notes&lt;/strong&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Try It Now
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Live App: &lt;a href="https://emptyweb.netlify.app/" rel="noopener noreferrer"&gt;https://emptyweb.netlify.app/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Plugin Registry: &lt;a href="https://github.com/dheeraz101/Empty_Plugins" rel="noopener noreferrer"&gt;https://github.com/dheeraz101/Empty_Plugins&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Developer Docs (Quick Start): &lt;a href="https://empty-ad9a3406.mintlify.app/introduction" rel="noopener noreferrer"&gt;https://empty-ad9a3406.mintlify.app/introduction&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  What Should Exist?
&lt;/h3&gt;

&lt;p&gt;I'm looking for the first wave of community plugins.&lt;/p&gt;

&lt;p&gt;Ideas welcome:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Todo / Task list&lt;/li&gt;
&lt;li&gt;Pomodoro timer&lt;/li&gt;
&lt;li&gt;Image drop &amp;amp; gallery&lt;/li&gt;
&lt;li&gt;Markdown canvas&lt;/li&gt;
&lt;li&gt;Drawing tool&lt;/li&gt;
&lt;li&gt;Calendar&lt;/li&gt;
&lt;li&gt;Or something completely wild&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you enjoy minimalist tools, creative coding, or open-source plugin systems, I'd love for you to try Empty and share your thoughts.&lt;/p&gt;

&lt;p&gt;What plugin would &lt;em&gt;you&lt;/em&gt; build first? Drop your ideas in the comments 👇&lt;/p&gt;

&lt;p&gt;Let’s fill this blank board together! 🚀&lt;/p&gt;

&lt;h1&gt;
  
  
  javascript #opensource #plugins
&lt;/h1&gt;

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