<?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: EffessDev</title>
    <description>The latest articles on DEV Community by EffessDev (@effessdev).</description>
    <link>https://dev.to/effessdev</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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3932962%2Ff8063266-7ea2-44d6-8ff0-7fbce9748ba7.png</url>
      <title>DEV Community: EffessDev</title>
      <link>https://dev.to/effessdev</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/effessdev"/>
    <language>en</language>
    <item>
      <title>I Built an AI Memory App That Lets You See, Edit, and Control Everything It Remembers</title>
      <dc:creator>EffessDev</dc:creator>
      <pubDate>Fri, 21 Aug 2026 16:02:42 +0000</pubDate>
      <link>https://dev.to/effessdev/i-built-an-ai-memory-app-that-lets-you-see-edit-and-control-everything-it-remembers-404d</link>
      <guid>https://dev.to/effessdev/i-built-an-ai-memory-app-that-lets-you-see-edit-and-control-everything-it-remembers-404d</guid>
      <description>&lt;p&gt;Ever forgotten when you took your last tetanus vaccine? Or what your blood test results were from two years ago? I ran into this problem myself and realized that the default memory systems in AI chatbots like ChatGPT and Gemini weren't solving it the way I needed.&lt;/p&gt;

&lt;p&gt;So I built &lt;a href="https://mmorganized.vercel.app" rel="noopener noreferrer"&gt;MmOrganized&lt;/a&gt; - an AI-powered memory app that gives you full visibility and control over what the AI remembers about you.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Problem with Default AI Memory
&lt;/h2&gt;

&lt;p&gt;ChatGPT and Gemini both have memory features now, which is great in theory. But they share a fundamental flaw: you cannot see what they remember. You cannot edit mistakes. You cannot delete incorrect information. You are essentially trusting a black box to store your personal data accurately.&lt;/p&gt;

&lt;p&gt;For something as critical as health information, this was a dealbreaker for me. I needed to know exactly what was being stored and have the ability to fix it if something was wrong.&lt;/p&gt;

&lt;h2&gt;
  
  
  How MmOrganized Works
&lt;/h2&gt;

&lt;p&gt;The app uses a familiar chat interface. You sign up with your Google or GitHub account, and you are ready to go. The concept is simple:&lt;/p&gt;

&lt;p&gt;You type anything you want the AI to remember. For example, you can say "I took a tetanus vaccine today" or "My blood pressure was 120/80 yesterday". The AI processes your input and saves it to your personal memory store.&lt;/p&gt;

&lt;p&gt;When you need to retrieve that information later, you switch to Recall mode with a single tap and ask naturally: "When did I last get a tetanus shot?" The AI searches your memory and gives you an immediate answer. You can even continue the conversation with follow-up questions.&lt;/p&gt;

&lt;h2&gt;
  
  
  Full Control Over Your Memories
&lt;/h2&gt;

&lt;p&gt;This is where MmOrganized differs from other AI memory solutions. You can:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;View everything&lt;/strong&gt; - Every single memory the AI has saved about you is displayed exactly when it gets inserted, along with a handy delete button. Nothing passes in without you knowing.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Manual control&lt;/strong&gt; - You can add, edit, and reorder memories completely manually if you want. Your data is in your hands.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Search your entire memory&lt;/strong&gt; - Need to find something specific? Just search your entire memory store instantly.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Delete your data&lt;/strong&gt; - Permanently delete your entire account and data whenever you want.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Full Data Portability with Text Files
&lt;/h2&gt;

&lt;p&gt;One of the most important features is the import and export functionality. You can download your entire memory as a simple text file. This is not some proprietary format that locks you in. It is plain text that you can open in Notepad, edit with any text editor, or even copy and paste into another chatbot.&lt;/p&gt;

&lt;p&gt;You can then upload it back to MmOrganized with options to either replace your existing memory or append the new content. This gives you complete ownership of your data. You are never locked into the platform.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Technology Behind It
&lt;/h2&gt;

&lt;p&gt;It's a full-stack Next.js app, using Shadcn UI, Drizzle ORM, Motion, Better Auth, Pusher, etc. I have also built a few custom components and animations to give some character to the site.&lt;/p&gt;

&lt;h2&gt;
  
  
  Notifications
&lt;/h2&gt;

&lt;p&gt;I also gave the AI the ability to send you notifications. Not particularly useful, but cool. But notifications in general have other critical purposes.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why I Built This
&lt;/h2&gt;

&lt;p&gt;The inspiration came from a personal frustration. I had to know when my mom took her last tetanus shot, and I could not remember the date.&lt;/p&gt;

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

&lt;p&gt;This is still an MVP, and I want to add many new features. But surprisingly, I find myself relying on this app more than I expected. Having a searchable, editable memory store for personal health information has been genuinely useful in my daily life.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Comes Next
&lt;/h2&gt;

