<?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: Dawit Worku</title>
    <description>The latest articles on DEV Community by Dawit Worku (@dawaman43).</description>
    <link>https://dev.to/dawaman43</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%2F3578842%2F7dfdd021-6754-429e-93fb-c78629e2827d.jpeg</url>
      <title>DEV Community: Dawit Worku</title>
      <link>https://dev.to/dawaman43</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/dawaman43"/>
    <language>en</language>
    <item>
      <title>Building DownloadStuffs: A Modern UI for the Internet Archive</title>
      <dc:creator>Dawit Worku</dc:creator>
      <pubDate>Sun, 18 Jan 2026 23:16:57 +0000</pubDate>
      <link>https://dev.to/dawaman43/building-downloadstuffs-a-modern-ui-for-the-internet-archive-18j4</link>
      <guid>https://dev.to/dawaman43/building-downloadstuffs-a-modern-ui-for-the-internet-archive-18j4</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%2Fx15w9rt6pl7jn9ezvjgo.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%2Fx15w9rt6pl7jn9ezvjgo.png" alt=" " width="800" height="444"&gt;&lt;/a&gt;&lt;br&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%2F0b3e85f7h04wsp7cd3it.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%2F0b3e85f7h04wsp7cd3it.png" alt=" " width="800" height="433"&gt;&lt;/a&gt;&lt;br&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%2Fes887cyhd6kb1vkadoxv.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%2Fes887cyhd6kb1vkadoxv.png" alt=" " width="800" height="400"&gt;&lt;/a&gt;&lt;br&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%2Fr587z0smcvypma5xzb8d.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%2Fr587z0smcvypma5xzb8d.png" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Introduction
&lt;/h3&gt;

&lt;p&gt;The Internet Archive is one of the most valuable public libraries on the web — but using it efficiently can be surprisingly hard.&lt;/p&gt;

&lt;p&gt;Slow browsing, unclear “best” files, broken downloads, and poor UX for multi-file items (series, playlists) were common pain points for me. So I built &lt;strong&gt;DownloadStuffs&lt;/strong&gt;, a modern, open-source interface focused on speed, clarity, and reliable downloads.&lt;/p&gt;

&lt;p&gt;Live demo: &lt;a href="https://downloadstuffss.vercel.app/" rel="noopener noreferrer"&gt;https://downloadstuffss.vercel.app/&lt;/a&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  The Problem
&lt;/h3&gt;

&lt;p&gt;Archive.org exposes powerful APIs, but the default UI struggles with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Performance on large result sets&lt;/li&gt;
&lt;li&gt;Discovering the right file among many formats&lt;/li&gt;
&lt;li&gt;Previewing long-form or episodic content&lt;/li&gt;
&lt;li&gt;Downloading reliably in modern browsers (CORS, timeouts)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For developers and users, this friction adds up quickly.&lt;/p&gt;




&lt;h3&gt;
  
  
  The Solution: DownloadStuffs
&lt;/h3&gt;

&lt;p&gt;DownloadStuffs is designed around three principles:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Speed&lt;/strong&gt;&lt;br&gt;
Server-side pagination and optimized queries against the Advanced Search API.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Clarity&lt;/strong&gt;&lt;br&gt;
Opinionated defaults, clean detail pages, and a focused file browser.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Completion&lt;/strong&gt;&lt;br&gt;
A download proxy and on-the-fly ZIP generation for playlists and collections.&lt;/p&gt;




&lt;h3&gt;
  
  
  Key Features
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Fast search with media-type filters and sorting&lt;/li&gt;
&lt;li&gt;In-page video/audio previews&lt;/li&gt;
&lt;li&gt;Playlist queue with keyboard controls&lt;/li&gt;
&lt;li&gt;Reliable download proxy (no CORS issues)&lt;/li&gt;
&lt;li&gt;Batch ZIP downloads for multi-file items&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  Architecture Overview
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Search:&lt;/strong&gt; IA Advanced Search API&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Metadata:&lt;/strong&gt; IA Metadata API&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Streaming:&lt;/strong&gt; Direct IA download endpoints&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Backend:&lt;/strong&gt; Bun + TypeScript&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Frontend:&lt;/strong&gt; Vite + modern SPA routing&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Deployment:&lt;/strong&gt; Vercel&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  Technical Challenges
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Streaming ZIP generation&lt;/strong&gt;&lt;br&gt;
Creating large ZIP files without storing them on disk required streaming compression and careful memory management.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Proxying large files&lt;/strong&gt;&lt;br&gt;
Handling upstream timeouts and partial downloads was necessary to make downloads reliable in the browser.&lt;/p&gt;




