<?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: bloodSUCKER</title>
    <description>The latest articles on DEV Community by bloodSUCKER (@iambloodsucker).</description>
    <link>https://dev.to/iambloodsucker</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%2F3956096%2Fc9a21832-6b44-4d59-886b-eba115b16cb1.jpeg</url>
      <title>DEV Community: bloodSUCKER</title>
      <link>https://dev.to/iambloodsucker</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/iambloodsucker"/>
    <language>en</language>
    <item>
      <title>I Built a Local Password Manager in Java — No Cloud, No Accounts, Just One Master Password</title>
      <dc:creator>bloodSUCKER</dc:creator>
      <pubDate>Fri, 19 Jun 2026 08:56:43 +0000</pubDate>
      <link>https://dev.to/iambloodsucker/i-built-a-local-password-manager-in-java-no-cloud-no-accounts-just-one-master-password-2oeh</link>
      <guid>https://dev.to/iambloodsucker/i-built-a-local-password-manager-in-java-no-cloud-no-accounts-just-one-master-password-2oeh</guid>
      <description>&lt;h1&gt;
  
  
  I Built a Local Password Manager in Java — No Cloud, No Accounts, Just One Master Password
&lt;/h1&gt;

&lt;p&gt;Most password managers today want your data in the cloud. Sync, subscriptions, accounts, trust in someone else's servers.&lt;/p&gt;

&lt;p&gt;I wanted the opposite: a small desktop app that keeps everything on my machine, encrypts secrets properly, and stays out of the way.&lt;/p&gt;