&lt;p&gt;I am thinking about adding new features, but I don't have that many ideas.  I really want your feedback. What would make this more useful for you? What features are currently missing here? Please try it out and let me know what you think below. Your honest feedback will help shape where this goes next.&lt;/p&gt;

&lt;p&gt;Try it here: &lt;a href="https://mmorganized.vercel.app" rel="noopener noreferrer"&gt;https://mmorganized.vercel.app&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>showdev</category>
      <category>productivity</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Change touchpad scroll speed in Ubuntu (no terminal, easiest &amp; fastest method)</title>
      <dc:creator>EffessDev</dc:creator>
      <pubDate>Sat, 08 Aug 2026 12:33:12 +0000</pubDate>
      <link>https://dev.to/effessdev/change-touchpad-scroll-speed-in-ubuntu-no-terminal-easiest-fastest-method-5aj5</link>
      <guid>https://dev.to/effessdev/change-touchpad-scroll-speed-in-ubuntu-no-terminal-easiest-fastest-method-5aj5</guid>
      <description>&lt;p&gt;Here is how you can reduce the two-finger touchpad scroll speed in Ubuntu without using the terminal.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 1: Install Wayland Scroll Factor
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Go to the official release page: &lt;a href="https://github.com/daniel-g-carrasco/wayland-scroll-factor/releases/tag/v1.0.0" rel="noopener noreferrer"&gt;https://github.com/daniel-g-carrasco/wayland-scroll-factor/releases/tag/v1.0.0&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Scroll down to the "Assets" section and click &lt;code&gt;wayland-scroll-factor_1.0.0-1_amd64.deb&lt;/code&gt; to download it.&lt;/li&gt;
&lt;li&gt;Double-click the downloaded file. A new "App Center" window will open.&lt;/li&gt;
&lt;li&gt;Click "Install" to install the app.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Step 2: Launch the app
&lt;/h2&gt;

&lt;p&gt;Open the Wayland Scroll Factor app:&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fim4bh2m5xubp3t5bh13o.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fim4bh2m5xubp3t5bh13o.png" alt="Opening Wayland Scroll Factor" width="800" height="511"&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F6dhapx6xgrb435ixm08p.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F6dhapx6xgrb435ixm08p.png" alt="Wayland Scroll Factor Window" width="799" height="510"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 3: Adjust
&lt;/h2&gt;

&lt;p&gt;Adjust the speed using the sliders.&lt;/p&gt;

&lt;h2&gt;
  
  
  Installing in other operating systems
&lt;/h2&gt;

&lt;p&gt;Visit &lt;a href="https://github.com/daniel-g-carrasco/wayland-scroll-factor" rel="noopener noreferrer"&gt;https://github.com/daniel-g-carrasco/wayland-scroll-factor&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>linux</category>
      <category>ubuntu</category>
      <category>tooling</category>
      <category>opensource</category>
    </item>
    <item>
      <title>I made an app to let your chatbot see your codebase</title>
      <dc:creator>EffessDev</dc:creator>
      <pubDate>Thu, 16 Jul 2026 16:10:23 +0000</pubDate>
      <link>https://dev.to/effessdev/i-made-an-app-to-let-your-chatbot-see-your-codebase-4ngn</link>
      <guid>https://dev.to/effessdev/i-made-an-app-to-let-your-chatbot-see-your-codebase-4ngn</guid>
      <description>&lt;p&gt;A coding agent that can read and edit files in your repository directly is out of reach for me. Since regular chatbots generally have generous free tiers, that is what I use regularly for coding.&lt;/p&gt;

&lt;p&gt;Sometimes I want to give the chatbot some context about my existing code. What I generally do is copy and paste the relevant files, put them in code blocks, and type in the paths to those files.&lt;/p&gt;

&lt;p&gt;However, giving the chatbot an idea of how the overall project is structured (files and folders) is crucial for optimal outputs. Doing this manually is really hard.&lt;/p&gt;

&lt;p&gt;What I used to do was run the &lt;code&gt;tree&lt;/code&gt; command and copy its output. But this includes files that are not included in version control (such as &lt;code&gt;node_modules&lt;/code&gt;), which can get high in number and clutter the output. I found out that I can use the &lt;code&gt;--gitignore&lt;/code&gt; flag to only include tracked files, but the overall workflow was still slow.&lt;/p&gt;

&lt;p&gt;I found some good options online (such as &lt;a href="https://repomix.com/" rel="noopener noreferrer"&gt;RepoMix&lt;/a&gt;), but they seemed to be much more complex than what I needed or optimized for slightly different things.&lt;/p&gt;

&lt;p&gt;So, with the help of AI, I quickly created a Python app optimized for my specific workflow, and named it &lt;a href="https://github.com/effessdev/reptclip" rel="noopener noreferrer"&gt;ReptClip&lt;/a&gt;. Here is how it works.&lt;/p&gt;

&lt;h2&gt;
  
  
  App overview
&lt;/h2&gt;