&lt;h3&gt;
  
  
  What I Learned
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;UX matters even for “just a UI on an API”&lt;/li&gt;
&lt;li&gt;Performance is a feature&lt;/li&gt;
&lt;li&gt;Open data platforms benefit massively from better tooling&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  Open Source &amp;amp; Feedback
&lt;/h3&gt;

&lt;p&gt;DownloadStuffs is fully open source:&lt;/p&gt;

&lt;p&gt;Repo: &lt;a href="https://github.com/Dawaman43/downloadstuffs" rel="noopener noreferrer"&gt;https://github.com/Dawaman43/downloadstuffs&lt;/a&gt;&lt;br&gt;
App: &lt;a href="https://downloadstuffss.vercel.app/" rel="noopener noreferrer"&gt;https://downloadstuffss.vercel.app/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I’d love feedback, ideas, and contributions 🚀&lt;/p&gt;




</description>
      <category>opensource</category>
      <category>showdev</category>
      <category>ui</category>
      <category>webdev</category>
    </item>
    <item>
      <title>The Future of Memarya: Our Roadmap and How You Can Help Build It</title>
      <dc:creator>Dawit Worku</dc:creator>
      <pubDate>Thu, 23 Oct 2025 05:34:48 +0000</pubDate>
      <link>https://dev.to/dawaman43/the-future-of-memarya-our-roadmap-and-how-you-can-help-build-it-g28</link>
      <guid>https://dev.to/dawaman43/the-future-of-memarya-our-roadmap-and-how-you-can-help-build-it-g28</guid>
      <description>&lt;p&gt;Hello again, DEV community!&lt;/p&gt;

&lt;p&gt;The journey of building &lt;strong&gt;&lt;a href="https://github.com/Dawaman43/Memarya" rel="noopener noreferrer"&gt;Memarya&lt;/a&gt;&lt;/strong&gt; in public has been incredible so far, thanks to all the great feedback and support.&lt;/p&gt;

&lt;p&gt;Today, I want to look forward. A project is only as strong as its vision, and I want to share the roadmap for Memarya and officially invite you to help build it.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Vision: A Simple, Powerful, Open LMS
&lt;/h2&gt;

&lt;p&gt;The long-term goal for Memarya is to be a robust, open-source Learning Management System (LMS) that anyone can self-host. It should be simple enough for an individual educator but powerful enough for a small organization.&lt;/p&gt;

&lt;p&gt;To get there, I've created a public roadmap that breaks down the path to our Version 1.0.&lt;/p&gt;

&lt;h2&gt;
  
  
  The V1 Roadmap: What We're Building Next
&lt;/h2&gt;

&lt;p&gt;I've consolidated our initial goals into a central roadmap discussion on GitHub. This is where we're planning the core modules, including:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;The Course Creation Module:&lt;/strong&gt; For educators to build and structure their content.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;The Student Dashboard:&lt;/strong&gt; A central hub for students to track their progress.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;The Quiz &amp;amp; Assessment Engine:&lt;/strong&gt; To create interactive quizzes and assignments.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;All the details and technical discussions for these features are happening right now in our official roadmap issue.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;&lt;a href="https://github.com/Dawaman43/Memarya/issues/2" rel="noopener noreferrer"&gt;➡️ View the Official Roadmap on GitHub&lt;/a&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;h2&gt;
  
  
  Let's Build This Together
&lt;/h2&gt;

&lt;p&gt;This is your invitation to help shape the future of open e-learning. You don't need to be a senior developer to contribute. We need help with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;Backend Logic:&lt;/strong&gt; Designing schemas and writing API routes.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Frontend UI:&lt;/strong&gt; Building React components with shadcn/ui.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Ideas &amp;amp; Planning:&lt;/strong&gt; Simply joining the discussion in the GitHub roadmap issue is a huge contribution!&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you're interested, the best way to start is to &lt;strong&gt;head to the roadmap issue, read through the plan, and leave a comment with your thoughts or questions!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Let's build this together.&lt;/p&gt;