&lt;p&gt;That's how &lt;strong&gt;SafeBox&lt;/strong&gt; started.&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%2Fp8o4uls2s6wpjhbayomm.gif" 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%2Fp8o4uls2s6wpjhbayomm.gif" alt=" " width="756" height="480"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;SafeBox&lt;/strong&gt; is a minimalist password manager for Windows:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;one master password for the whole vault&lt;/li&gt;
&lt;li&gt;local storage only (&lt;code&gt;~/.safebox/&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;no servers, no cloud sync, no telemetry&lt;/li&gt;
&lt;li&gt;light and dark theme&lt;/li&gt;
&lt;li&gt;English and Russian UI&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It's not trying to replace enterprise password platforms. It's for people who want a simple, offline vault on their own PC.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Download (Windows):&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
&lt;a href="https://github.com/IAMBloodSUCKER/SafeBox/releases/download/v1.0.2/SafeBox-1.0.2.exe" rel="noopener noreferrer"&gt;https://github.com/IAMBloodSUCKER/SafeBox/releases/download/v1.0.2/SafeBox-1.0.2.exe&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Source code:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
&lt;a href="https://github.com/IAMBloodSUCKER/SafeBox" rel="noopener noreferrer"&gt;https://github.com/IAMBloodSUCKER/SafeBox&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Why local-first?
&lt;/h2&gt;

&lt;p&gt;Cloud sync is convenient, but it also means:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;your encrypted vault still lives on someone else's infrastructure&lt;/li&gt;
&lt;li&gt;you depend on their uptime, pricing, and security practices&lt;/li&gt;
&lt;li&gt;the attack surface is bigger than "just my laptop"&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;SafeBox makes a different trade-off:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;pro:&lt;/strong&gt; full control, offline by default, no account required&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;con:&lt;/strong&gt; no automatic sync between devices — you handle backups yourself&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For many personal use cases, that's a fair deal.&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;store logins, passwords, and notes&lt;/li&gt;
&lt;li&gt;search by site or username&lt;/li&gt;
&lt;li&gt;copy fields to clipboard (auto-cleared after 30 seconds)&lt;/li&gt;
&lt;li&gt;generate passwords with custom rules&lt;/li&gt;
&lt;li&gt;export / import encrypted &lt;code&gt;.safebox&lt;/code&gt; backups&lt;/li&gt;
&lt;li&gt;lock the vault after 5 minutes of inactivity&lt;/li&gt;
&lt;li&gt;change the master password (all entries are re-encrypted)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The UI is intentionally simple: table on top, details below, no clutter.&lt;/p&gt;

&lt;h2&gt;
  
  
  How security works (short version)
&lt;/h2&gt;

&lt;p&gt;SafeBox is local, but "local" doesn't mean "plain text".&lt;/p&gt;

&lt;h3&gt;
  
  
  Master password is never stored
&lt;/h3&gt;

&lt;p&gt;On disk you get:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;salt.bin&lt;/code&gt; — random salt for key derivation&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;safebox.db&lt;/code&gt; — SQLite database&lt;/li&gt;
&lt;li&gt;a &lt;strong&gt;verifier&lt;/strong&gt; (SHA-256 hash of the derived key), not the password itself&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Suggested tags: java, security, opensource, desktop, showdev&lt;/p&gt;

</description>
    </item>
    <item>
      <title>I got tired of bloated reminder apps, so I built one in Java</title>
      <dc:creator>bloodSUCKER</dc:creator>
      <pubDate>Thu, 28 May 2026 08:13:37 +0000</pubDate>
      <link>https://dev.to/iambloodsucker/i-got-tired-of-bloated-reminder-apps-so-i-built-one-in-java-4b3</link>
      <guid>https://dev.to/iambloodsucker/i-got-tired-of-bloated-reminder-apps-so-i-built-one-in-java-4b3</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%2Faiztneyq5gqlu6d591f5.gif" 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%2Faiztneyq5gqlu6d591f5.gif" alt=" " width="612" height="480"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I got tired of bloated reminder apps, so I built my own&lt;/p&gt;

&lt;p&gt;I only wanted this:&lt;/p&gt;

&lt;p&gt;“Remind me about X at time Y.”&lt;/p&gt;

&lt;p&gt;Not a full planning system. Not 20 screens. Not extra friction.&lt;/p&gt;

&lt;p&gt;So I built &lt;strong&gt;Reminot&lt;/strong&gt; — a minimal Windows reminder app that stays out of your way.&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;quick text + date/time reminders&lt;/li&gt;
&lt;li&gt;clean active reminders list&lt;/li&gt;
&lt;li&gt;tray/background mode&lt;/li&gt;
&lt;li&gt;Windows notifications&lt;/li&gt;
&lt;li&gt;local storage (no cloud dependency)&lt;/li&gt;
&lt;li&gt;single-instance behavior (no duplicate background processes)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Why this exists
&lt;/h2&gt;

&lt;p&gt;Most reminder apps feel over-engineered for tiny real-life tasks like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;“call back in 15 minutes”&lt;/li&gt;
&lt;li&gt;“turn off the kettle”&lt;/li&gt;
&lt;li&gt;“send that file at 18:30”&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I wanted reminders in seconds, not workflows.&lt;/p&gt;

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

&lt;p&gt;Java 17 + Swing + local persistence + &lt;code&gt;jpackage&lt;/code&gt; + GitHub Actions.&lt;/p&gt;

&lt;h2&gt;
  
  
  Try it
&lt;/h2&gt;

&lt;p&gt;Repo:&lt;br&gt;&lt;br&gt;
&lt;a href="https://github.com/IAMBloodSUCKER/Reminot" rel="noopener noreferrer"&gt;https://github.com/IAMBloodSUCKER/Reminot&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Latest release:&lt;br&gt;&lt;br&gt;
&lt;a href="https://github.com/IAMBloodSUCKER/Reminot/releases/latest" rel="noopener noreferrer"&gt;https://github.com/IAMBloodSUCKER/Reminot/releases/latest&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;If you test it, tell me one thing:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What would make this your default reminder app?&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>java</category>
      <category>productivity</category>
      <category>showdev</category>
      <category>sideprojects</category>
    </item>
  </channel>
</rss>