&lt;p&gt;The &lt;a href="https://github.com/effessdev/reptclip#install" rel="noopener noreferrer"&gt;installation&lt;/a&gt; is super simple. You can run the command &lt;code&gt;pip install reptclip&lt;/code&gt; (or &lt;code&gt;pipx&lt;/code&gt; in Ubuntu) to install and use the app.&lt;/p&gt;

&lt;p&gt;When you run the app from your terminal, relevant parts of your codebase, such as the project structure and the files you specify, are &lt;strong&gt;copied straight to your clipboard&lt;/strong&gt;! No output files, no manual copying. You can paste it into the chat box and start typing your prompt right away.&lt;/p&gt;

&lt;p&gt;For example, an output might look like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;&lt;span class="gh"&gt;# Project structure&lt;/span&gt;

&lt;span class="p"&gt;```&lt;/span&gt;&lt;span class="nl"&gt;
&lt;/span&gt;AGENTS.md
README.md
docs/README.md
src/main.py
src/functions.py
&lt;span class="p"&gt;```&lt;/span&gt;

&lt;span class="gh"&gt;# AGENTS.md&lt;/span&gt;

&lt;span class="p"&gt;```&lt;/span&gt;&lt;span class="nl"&gt;
&lt;/span&gt;Contents of AGENTS.md
&lt;span class="p"&gt;```&lt;/span&gt;

&lt;span class="gh"&gt;# src/main.py&lt;/span&gt;

&lt;span class="p"&gt;```&lt;/span&gt;&lt;span class="nl"&gt;
&lt;/span&gt;Contents of main.py
&lt;span class="p"&gt;```&lt;/span&gt;

&lt;span class="gh"&gt;# Prompt&lt;/span&gt;

&amp;lt;- cursor will be here,
   you can quickly start typing your prompt
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;As you can see, it only uses a few tokens too!&lt;/p&gt;

&lt;h2&gt;
  
  
  Features
&lt;/h2&gt;

&lt;p&gt;You can use the &lt;code&gt;-i&lt;/code&gt; or &lt;code&gt;--include&lt;/code&gt; and &lt;code&gt;-e&lt;/code&gt; or &lt;code&gt;--exclude&lt;/code&gt; flags to specify which files to include. Glob patterns (&lt;code&gt;**&lt;/code&gt; and &lt;code&gt;*&lt;/code&gt;) as well as relative paths are supported. Simply running the command without any arguments (&lt;code&gt;reptclip&lt;/code&gt; or &lt;code&gt;rrcc&lt;/code&gt;) will only copy the project structure. Even that only saves a ton of time for a lot of people. Click &lt;a href="https://github.com/effessdev/reptclip#basic-usage" rel="noopener noreferrer"&gt;here&lt;/a&gt; for basic usage instructions.&lt;/p&gt;

&lt;p&gt;I also added an alias &lt;code&gt;rrcc&lt;/code&gt; so that you can launch the app either using the full name &lt;code&gt;reptclip&lt;/code&gt; or the quicker &lt;code&gt;rrcc&lt;/code&gt; command from the terminal. &lt;code&gt;rrcc&lt;/code&gt; can be typed using only your left hand.&lt;/p&gt;

&lt;p&gt;Moreover, you can create a &lt;code&gt;reptclip-config.toml&lt;/code&gt; file (use the &lt;code&gt;config&lt;/code&gt; command to create a default one) in the root of your repository for default include and exclude patterns for a specific project. The config file also supports presets, which you can define in the config file and select one or more of them using &lt;code&gt;-p&lt;/code&gt; or &lt;code&gt;--preset&lt;/code&gt; flag (see &lt;a href="https://github.com/effessdev/reptclip#advanced-usage" rel="noopener noreferrer"&gt;Advanced Usage&lt;/a&gt; for more details). The content of files over 1MB and binary files is not pasted, and a placeholder mentioning the reason is included instead. Binary files are identified using their extensions as well as their content.&lt;/p&gt;

&lt;h2&gt;
  
  
  Thanks
&lt;/h2&gt;

&lt;p&gt;Thank you for reading till the end. If you found this app useful, please consider starring the &lt;a href="https://github.com/effessdev/reptclip" rel="noopener noreferrer"&gt;repo&lt;/a&gt; and liking this post. If you have any suggestions, please let me know by writing a comment. Pull requests are also welcome if you are interested!&lt;/p&gt;

&lt;p&gt;If you think I am overstating a simple project, I wouldn't blame you. I am just an 18-year-old kid (about to start college), anyway 🙄&lt;/p&gt;

&lt;p&gt;Thanks for your support!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/effessdev/reptclip" rel="noopener noreferrer"&gt;View the project on GitHub&lt;/a&gt;&lt;br&gt;
&lt;a href="https://github.com/effessdev" rel="noopener noreferrer"&gt;Follow me on GitHub&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>llm</category>
      <category>productivity</category>
      <category>showdev</category>
    </item>
  </channel>
</rss>
