<?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: Rubaiyat Siam</title>
    <description>The latest articles on DEV Community by Rubaiyat Siam (@shaongit).</description>
    <link>https://dev.to/shaongit</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%2F3114496%2F48a847c2-c664-4fec-86ca-75fe3f6cfee6.png</url>
      <title>DEV Community: Rubaiyat Siam</title>
      <link>https://dev.to/shaongit</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/shaongit"/>
    <language>en</language>
    <item>
      <title>I built a free alternative to CodeCrafters, because it's 2026 and I'm done paying to learn</title>
      <dc:creator>Rubaiyat Siam</dc:creator>
      <pubDate>Mon, 01 Jun 2026 23:17:03 +0000</pubDate>
      <link>https://dev.to/shaongit/i-built-a-free-alternative-to-codecrafters-because-its-2026-and-im-done-paying-to-learn-5dn2</link>
      <guid>https://dev.to/shaongit/i-built-a-free-alternative-to-codecrafters-because-its-2026-and-im-done-paying-to-learn-5dn2</guid>
      <description>&lt;p&gt;I'll be upfront: I love the CodeCrafters idea. Building real systems from scratch instead of grinding another tutorial is genuinely how a lot of this stuff finally clicks. But every time I went to commit, the price stopped me cold. And somewhere around the tenth time I closed that pricing page, I had the obvious thought: it's 2026, why am I being asked to pay this much just to learn by building?&lt;/p&gt;

&lt;p&gt;So I built the thing I wanted instead. It's called &lt;a href="https://shipthatcode.com" rel="noopener noreferrer"&gt;Ship That Code&lt;/a&gt;, it's run under my company Echoed Labs, and the whole pitch is simple: the build-your-own-X approach, free.&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%2Fll8mekol2q2ieklggjlg.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%2Fll8mekol2q2ieklggjlg.png" alt=" " width="800" height="730"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;Every lesson runs on the same loop: &lt;strong&gt;choose → write → run&lt;/strong&gt;. You get a real problem, you write real code, it executes against real tests right there in the browser. No multiple choice, no copy-pasting from a sidebar. There's AI feedback as you go so you're not stuck staring at a red test with no idea why.&lt;/p&gt;

&lt;h2&gt;
  
  
  What a lesson actually looks like
&lt;/h2&gt;

&lt;p&gt;Rather than describe it, let me walk you through the very first lesson of the Build Redis course: implementing &lt;code&gt;PING&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Redis speaks a protocol called RESP, where every response starts with a type prefix and ends in &lt;code&gt;\r\n&lt;/code&gt;. The lesson gives you just enough to act on:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;PING&lt;/code&gt; should reply with the simple string &lt;code&gt;+PONG\r\n&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;PING hello&lt;/code&gt; should echo the message back as a bulk string, which encodes the length first: &lt;code&gt;$5\r\nhello\r\n&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You're handed a starter file with the plumbing already done (reading stdin, parsing quoted arguments) and one function to fill in:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;handle_command&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;args&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="sh"&gt;"""&lt;/span&gt;&lt;span class="s"&gt;Process a Redis command and return the RESP response.&lt;/span&gt;&lt;span class="sh"&gt;"""&lt;/span&gt;
    &lt;span class="n"&gt;cmd&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;args&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="nf"&gt;upper&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;cmd&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;PING&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="c1"&gt;# TODO: Return +PONG\r\n for no args
&lt;/span&gt;        &lt;span class="c1"&gt;# TODO: Return bulk string for PING &amp;lt;message&amp;gt;
&lt;/span&gt;        &lt;span class="k"&gt;pass&lt;/span&gt;

    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;-ERR unknown command&lt;/span&gt;&lt;span class="se"&gt;\r\n&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That's the &lt;em&gt;choose&lt;/em&gt; and &lt;em&gt;write&lt;/em&gt; part. Here's the answer you'd write to make the tests pass:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;handle_command&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;args&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="sh"&gt;"""&lt;/span&gt;&lt;span class="s"&gt;Process a Redis command and return the RESP response.&lt;/span&gt;&lt;span class="sh"&gt;"""&lt;/span&gt;
    &lt;span class="n"&gt;cmd&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;args&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="nf"&gt;upper&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;cmd&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;PING&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="nf"&gt;len&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;args&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
            &lt;span class="c1"&gt;# PING with no message -&amp;gt; simple string PONG
&lt;/span&gt;            &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;+PONG&lt;/span&gt;&lt;span class="se"&gt;\r\n&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
        &lt;span class="c1"&gt;# PING &amp;lt;message&amp;gt; -&amp;gt; echo it back as a bulk string