&lt;p&gt;⭐ &lt;strong&gt;&lt;a href="https://github.com/Dawaman43/Memarya" rel="noopener noreferrer"&gt;Star and Follow the Project on GitHub&lt;/a&gt;&lt;/strong&gt; ⭐&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>programming</category>
      <category>opensource</category>
      <category>productivity</category>
    </item>
    <item>
      <title>I'm Building Memarya: A Free, Open-Source E-Learning</title>
      <dc:creator>Dawit Worku</dc:creator>
      <pubDate>Wed, 22 Oct 2025 15:32:03 +0000</pubDate>
      <link>https://dev.to/dawaman43/im-building-memarya-a-free-open-source-e-learning-17i6</link>
      <guid>https://dev.to/dawaman43/im-building-memarya-a-free-open-source-e-learning-17i6</guid>
      <description>&lt;p&gt;Hi everyone!&lt;/p&gt;

&lt;p&gt;I'm excited to share a project that I'm deeply passionate about, and I'm hoping to build it in public with the help of this amazing community.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Mission: Free Education for All
&lt;/h2&gt;

&lt;p&gt;I believe that access to quality education should be a right, not a privilege. That's why I started building &lt;strong&gt;&lt;a href="https://github.com/Dawaman43/Memarya" rel="noopener noreferrer"&gt;Memarya&lt;/a&gt;&lt;/strong&gt;, a completely free and open-source e-learning platform designed for students, educators, and self-learners everywhere.&lt;/p&gt;

&lt;p&gt;The vision is to create a powerful, self-hostable platform that communities can use to build their own learning environments without being locked into expensive, proprietary software.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is Memarya?
&lt;/h2&gt;

&lt;p&gt;At its core, Memarya aims to be a full-featured Learning Management System (LMS). While it's still in the early stages, the roadmap includes features like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Course creation and management&lt;/li&gt;
&lt;li&gt;  Student enrollment and progress tracking&lt;/li&gt;
&lt;li&gt;  Interactive quizzes and assignments&lt;/li&gt;
&lt;li&gt;  Community forums and discussion boards&lt;/li&gt;
&lt;/ul&gt;

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

&lt;p&gt;I've chosen a modern, powerful, and developer-friendly stack to build Memarya on:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;&lt;a href="https://nextjs.org/" rel="noopener noreferrer"&gt;Next.js&lt;/a&gt;&lt;/strong&gt; - For a robust, server-rendered React frontend.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;&lt;a href="https://orm.drizzle.team/" rel="noopener noreferrer"&gt;Drizzle ORM&lt;/a&gt;&lt;/strong&gt; - A fantastic TypeScript ORM for type-safe database access.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;&lt;a href="https://authjs.dev/" rel="noopener noreferrer"&gt;Auth.js (NextAuth)&lt;/a&gt;&lt;/strong&gt; - For flexible and secure authentication.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;&lt;a href="https://ui.shadcn.com/" rel="noopener noreferrer"&gt;shadcn/ui&lt;/a&gt;&lt;/strong&gt; - To build a beautiful and accessible user interface efficiently.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I'm a huge fan of this stack, and I believe it provides the perfect foundation for a project like this.&lt;/p&gt;

&lt;h2&gt;
  
  
  This is Where You Come In!
&lt;/h2&gt;

&lt;p&gt;Open source is about collaboration. I can't build this alone, and that's why I'm reaching out to you. Whether you're a seasoned developer, a UI/UX designer, an educator with ideas, or just someone passionate about open education, you can help.&lt;/p&gt;

&lt;p&gt;Here’s how you can get involved:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; ⭐ &lt;strong&gt;&lt;a href="https://github.com/Dawaman43/Memarya" rel="noopener noreferrer"&gt;Star the Repository on GitHub&lt;/a&gt;&lt;/strong&gt;: This is the easiest way to show your support and help the project gain visibility.&lt;/li&gt;
&lt;li&gt; 🗣️ &lt;strong&gt;Give Feedback&lt;/strong&gt;: Check out the repository, look at the code, and share your thoughts. I've opened up the &lt;a href="https://github.com/Dawaman43/Memarya/issues" rel="noopener noreferrer"&gt;GitHub Issues&lt;/a&gt; for all feedback and ideas.&lt;/li&gt;
&lt;li&gt; 🧑‍💻 &lt;strong&gt;Contribute Code&lt;/strong&gt;: If you're a developer, feel free to pick up an issue, fix a bug, or suggest a new feature. We need help on both the frontend and backend.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;I'm excited to build a community around Memarya and work together to create something truly valuable.&lt;/p&gt;

&lt;p&gt;Thanks for reading, and I can't wait to hear what you think!&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>ai</category>
      <category>javascript</category>
      <category>productivity</category>
    </item>
  </channel>
</rss>