&lt;/span&gt;        &lt;span class="n"&gt;message&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;args&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;$&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nf"&gt;len&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;message&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="se"&gt;\r\n&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;message&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="se"&gt;\r\n&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;

    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;-ERR unknown command&lt;/span&gt;&lt;span class="se"&gt;\r\n&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Hit run, the tests fire against your actual program over stdin, and you watch &lt;code&gt;PING&lt;/code&gt; and &lt;code&gt;PING hello&lt;/code&gt; go green. Small win, but you just implemented a real Redis command from the protocol up, and every later lesson (SET, GET, expiry, replication) builds on exactly this loop.&lt;/p&gt;

&lt;h2&gt;
  
  
  What you can build
&lt;/h2&gt;

&lt;p&gt;There are 80+ build-from-scratch courses so far. A taste:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Redis, a database, Git&lt;/li&gt;
&lt;li&gt;A compiler (you build your own programming language)&lt;/li&gt;
&lt;li&gt;A container runtime, basically your own mini-Docker&lt;/li&gt;
&lt;li&gt;An OS kernel, a shell, a text editor&lt;/li&gt;
&lt;li&gt;A ray tracer, a 3D renderer, a game engine&lt;/li&gt;
&lt;li&gt;A neural network, BitTorrent, a blockchain, a Raft KV store&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;All across 9 languages, so you can build Redis in Go, then go again in Rust if you want the pain.&lt;/p&gt;

&lt;h2&gt;
  
  
  Not just one-off projects
&lt;/h2&gt;

&lt;p&gt;If you'd rather follow a track than poke around, there are two structured ways in:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Language tracks&lt;/strong&gt; — Fundamentals → Intermediate → Advanced for each language (37 of them right now).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Career paths&lt;/strong&gt; — courses chained into routes like Backend, Frontend, Full-Stack, and DevOps. The backend path runs around 80 hours, zero to job-ready.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Why free
&lt;/h2&gt;

&lt;p&gt;Because the thing that kept &lt;em&gt;me&lt;/em&gt; out was the cost, and I didn't want to rebuild the exact wall I was trying to knock down. Free forever, no credit card, your first lesson takes about two minutes. That's the whole promise.&lt;/p&gt;

&lt;h2&gt;
  
  
  I'd love your feedback
&lt;/h2&gt;

&lt;p&gt;It's early and I'm building in the open, so I genuinely want to hear what breaks, what's confusing, and which course you'd want next. If you've bounced off tutorials before, &lt;a href="https://shipthatcode.com" rel="noopener noreferrer"&gt;pick a system and start building&lt;/a&gt; — then tell me what you think in the comments.n&lt;/p&gt;

&lt;p&gt;Your Task&lt;br&gt;
Build a program that:&lt;/p&gt;

&lt;p&gt;Reads commands from stdin (one per line)&lt;br&gt;
Parses the command name and arguments&lt;br&gt;
For PING, writes the correct RESP response to stdout&lt;br&gt;
This is the foundation everything else builds on. Let's go!&lt;/p&gt;

</description>
      <category>learning</category>
      <category>programming</category>
      <category>showdev</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Echoed.GG discord alternative</title>
      <dc:creator>Rubaiyat Siam</dc:creator>
      <pubDate>Sat, 21 Mar 2026 22:12:38 +0000</pubDate>
      <link>https://dev.to/shaongit/echoedgg-discord-alternative-1eil</link>
      <guid>https://dev.to/shaongit/echoedgg-discord-alternative-1eil</guid>
      <description>&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%2Frc79gu1lyka86joteemg.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%2Frc79gu1lyka86joteemg.png" alt=" " width="637" height="1392"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Echoed.gg (previously zoriumapp) is a Discord alternative with Text &amp;amp; Voice chat Channels, Task Boards, Calendar events, Roles, AutoMod &amp;amp; Moderation, server Emojis, Bot API &amp;amp; OAuth2, Friends, DM, and much more. &lt;/p&gt;

&lt;p&gt;Lightweight written in tauri uses less than 100 mb of RAM.&lt;/p&gt;

&lt;p&gt;Url: &lt;a href="https://echoed.gg" rel="noopener noreferrer"&gt;https://echoed.gg&lt;/a&gt;&lt;/p&gt;

</description>
      <category>performance</category>
      <category>productivity</category>
      <category>showdev</category>
      <category>sideprojects</category>
    </item>
    <item>
      <title>Zorium - Full Fledge Discord Alternative</title>
      <dc:creator>Rubaiyat Siam</dc:creator>
      <pubDate>Fri, 06 Jun 2025 11:46:13 +0000</pubDate>
      <link>https://dev.to/shaongit/zorium-full-fledge-discord-alternative-3man</link>
      <guid>https://dev.to/shaongit/zorium-full-fledge-discord-alternative-3man</guid>
      <description>&lt;p&gt;Are you having trouble with discord's malpractices and intense system resources use or just worried about your privacy. Try Zorium, a new discord alternative that is fast, uses way less resources' (Built using tauri) and have friendly developers.&lt;br&gt;
We also have a new kind of server called academic server which is great for academic stuffs like courses, syllabus events, quizes etc. &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%2Fww9in3rll7g4wznjyb4u.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%2Fww9in3rll7g4wznjyb4u.png" alt="Image description" width="800" height="586"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Chat Channels:&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%2F7dxe5rj01s3zgtblhhhr.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%2F7dxe5rj01s3zgtblhhhr.png" alt="Image description" width="800" height="548"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Video Channels:&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%2F0wcmojcror0shfpq2ztv.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%2F0wcmojcror0shfpq2ztv.png" alt="Image description" width="800" height="406"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Calendar &amp;amp; Tasks:&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%2Fixjtvs8jz3s9ve9yn0ea.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%2Fixjtvs8jz3s9ve9yn0ea.png" alt="Image description" width="800" height="436"&gt;&lt;/a&gt;&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%2Fxz6mos74c35zzre05yqe.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%2Fxz6mos74c35zzre05yqe.png" alt="Image description" width="800" height="452"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Academic Features:&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%2Fi0r5m4f3boyer6tsq83p.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%2Fi0r5m4f3boyer6tsq83p.png" alt="Image description" width="800" height="408"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Try us at &lt;br&gt;
&lt;a href="https://zoriumapp.com/" rel="noopener noreferrer"&gt;ZoriumApp.com&lt;/a&gt;&lt;/p&gt;

</description>
      <category>discord</category>
      <category>webdev</category>
      <category>programming</category>
      <category>javascript</category>
    </item>
    <item>
      <title>Zorium - Full Fledge Discord Alternative</title>
      <dc:creator>Rubaiyat Siam</dc:creator>
      <pubDate>Thu, 05 Jun 2025 08:18:56 +0000</pubDate>
      <link>https://dev.to/shaongit/zorium-full-fledge-discord-alternative-3702</link>
      <guid>https://dev.to/shaongit/zorium-full-fledge-discord-alternative-3702</guid>
      <description>&lt;p&gt;Are you having trouble with discord's malpractices and intense system resources use or just worried about your privacy. Try Zorium, a new discord alternative that is fast, uses way less resources' (Built using tauri) and have friendly developers.&lt;br&gt;
We also have a new kind of server called academic server which is great for academic stuffs like courses, syllabus events, quizes etc. &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%2Fww9in3rll7g4wznjyb4u.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%2Fww9in3rll7g4wznjyb4u.png" alt="Image description" width="800" height="586"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Chat Channels:&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%2F7dxe5rj01s3zgtblhhhr.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%2F7dxe5rj01s3zgtblhhhr.png" alt="Image description" width="800" height="548"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Video Channels:&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%2F0wcmojcror0shfpq2ztv.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%2F0wcmojcror0shfpq2ztv.png" alt="Image description" width="800" height="406"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Calendar &amp;amp; Tasks:&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%2Fixjtvs8jz3s9ve9yn0ea.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%2Fixjtvs8jz3s9ve9yn0ea.png" alt="Image description" width="800" height="436"&gt;&lt;/a&gt;&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%2Fxz6mos74c35zzre05yqe.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%2Fxz6mos74c35zzre05yqe.png" alt="Image description" width="800" height="452"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Academic Features:&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%2Fi0r5m4f3boyer6tsq83p.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%2Fi0r5m4f3boyer6tsq83p.png" alt="Image description" width="800" height="408"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Try us at &lt;br&gt;
&lt;a href="https://zoriumapp.com/" rel="noopener noreferrer"&gt;ZoriumApp.com&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>onuze - Open source reddit alternative</title>
      <dc:creator>Rubaiyat Siam</dc:creator>
      <pubDate>Thu, 01 May 2025 21:06:19 +0000</pubDate>
      <link>https://dev.to/shaongit/onuze-open-source-reddit-alternative-4p25</link>
      <guid>https://dev.to/shaongit/onuze-open-source-reddit-alternative-4p25</guid>
      <description>&lt;p&gt;A Reddit-like community for those who live — and thrive — for freedom and resistance. You can share your thoughts whoever you are &amp;amp; whatever you want.&lt;/p&gt;

&lt;p&gt;Live on [&lt;a href="https://onuze.me/" rel="noopener noreferrer"&gt;https://onuze.me/&lt;/a&gt;]&lt;/p&gt;

&lt;p&gt;Github [(&lt;a href="https://github.com/shaongitbd/onuze)" rel="noopener noreferrer"&gt;https://github.com/shaongitbd/onuze)&lt;/a&gt;]&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>programming</category>
      <category>open</category>
      <category>opensource</category>
    </item>
  </channel>
</rss>
