<?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: livrasand</title>
    <description>The latest articles on DEV Community by livrasand (@livrasand).</description>
    <link>https://dev.to/livrasand</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%2F3368434%2F9f010822-8582-4e47-97c5-65d86d43a6cd.jpeg</url>
      <title>DEV Community: livrasand</title>
      <link>https://dev.to/livrasand</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/livrasand"/>
    <language>en</language>
    <item>
      <title>What GitHub Doesn't Tell You About Your Privacy 🔍</title>
      <dc:creator>livrasand</dc:creator>
      <pubDate>Wed, 21 Oct 2026 15:00:00 +0000</pubDate>
      <link>https://dev.to/livrasand/what-github-doesnt-tell-you-about-your-privacy-4p2j</link>
      <guid>https://dev.to/livrasand/what-github-doesnt-tell-you-about-your-privacy-4p2j</guid>
      <description>&lt;p&gt;GitHub is an incredible platform for building software, collaborating with developers, and contributing to open source.&lt;/p&gt;

&lt;p&gt;I use it every day. I maintain open-source projects, review code, manage releases, and collaborate with people around the world.&lt;/p&gt;

&lt;p&gt;But there's something worth remembering: &lt;strong&gt;publishing code is not the same as publishing only code.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Every repository, commit, issue, pull request, and contribution can reveal information about the people behind it. Some of that information is obvious. Other details are easy to overlook.&lt;/p&gt;

&lt;p&gt;In a previous article, I explored how your Git commit history can reveal more than you think. This time, I want to look at the bigger picture: the information developers expose when they work with GitHub, often without realizing it.&lt;/p&gt;

&lt;p&gt;This isn't about avoiding GitHub. It's about understanding what you're sharing.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Your commit history is a timeline of your activity
&lt;/h2&gt;

&lt;p&gt;A Git commit is more than a snapshot of your code.&lt;/p&gt;

&lt;p&gt;It can contain:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The author and committer names.&lt;/li&gt;
&lt;li&gt;Email addresses.&lt;/li&gt;
&lt;li&gt;Timestamps.&lt;/li&gt;
&lt;li&gt;Commit messages.&lt;/li&gt;
&lt;li&gt;References to previous commits.&lt;/li&gt;
&lt;li&gt;Changes to files and project structure.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Consider a commit created with the following command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git log &lt;span class="nt"&gt;--format&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;fuller &lt;span class="nt"&gt;-n&lt;/span&gt; 1
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Depending on the repository and commit, the output may include author and committer identities and timestamps.&lt;/p&gt;

&lt;p&gt;Your commit messages can also reveal more than intended.&lt;/p&gt;

&lt;p&gt;For example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Fix authentication for internal staging server
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Or:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Temporarily disable payment validation
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;These messages might expose internal architecture, development practices, or implementation details that weren't meant for a public audience.&lt;/p&gt;

&lt;p&gt;A commit message isn't automatically dangerous. Context matters. But once a repository is public, its history can become a permanent record of your development process.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Before making a repository public, review its history, not just its latest files.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Your email address might be public
&lt;/h2&gt;

&lt;p&gt;Git associates commits with author and committer identities. These identities commonly include an email address.&lt;/p&gt;

&lt;p&gt;If you use your personal email for commits, it may appear in publicly accessible commit metadata.&lt;/p&gt;

&lt;p&gt;GitHub provides a no-reply email address that you can use to help protect your personal email address when making commits.&lt;/p&gt;

&lt;p&gt;You can inspect your current Git configuration with:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git config &lt;span class="nt"&gt;--get&lt;/span&gt; user.name
git config &lt;span class="nt"&gt;--get&lt;/span&gt; user.email
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;To configure your identity for future commits:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git config &lt;span class="nt"&gt;--global&lt;/span&gt; user.name &lt;span class="s2"&gt;"Your Name"&lt;/span&gt;
git config &lt;span class="nt"&gt;--global&lt;/span&gt; user.email &lt;span class="s2"&gt;"YOUR_NOREPLY_EMAIL"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Replace the example values with your preferred identity and the no-reply address associated with your GitHub account.&lt;/p&gt;

&lt;p&gt;Keep in mind that changing your Git configuration affects future commits. It does not rewrite the identity recorded in existing commits.&lt;/p&gt;

&lt;p&gt;Also, a no-reply email protects only one part of your identity. Your public profile, commit history, usernames, and other activity can still help people connect contributions to you.&lt;/p&gt;

&lt;p&gt;Privacy isn't a single setting. It's a collection of decisions.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Deleted information isn't necessarily gone
&lt;/h2&gt;

&lt;p&gt;Imagine you accidentally commit a file containing an API key.&lt;/p&gt;

&lt;p&gt;You notice the mistake, delete the file, and push another commit.&lt;/p&gt;

&lt;p&gt;Problem solved?&lt;/p&gt;

&lt;p&gt;Not necessarily.&lt;/p&gt;

&lt;p&gt;Git stores project history. Removing a file from the latest version doesn't automatically remove it from earlier commits.&lt;/p&gt;

&lt;p&gt;Someone who can access the repository's history may still be able to retrieve the file and inspect its contents.&lt;/p&gt;

&lt;p&gt;The same principle applies to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Credentials accidentally committed to a repository.&lt;/li&gt;
&lt;li&gt;Internal configuration files.&lt;/li&gt;
&lt;li&gt;Personal information in test fixtures.&lt;/li&gt;
&lt;li&gt;Private URLs and infrastructure details.&lt;/li&gt;
&lt;li&gt;Files that were intended to remain local.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If a secret has been exposed, deleting it isn't enough. &lt;strong&gt;Revoke or rotate the credential first.&lt;/strong&gt; Then assess the exposure, remove the sensitive material from the relevant history where appropriate, and follow the hosting platform's guidance for sensitive data removal.&lt;/p&gt;

&lt;p&gt;Rewriting Git history can help remove exposed content, but it doesn't guarantee that every copy disappears. Forks, clones, cached content, and existing references may persist.&lt;/p&gt;

&lt;p&gt;The best solution is prevention.&lt;/p&gt;

&lt;p&gt;Use a &lt;code&gt;.gitignore&lt;/code&gt; file, keep secrets outside your repository, and consider secret-scanning tools before pushing changes.&lt;/p&gt;

&lt;p&gt;For example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;.env
.env.*
!.env.example
*.pem
*.key
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This is only a starting point. Review these patterns against your project requirements, and never assume &lt;code&gt;.gitignore&lt;/code&gt; protects a file that has already been tracked.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Your GitHub profile tells a story
&lt;/h2&gt;

&lt;p&gt;Your public profile can reveal information beyond the repositories you maintain.&lt;/p&gt;

&lt;p&gt;Depending on your settings and activity, visitors may discover:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Your public repositories and contribution history.&lt;/li&gt;
&lt;li&gt;Your username across other websites.&lt;/li&gt;
&lt;li&gt;Your professional interests and programming languages.&lt;/li&gt;
&lt;li&gt;Your social links and personal website.&lt;/li&gt;
&lt;li&gt;Your participation in issues, pull requests, and discussions.&lt;/li&gt;
&lt;li&gt;Your working habits through timestamps and activity patterns.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Individually, these details might seem harmless.&lt;/p&gt;

&lt;p&gt;Together, they can form a detailed picture of your professional life.&lt;/p&gt;

&lt;p&gt;For example, someone might connect your GitHub username to another account, find your personal website, identify your employer from a repository, and use public activity to infer when you tend to work.&lt;/p&gt;

&lt;p&gt;These connections aren't always accurate, and public information doesn't automatically create a security risk. However, the possibility is worth understanding.&lt;/p&gt;

&lt;p&gt;If you want to reduce unnecessary exposure, review your profile and ask yourself a simple question:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Does every detail on this page need to be public?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;You can share your work without sharing every aspect of your life.&lt;/p&gt;

&lt;h2&gt;
  
  
  5. Issues and pull requests can expose internal details
&lt;/h2&gt;

&lt;p&gt;Code isn't the only information worth reviewing.&lt;/p&gt;

&lt;p&gt;Issues, pull requests, discussions, and comments can contain details about your development environment and project infrastructure.&lt;/p&gt;

&lt;p&gt;Examples include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Screenshots containing usernames or local file paths.&lt;/li&gt;
&lt;li&gt;Logs containing access tokens or session identifiers.&lt;/li&gt;
&lt;li&gt;Stack traces that expose internal paths.&lt;/li&gt;
&lt;li&gt;Descriptions of private infrastructure.&lt;/li&gt;
&lt;li&gt;Links to internal dashboards or staging environments.&lt;/li&gt;
&lt;li&gt;Reproduction steps containing real user data.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A screenshot can reveal more than the application you're trying to demonstrate. A log can include credentials even when the surrounding code looks harmless.&lt;/p&gt;

&lt;p&gt;Before opening an issue or submitting a pull request, inspect the entire attachment, log, or code snippet.&lt;/p&gt;

&lt;p&gt;When reporting bugs, use sanitized examples and synthetic data whenever possible.&lt;/p&gt;

&lt;p&gt;And if you discover a security vulnerability, consider the project's private reporting mechanism rather than publishing exploit details immediately.&lt;/p&gt;

&lt;p&gt;Open source works best when transparency is combined with responsible disclosure.&lt;/p&gt;

&lt;h2&gt;
  
  
  6. Your local machine can leak information too
&lt;/h2&gt;

&lt;p&gt;Privacy problems don't always originate on GitHub.&lt;/p&gt;

&lt;p&gt;Your development environment can accidentally introduce sensitive information into public repositories.&lt;/p&gt;

&lt;p&gt;For example, a project might include:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;.DS_Store
.vscode/settings.json
.idea/
debug.log
.env
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Some of these files are harmless in many projects. Others may contain local paths, workspace preferences, environment-specific configuration, or credentials.&lt;/p&gt;

&lt;p&gt;The important thing isn't to blindly exclude every configuration file. Some editor settings are useful to share with collaborators.&lt;/p&gt;

&lt;p&gt;Instead, review what each file contains before committing it.&lt;/p&gt;

&lt;p&gt;You can inspect the files Git is tracking with:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git ls-files
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And inspect the changes you're about to commit with:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git diff &lt;span class="nt"&gt;--cached&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;These commands are simple, but they encourage a useful habit: inspect what you're actually publishing instead of assuming your repository contains only what you intended.&lt;/p&gt;

&lt;h3&gt;
  
  
  What about image metadata?
&lt;/h3&gt;

&lt;p&gt;Screenshots, photographs, and other media can contain metadata such as timestamps, device information, and sometimes location coordinates.&lt;/p&gt;

&lt;p&gt;Whether that information is present depends on the file format, device, application, and processing pipeline.&lt;/p&gt;

&lt;p&gt;If you're publishing images, inspect their metadata before uploading them.&lt;/p&gt;

&lt;p&gt;For JPEG files, you can use ExifTool:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;exiftool image.jpg
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;To remove metadata from a copy of an image:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;exiftool &lt;span class="nt"&gt;-all&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nt"&gt;-o&lt;/span&gt; cleaned.jpg image.jpg
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Always verify the resulting file. Metadata removal behavior depends on the file type, and some formats contain information that requires additional handling.&lt;/p&gt;

&lt;p&gt;I explored this topic in more detail in my article about wiping EXIF metadata before publishing open-source projects.&lt;/p&gt;

&lt;h2&gt;
  
  
  7. Public repositories can reveal your development infrastructure
&lt;/h2&gt;

&lt;p&gt;A repository may expose more than application code.&lt;/p&gt;

&lt;p&gt;Workflow files, build scripts, deployment configurations, and dependency manifests can reveal how a project is built and distributed.&lt;/p&gt;

&lt;p&gt;For example, GitHub Actions workflows may show:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Which external actions your project uses.&lt;/li&gt;
&lt;li&gt;How releases are built.&lt;/li&gt;
&lt;li&gt;Which platforms are targeted.&lt;/li&gt;
&lt;li&gt;Which deployment services are involved.&lt;/li&gt;
&lt;li&gt;How permissions and credentials are handled.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This information is often intentionally public and helps people understand and reproduce your build process.&lt;/p&gt;

&lt;p&gt;However, configuration mistakes can turn transparency into a security problem.&lt;/p&gt;

&lt;p&gt;Never hardcode credentials in workflow files. Use appropriately scoped secrets, restrict workflow permissions, and review third-party actions before trusting them.&lt;/p&gt;

&lt;p&gt;For sensitive workflows, pinning actions to full commit SHAs can reduce the risk of an upstream tag being moved to different code.&lt;/p&gt;

&lt;p&gt;The goal isn't to hide your build process. It's to make the process understandable without exposing credentials or granting unnecessary access.&lt;/p&gt;

&lt;h2&gt;
  
  
  8. Can you contribute anonymously on GitHub?
&lt;/h2&gt;

&lt;p&gt;This depends on what you mean by anonymous.&lt;/p&gt;

&lt;p&gt;GitHub offers privacy-related features, including no-reply commit email addresses and options that limit some public profile information. These can help reduce exposure.&lt;/p&gt;

&lt;p&gt;But using a different email address or hiding your email doesn't make your activity completely anonymous.&lt;/p&gt;

&lt;p&gt;Your GitHub account, usernames, public contributions, commit metadata, and interactions can still be linked together. Git hosting services also need to process technical information to operate their infrastructure.&lt;/p&gt;

&lt;p&gt;If you need stronger separation between your identity and your public contributions, think carefully about account identity, browser sessions, network exposure, commit metadata, and the information you publish.&lt;/p&gt;

&lt;p&gt;Remember that a network intermediary or privacy gateway can introduce its own trust assumptions. It may reduce direct connections between your device and a destination, but it can also become another party that processes your requests.&lt;/p&gt;

&lt;p&gt;No single tool can guarantee anonymity across every layer.&lt;/p&gt;

&lt;p&gt;The right approach depends on your threat model: who you're trying to protect your identity from, what information you need to conceal, and what risks you're willing to accept.&lt;/p&gt;

&lt;h2&gt;
  
  
  9. A practical privacy checklist for developers
&lt;/h2&gt;

&lt;p&gt;Before publishing a repository, creating an issue, or submitting a pull request, consider this checklist.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Review commit history before making an existing project public.&lt;/li&gt;
&lt;li&gt;Check author and committer email addresses.&lt;/li&gt;
&lt;li&gt;Search for credentials, tokens, private keys, and sensitive configuration.&lt;/li&gt;
&lt;li&gt;Review &lt;code&gt;.gitignore&lt;/code&gt; and ensure sensitive files aren't already tracked.&lt;/li&gt;
&lt;li&gt;Inspect staged changes before committing.&lt;/li&gt;
&lt;li&gt;Sanitize logs, screenshots, and bug reports.&lt;/li&gt;
&lt;li&gt;Inspect image metadata when publishing photographs or screenshots.&lt;/li&gt;
&lt;li&gt;Review workflow permissions and third-party GitHub Actions.&lt;/li&gt;
&lt;li&gt;Remove unnecessary personal information from public profiles.&lt;/li&gt;
&lt;li&gt;Use private vulnerability reporting when appropriate.&lt;/li&gt;
&lt;li&gt;Rotate any credentials that have been exposed.&lt;/li&gt;
&lt;li&gt;Remember that deleting a file doesn't erase every historical copy.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You don't need to become paranoid about every commit.&lt;/p&gt;

&lt;p&gt;You just need to develop the habit of checking what you're sharing.&lt;/p&gt;

&lt;h2&gt;
  
  
  Final thoughts
&lt;/h2&gt;

&lt;p&gt;GitHub is one of the most valuable tools in modern software development. Public repositories make collaboration possible, help developers learn from each other, and allow projects to grow beyond their original creators.&lt;/p&gt;

&lt;p&gt;I don't think the answer is to stop sharing code.&lt;/p&gt;

&lt;p&gt;I think the answer is to understand the boundaries between sharing your work and exposing information that doesn't need to be public.&lt;/p&gt;

&lt;p&gt;Privacy isn't about hiding everything. It's about making informed decisions about what you reveal, to whom, and under what circumstances.&lt;/p&gt;

&lt;p&gt;As developers, we spend a lot of time thinking about the security of the software we build. We should also spend some time thinking about the information our development workflows leave behind.&lt;/p&gt;

&lt;p&gt;Because sometimes, the most revealing part of a repository isn't the code itself.&lt;/p&gt;

&lt;p&gt;It's everything around it.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;What about you?&lt;/strong&gt; Have you ever discovered personal information, credentials, or unexpected metadata in a public repository? What steps do you take to protect your privacy when contributing to open source?&lt;/p&gt;

&lt;p&gt;I'd love to hear your experiences in the comments.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;I build open-source tools that explore privacy, user control, and more transparent software workflows. You can find my projects on &lt;a href="https://github.com/livrasand" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Photo by: &lt;a href="https://pixabay.com/photos/camera-spy-pigeon-surveillance-712122/" rel="noopener noreferrer"&gt;https://pixabay.com/photos/camera-spy-pigeon-surveillance-712122/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>privacy</category>
      <category>security</category>
      <category>github</category>
      <category>opensource</category>
    </item>
    <item>
      <title>I Built a Gateway to Browse Git Repositories Without an Account</title>
      <dc:creator>livrasand</dc:creator>
      <pubDate>Tue, 20 Oct 2026 15:00:00 +0000</pubDate>
      <link>https://dev.to/livrasand/i-built-a-gateway-to-browse-git-repositories-without-an-account-5hi5</link>
      <guid>https://dev.to/livrasand/i-built-a-gateway-to-browse-git-repositories-without-an-account-5hi5</guid>
      <description>&lt;p&gt;Most developers are used to a simple assumption: if you want to participate in open source, you need an account on a platform like GitHub.&lt;/p&gt;

&lt;p&gt;But what if you just want to explore a repository, read its code, report a bug, or submit a small fix without tying every action to your personal profile?&lt;/p&gt;

&lt;p&gt;That question is one of the reasons I built &lt;strong&gt;gitGost&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Try it:&lt;/strong&gt; &lt;a href="https://gitgost.livrasand.com/" rel="noopener noreferrer"&gt;https://gitgost.livrasand.com/&lt;/a&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Source code:&lt;/strong&gt; &lt;a href="https://github.com/livrasand/gitGost" rel="noopener noreferrer"&gt;https://github.com/livrasand/gitGost&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  The problem with identity by default
&lt;/h2&gt;

&lt;p&gt;Open source is built around public collaboration. That openness is valuable, but it can also create a permanent record of personal activity.&lt;/p&gt;

&lt;p&gt;A public contribution can expose more than the code itself. Depending on how you contribute, your profile, commit author information, email address, timestamps, and activity history may become searchable and connected to your identity.&lt;/p&gt;

&lt;p&gt;For many developers, this isn't a problem.&lt;/p&gt;

&lt;p&gt;For others, it can be an unnecessary risk.&lt;/p&gt;

&lt;p&gt;Maybe you want to fix a typo without adding another permanent entry to your contribution history. Maybe you want to participate in a controversial project without linking it to your professional profile. Or perhaps you simply prefer to share your work without sharing more personal information than necessary.&lt;/p&gt;

&lt;p&gt;I don't think contributing to open source should always require that trade-off.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Privacy shouldn't be a prerequisite you have to sacrifice to participate in open source.&lt;/strong&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  What is gitGost?
&lt;/h2&gt;

&lt;p&gt;gitGost is an open-source, privacy-focused gateway for browsing and contributing to Git repositories.&lt;/p&gt;

&lt;p&gt;It lets you explore repositories without creating an account on the platform you're browsing. It also provides a way to submit contributions without directly attaching your personal platform identity to them.&lt;/p&gt;

&lt;p&gt;The project currently supports GitHub, GitLab, and Codeberg, with additional Git platforms planned.&lt;/p&gt;

&lt;p&gt;You can browse repository files, branches, commits, releases, tags, issues, pull requests, wikis, and other project information through its web interface.&lt;/p&gt;

&lt;p&gt;No account is required just to explore.&lt;/p&gt;

&lt;p&gt;The goal isn't to replace GitHub or other Git platforms. It's to offer another way to access and participate in the open-source ecosystem.&lt;/p&gt;
&lt;h2&gt;
  
  
  Browsing without an account
&lt;/h2&gt;

&lt;p&gt;Sometimes you don't need a social profile, a contribution graph, or another account.&lt;/p&gt;

&lt;p&gt;You just need the code.&lt;/p&gt;

&lt;p&gt;With gitGost, you can explore repositories and discover projects without signing in. That makes it useful for reading source code, checking a project's activity, reviewing releases, and learning from other developers' work.&lt;/p&gt;

&lt;p&gt;It also reduces the need to expose your browsing activity to a platform through a personal account.&lt;/p&gt;

&lt;p&gt;This is a simple idea, but I think it's worth building tools around: &lt;strong&gt;accessing public code shouldn't always require establishing a personal identity first.&lt;/strong&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Contributing anonymously with Git
&lt;/h2&gt;

&lt;p&gt;I also wanted gitGost to work with the tools developers already use.&lt;/p&gt;

&lt;p&gt;You don't need a special Git client or a browser extension to submit a code contribution. You can use Git from your terminal and add gitGost as another remote.&lt;/p&gt;

&lt;p&gt;For example, suppose you want to contribute a documentation fix to a public repository.&lt;/p&gt;

&lt;p&gt;First, add the gitGost remote:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git remote add gost https://gitgost.livrasand.com/v1/gh/username/repo
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Create a branch and make your changes as usual:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git checkout &lt;span class="nt"&gt;-b&lt;/span&gt; fix-documentation
git commit &lt;span class="nt"&gt;-am&lt;/span&gt; &lt;span class="s2"&gt;"fix: correct a typo in the documentation"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then push your branch through gitGost:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git push gost fix-documentation:main
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The gateway processes the contribution and, for supported workflows, opens a pull request through its anonymous contribution identity.&lt;/p&gt;

&lt;p&gt;The exact behavior depends on the target platform and the configured workflow, but the idea is straightforward: you can use your existing Git workflow without directly linking the contribution to your personal platform account.&lt;/p&gt;

&lt;p&gt;No need to replace Git. No need to learn a new version control system.&lt;/p&gt;

&lt;p&gt;Just another remote.&lt;/p&gt;

&lt;h2&gt;
  
  
  What about commit metadata?
&lt;/h2&gt;

&lt;p&gt;Git commits can contain author names, email addresses, and timestamps. That information can remain in repository history long after the original contribution was made.&lt;/p&gt;

&lt;p&gt;gitGost is designed to minimize this exposure by stripping identifying authorship metadata from supported contribution workflows and using a neutral identity for pull requests.&lt;/p&gt;

&lt;p&gt;This helps reduce direct links between a contribution and a personal profile.&lt;/p&gt;

&lt;p&gt;However, metadata is only one part of the problem.&lt;/p&gt;

&lt;p&gt;Your code can reveal information through distinctive coding patterns. Commit messages may contain recognizable phrases. The timing of a contribution can be correlated with activity elsewhere. Files you upload may contain EXIF or other embedded metadata.&lt;/p&gt;

&lt;p&gt;An anonymous contribution is not automatically an unidentifiable contribution.&lt;/p&gt;

&lt;p&gt;That's why I prefer to describe gitGost as a privacy tool with explicit limitations, rather than promise perfect anonymity.&lt;/p&gt;

&lt;h2&gt;
  
  
  An important limitation: your IP address
&lt;/h2&gt;

&lt;p&gt;There is something users should understand before using gitGost.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The destination platform does not automatically see your original IP address, but the gitGost server can.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;When you connect directly to the public gitGost instance, the server receives your network connection. Routing a contribution through a gateway changes which IP address the destination platform sees; it does not, by itself, hide your IP from the gateway operator.&lt;/p&gt;

&lt;p&gt;If you need stronger network-level privacy, consider routing your connection through Tor or another trusted privacy network. That still doesn't eliminate every possible identification risk.&lt;/p&gt;

&lt;p&gt;You should also consider code style, timing correlation, commit content, and metadata embedded in files.&lt;/p&gt;

&lt;p&gt;For a detailed explanation of the project's assumptions and limitations, see the &lt;a href="https://github.com/livrasand/gitGost/blob/main/THREAT_MODEL.md" rel="noopener noreferrer"&gt;gitGost threat model&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I believe privacy tools should explain what they protect against, what they don't protect against, and which parties still need to be trusted.&lt;/p&gt;

&lt;p&gt;Anything less would be misleading.&lt;/p&gt;

&lt;h2&gt;
  
  
  Privacy and accountability can coexist
&lt;/h2&gt;

&lt;p&gt;Anonymous contributions can be abused. That's a real concern, and ignoring it would make the project less useful for everyone.&lt;/p&gt;

&lt;p&gt;gitGost is intended for legitimate, good-faith contributions, not harassment, spam, malicious code, or evading bans and moderation.&lt;/p&gt;

&lt;p&gt;The project includes rate limits, repository and commit size restrictions, validation, and other safeguards to reduce abuse. Contributions still go through the destination project's review process, and maintainers retain control over whether they accept changes.&lt;/p&gt;

&lt;p&gt;Repository maintainers can also opt out of anonymous contributions through a &lt;code&gt;.gitgost.yml&lt;/code&gt; configuration file:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;DENY_ALL&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Privacy doesn't mean that maintainers lose control of their projects.&lt;/p&gt;

&lt;p&gt;It means contributors can have another option when personal attribution isn't necessary.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why make it open source?
&lt;/h2&gt;

&lt;p&gt;A privacy tool asks users to trust the software handling their requests. That makes transparency especially important.&lt;/p&gt;

&lt;p&gt;gitGost is licensed under AGPL-3.0. You can inspect the implementation, report problems, contribute improvements, or run your own instance.&lt;/p&gt;

&lt;p&gt;Self-hosting gives you more control over the infrastructure you trust, although it also means you're responsible for operating and securing it.&lt;/p&gt;

&lt;p&gt;I don't want privacy to be a promise that users have to accept on faith. I'd rather make the implementation available for people to examine.&lt;/p&gt;

&lt;h2&gt;
  
  
  Who is gitGost for?
&lt;/h2&gt;

&lt;p&gt;I built gitGost for developers who want more control over how their public contributions are associated with their identities.&lt;/p&gt;

&lt;p&gt;That might mean someone who wants to avoid unnecessary email exposure, a developer who doesn't want every small fix attached to a professional profile, or someone contributing to a project where public attribution could create personal or professional complications.&lt;/p&gt;

&lt;p&gt;It can also be useful for people who simply want to browse public repositories without creating yet another account.&lt;/p&gt;

&lt;p&gt;You don't need a dramatic reason to care about privacy.&lt;/p&gt;

&lt;p&gt;Sometimes, not wanting to publish more personal information than necessary is reason enough.&lt;/p&gt;

&lt;h2&gt;
  
  
  Try it, inspect it, or contribute
&lt;/h2&gt;

&lt;p&gt;gitGost is an ongoing open-source project, and there is still plenty of work to do.&lt;/p&gt;

&lt;p&gt;If you're interested in privacy, Git infrastructure, or making open source more accessible, I'd appreciate your feedback and contributions.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Explore the web interface:&lt;/strong&gt; &lt;a href="https://gitgost.livrasand.com/" rel="noopener noreferrer"&gt;https://gitgost.livrasand.com/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Read the source code:&lt;/strong&gt; &lt;a href="https://github.com/livrasand/gitGost" rel="noopener noreferrer"&gt;https://github.com/livrasand/gitGost&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Review the threat model:&lt;/strong&gt; &lt;a href="https://github.com/livrasand/gitGost/blob/main/THREAT_MODEL.md" rel="noopener noreferrer"&gt;https://github.com/livrasand/gitGost/blob/main/THREAT_MODEL.md&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Read the license:&lt;/strong&gt; &lt;a href="https://github.com/livrasand/gitGost/blob/main/LICENSE" rel="noopener noreferrer"&gt;https://github.com/livrasand/gitGost/blob/main/LICENSE&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I'm not trying to remove identity from every part of software development. There are many situations where attribution is useful and deserved.&lt;/p&gt;

&lt;p&gt;I just believe developers should have a choice.&lt;/p&gt;

&lt;p&gt;Open source can be public without requiring every participant to expose their personal identity in the same way.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Browse freely. Contribute responsibly. Be a gost. 👻&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Cover photo by: unsplash.com · A person is coding on a laptop at night. photo – Free Image on Unsplash&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>privacy</category>
      <category>github</category>
      <category>security</category>
    </item>
    <item>
      <title>Your Desktop Apps Deserve Updates Straight from the Source</title>
      <dc:creator>livrasand</dc:creator>
      <pubDate>Sun, 18 Oct 2026 14:56:29 +0000</pubDate>
      <link>https://dev.to/livrasand/your-desktop-apps-deserve-updates-straight-from-the-source-1nob</link>
      <guid>https://dev.to/livrasand/your-desktop-apps-deserve-updates-straight-from-the-source-1nob</guid>
      <description>&lt;p&gt;When we install software on our computers, we rarely think about the journey a new version takes before reaching us.&lt;/p&gt;

&lt;p&gt;We download applications from websites, install package managers, add third-party repositories, or wait for someone else to package the latest release. These approaches can be convenient, but they also introduce another question:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why should updating an open-source application depend on someone other than its original developer?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;For desktop applications distributed through GitHub, GitLab, Gitea, Forgejo, and similar platforms, the release artifacts are often already available. Developers publish binaries, attach them to releases, and make them accessible to anyone.&lt;/p&gt;

&lt;p&gt;Yet discovering and downloading those files can still be a surprisingly manual process.&lt;/p&gt;

&lt;p&gt;That's the problem I'm exploring with &lt;strong&gt;Updainium&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Desktop Update Problem
&lt;/h2&gt;

&lt;p&gt;Consider a simple scenario.&lt;/p&gt;

&lt;p&gt;You use an open-source application that you downloaded six months ago. The developer has released three new versions since then, including security fixes and improvements.&lt;/p&gt;

&lt;p&gt;How do you find out?&lt;/p&gt;

&lt;p&gt;Perhaps you bookmarked the repository. Maybe you follow the developer on social media. Or perhaps you periodically open the application's website to check whether a new version is available.&lt;/p&gt;

&lt;p&gt;Now imagine doing this for ten, twenty, or fifty applications.&lt;/p&gt;

&lt;p&gt;The problem isn't that downloading software is difficult. It's that keeping track of independently maintained applications becomes tedious when every project has its own release page, naming conventions, and distribution methods.&lt;/p&gt;

&lt;p&gt;Package managers solve part of this problem, but they aren't always the ideal solution for every project.&lt;/p&gt;

&lt;p&gt;Some applications aren't available in your package manager. Others depend on community-maintained manifests or repositories. And sometimes, you simply want the binary published by the project's own maintainers.&lt;/p&gt;

&lt;h2&gt;
  
  
  Package Managers Aren't the Enemy
&lt;/h2&gt;

&lt;p&gt;Let's be clear: package managers are excellent tools.&lt;/p&gt;

&lt;p&gt;Homebrew, APT, winget, and other package management systems make software installation and maintenance much easier. They provide convenient workflows and, depending on the ecosystem, additional verification and dependency management.&lt;/p&gt;

&lt;p&gt;However, they introduce a distribution layer between the original project and the user.&lt;/p&gt;

&lt;p&gt;Depending on the package and ecosystem, that layer might involve a third-party maintainer, a separate release schedule, or a packaging process that doesn't perfectly match the upstream project's releases.&lt;/p&gt;

&lt;p&gt;That's not necessarily a bad thing. It's simply a different distribution model.&lt;/p&gt;

&lt;p&gt;But there is another option: let users discover and download release files directly from the source.&lt;/p&gt;

&lt;h2&gt;
  
  
  Meet Updainium
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://github.com/livrasand/Updainium" rel="noopener noreferrer"&gt;Updainium&lt;/a&gt; is an open-source desktop application inspired by &lt;a href="https://github.com/ImranR98/Obtainium" rel="noopener noreferrer"&gt;Obtainium&lt;/a&gt;, adapted for desktop software distribution.&lt;/p&gt;

&lt;p&gt;Instead of manually checking every repository, you can use Updainium to track public projects across supported Git hosting platforms.&lt;/p&gt;

&lt;p&gt;The idea is straightforward:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Add a public repository.&lt;/li&gt;
&lt;li&gt;Configure the file extension you want to download.&lt;/li&gt;
&lt;li&gt;Let Updainium check the project's releases.&lt;/li&gt;
&lt;li&gt;Download the matching release asset when you need it.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;For example, depending on the assets published by a project, you might look for &lt;code&gt;.dmg&lt;/code&gt; files on macOS, &lt;code&gt;.exe&lt;/code&gt; installers on Windows, or &lt;code&gt;.AppImage&lt;/code&gt; packages on Linux.&lt;/p&gt;

&lt;p&gt;You don't need every project to follow the same naming convention or distribute its software through a single centralized store. You choose the artifact type that fits your workflow.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The goal is to make upstream releases easier to discover and download.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Why I Built It with Tauri, Rust, and Svelte
&lt;/h2&gt;

&lt;p&gt;Updainium is built with Tauri, using Rust for its backend and Svelte for its interface.&lt;/p&gt;

&lt;p&gt;I wanted a desktop utility that could remain lightweight while still providing a native application experience.&lt;/p&gt;

&lt;p&gt;Rust handles backend operations, including application logic and file handling. Svelte powers the user interface, while Tauri connects the two without requiring a traditional heavyweight desktop application stack.&lt;/p&gt;

&lt;p&gt;This combination is a practical fit for a tool whose job is to monitor releases and download files rather than run a large collection of background services.&lt;/p&gt;

&lt;p&gt;It also keeps the project hackable. The source is available under the GPL-3.0 license, so developers can inspect how it works, modify it, and contribute improvements under the terms of that license.&lt;/p&gt;

&lt;h2&gt;
  
  
  Direct Downloads Don't Automatically Mean More Security
&lt;/h2&gt;

&lt;p&gt;There is an important distinction between downloading directly from a project's release page and knowing that a file is safe.&lt;/p&gt;

&lt;p&gt;A direct download doesn't automatically guarantee authenticity, integrity, or security.&lt;/p&gt;

&lt;p&gt;A compromised maintainer account, malicious release, or vulnerable application can still put users at risk. Likewise, downloading a binary from an upstream repository doesn't necessarily mean it has been independently audited.&lt;/p&gt;

&lt;p&gt;That's why software distribution should be transparent about what it does and what it doesn't guarantee.&lt;/p&gt;

&lt;p&gt;Updainium focuses on discovering releases and downloading matching files. It isn't a substitute for signature verification, checksums, reproducible builds, or a project's security practices.&lt;/p&gt;

&lt;p&gt;Whenever a project publishes checksums or signed artifacts, users should take advantage of those verification mechanisms.&lt;/p&gt;

&lt;p&gt;The point isn't to blindly trust the source. It's to give users a more direct route to the software they have chosen, while leaving room for independent verification.&lt;/p&gt;

&lt;h2&gt;
  
  
  What About APIs and Web Scraping?
&lt;/h2&gt;

&lt;p&gt;Not every Git hosting service exposes the same information through a standardized API.&lt;/p&gt;

&lt;p&gt;Some sources provide structured release data, while others may require Updainium to gather information from their web pages.&lt;/p&gt;

&lt;p&gt;That creates a limitation worth acknowledging: scraping depends on the structure of the website. If a platform changes its HTML or release page layout, tracking can break until compatibility is restored.&lt;/p&gt;

&lt;p&gt;This is an engineering trade-off, not something that should be hidden behind marketing language.&lt;/p&gt;

&lt;p&gt;The long-term goal is to make release tracking reliable across supported platforms while remaining transparent about compatibility limitations.&lt;/p&gt;

&lt;h2&gt;
  
  
  A Different Philosophy for Desktop Software
&lt;/h2&gt;

&lt;p&gt;Updainium isn't intended to become another platform that controls how you develop, distribute, or maintain software.&lt;/p&gt;

&lt;p&gt;Its development follows a deliberately simple set of principles:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;No AI features.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;No telemetry.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;No subscriptions.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;No automatic installation or updates.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;No Contributor License Agreements (CLAs).&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;No proprietary server components.&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These aren't claims that every other software project should follow the same rules. They're decisions about the kind of tool I want to build and maintain.&lt;/p&gt;

&lt;p&gt;For me, an update manager should help users stay informed and obtain software, not take control of their machines.&lt;/p&gt;

&lt;p&gt;That's why Updainium doesn't automatically install updates. Discovering a new release and deciding to install it should remain separate actions.&lt;/p&gt;

&lt;p&gt;Automation is useful, but it shouldn't eliminate user consent.&lt;/p&gt;

&lt;h2&gt;
  
  
  What's Next?
&lt;/h2&gt;

&lt;p&gt;Updainium is still evolving.&lt;/p&gt;

&lt;p&gt;The project is open to improvements that make release discovery, downloading, configuration, and everyday desktop use more reliable.&lt;/p&gt;

&lt;p&gt;I'm particularly interested in feedback from developers who maintain desktop applications and users who prefer obtaining their software directly from upstream projects.&lt;/p&gt;

&lt;p&gt;If you've ever had to maintain a collection of manually downloaded applications, I'd like to hear how you currently handle updates and what you'd improve about that workflow.&lt;/p&gt;

&lt;h2&gt;
  
  
  Try Updainium
&lt;/h2&gt;

&lt;p&gt;You can explore the source code, inspect the implementation, report bugs, and follow development here:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;GitHub repository:&lt;/strong&gt; &lt;a href="https://github.com/livrasand/Updainium" rel="noopener noreferrer"&gt;https://github.com/livrasand/Updainium&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;License:&lt;/strong&gt; GPL-3.0&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you find the project useful, consider starring the repository or contributing a human-reviewed improvement.&lt;/p&gt;

&lt;p&gt;Desktop software distribution doesn't need to be complicated to be useful.&lt;/p&gt;

&lt;p&gt;Sometimes, the best improvement is simply making it easier to get the software you already trust—from the people who actually build it.&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>desktop</category>
      <category>rust</category>
      <category>svelte</category>
    </item>
    <item>
      <title>Download Your Desktop Apps Directly from the Source with Updainium 🚀</title>
      <dc:creator>livrasand</dc:creator>
      <pubDate>Fri, 02 Oct 2026 20:25:28 +0000</pubDate>
      <link>https://dev.to/livrasand/download-your-desktop-apps-directly-from-the-source-with-updainium-1i49</link>
      <guid>https://dev.to/livrasand/download-your-desktop-apps-directly-from-the-source-with-updainium-1i49</guid>
      <description>&lt;p&gt;In the mobile ecosystem, tools like &lt;em&gt;Obtainium&lt;/em&gt; have revolutionized how power users install and update applications, allowing them to bypass official app stores and download release packages directly from open-source repositories. But what about our desktop operating systems?&lt;/p&gt;

&lt;p&gt;Traditional package managers (like Homebrew, apt, or winget) are great, but official repos often lag behind or rely on third-party maintainers. Sometimes, you simply want the official binary, fresh out of the developer's release pipeline.&lt;/p&gt;

&lt;p&gt;Today, I’m excited to announce &lt;strong&gt;Updainium&lt;/strong&gt;, a native desktop application designed to track public repositories and download release files straight from the original source.&lt;/p&gt;




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

&lt;p&gt;Inspired by the incredible Obtainium, but natively tailored for your desktop operating system. Updainium tracks public repositories on platforms like &lt;strong&gt;GitHub, GitLab, Gitea, Forgejo&lt;/strong&gt;, and compatible services.&lt;/p&gt;

&lt;p&gt;The workflow is straightforward:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Add a repository&lt;/strong&gt; you want to track.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Choose a target file extension&lt;/strong&gt; (e.g., &lt;code&gt;.AppImage&lt;/code&gt;, &lt;code&gt;.exe&lt;/code&gt;, &lt;code&gt;.dmg&lt;/code&gt;, &lt;code&gt;.tar.gz&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Updainium checks for the latest release&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Download and open&lt;/strong&gt; the matching file directly on your desktop with a single click.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;No more manually checking GitHub "Releases" tabs every time a new update comes out for your favorite tool.&lt;/p&gt;

&lt;h2&gt;
  
  
  Built with Rust and Svelte (Tauri)
&lt;/h2&gt;

&lt;p&gt;For a desktop utility like this to be useful, it needs to be fast and light on RAM.&lt;/p&gt;

&lt;p&gt;That’s why Updainium’s architecture is built on top of &lt;strong&gt;Tauri&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Rust Backend:&lt;/strong&gt; Delivers native performance, secure file handling, and minimal resource consumption.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Svelte Frontend:&lt;/strong&gt; Provides a clean, responsive, and extremely lightweight user interface.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Technical Limitations &amp;amp; Transparency
&lt;/h2&gt;

&lt;p&gt;We want to be transparent about how data is retrieved under the hood. While some platforms offer clean public APIs, data gathering for certain sources relies on &lt;em&gt;Web scraping&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;This means that if one of those platforms significantly changes its web layout, tracking might temporarily break until a patch is released. It’s a necessary trade-off when official APIs are rate-limited or unavailable.&lt;/p&gt;

&lt;h2&gt;
  
  
  Our Policy on AI Contributions
&lt;/h2&gt;

&lt;p&gt;If you explore the repository, you'll notice an &lt;code&gt;AI_POLICY.md&lt;/code&gt; file. We hold a strict stance for Updainium's development: &lt;strong&gt;autonomous contributions generated by AI are prohibited&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;We do not accept issues, pull requests, or comments generated by autonomous AI agents without meaningful human oversight. We want to ensure that every line of code, discussion, and bug report originates from real human developers who understand the context and implications of their changes.&lt;/p&gt;

&lt;h2&gt;
  
  
  Try It Out &amp;amp; Contribute (As a Human)
&lt;/h2&gt;

&lt;p&gt;Updainium has its &lt;code&gt;v1.0.0&lt;/code&gt; release live. If you’re the kind of developer or power user who values software delivered directly from the source without middlemen, this tool is built for you.&lt;/p&gt;

&lt;p&gt;You can inspect the source code under the &lt;strong&gt;AGPL-3.0&lt;/strong&gt; license on the repository.&lt;/p&gt;

&lt;p&gt;If you like the idea and want to support open-source desktop tooling, &lt;strong&gt;consider starring the repo&lt;/strong&gt;! See you in the commits!&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>rust</category>
      <category>svelte</category>
      <category>downloader</category>
    </item>
    <item>
      <title>Wiping EXIF Metadata Before Publishing Open Source Projects</title>
      <dc:creator>livrasand</dc:creator>
      <pubDate>Fri, 11 Sep 2026 16:21:58 +0000</pubDate>
      <link>https://dev.to/livrasand/wiping-exif-metadata-before-publishing-open-source-projects-4kbm</link>
      <guid>https://dev.to/livrasand/wiping-exif-metadata-before-publishing-open-source-projects-4kbm</guid>
      <description>&lt;p&gt;When developers focus on Git privacy, they usually think about stripping author names and emails from commit histories. However, there is a massive privacy leak hiding in plain sight: &lt;strong&gt;binary files&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;If your repository or Pull Request includes screenshots, diagrams, architectural PDFs, or sample images, those files may contain embedded EXIF and document metadata. This hidden data can expose your exact GPS coordinates, camera/device models, username paths, creation timestamps, and software versions—regardless of how clean your Git commit log is.&lt;/p&gt;

&lt;p&gt;In this practical tutorial, we will cover how to audit and strip binary metadata using &lt;code&gt;exiftool&lt;/code&gt;, and how to pair it with &lt;strong&gt;gitGost&lt;/strong&gt; for end-to-end contribution anonymity.&lt;/p&gt;




&lt;h2&gt;
  
  
  1. The Invisible Risk: What Binary Files Leak
&lt;/h2&gt;

&lt;p&gt;Standard Git commit anonymization strips &lt;code&gt;user.name&lt;/code&gt;, &lt;code&gt;user.email&lt;/code&gt;, and commit timestamps. But Git treats binary files as opaque blobs, leaving internal file metadata untouched.&lt;/p&gt;

&lt;p&gt;Common files that leak personal metadata include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;Images (&lt;code&gt;.png&lt;/code&gt;, &lt;code&gt;.jpg&lt;/code&gt;, &lt;code&gt;.webp&lt;/code&gt;):&lt;/strong&gt; EXIF tags containing GPS location, device serial numbers, software build info, and original creation dates.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;PDF Documents:&lt;/strong&gt; Embedded author names, local file directory paths (e.g., &lt;code&gt;/Users/yourname/Documents/...&lt;/code&gt;), and editing history.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Office Documents (&lt;code&gt;.docx&lt;/code&gt;, &lt;code&gt;.xlsx&lt;/code&gt;):&lt;/strong&gt; Company names, author profiles, and revision trackings.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you upload a screenshot of a bug fix, an attacker or automated scraper can extract your location or local system username directly from the file.&lt;/p&gt;




&lt;h2&gt;
  
  
  2. Auditing and Cleaning Metadata with &lt;code&gt;exiftool&lt;/code&gt;
&lt;/h2&gt;

&lt;p&gt;The industry standard for inspecting and stripping file metadata is &lt;code&gt;exiftool&lt;/code&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 1: Install &lt;code&gt;exiftool&lt;/code&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;macOS:&lt;/strong&gt; &lt;code&gt;brew install exiftool&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Linux (Ubuntu/Debian):&lt;/strong&gt; &lt;code&gt;sudo apt install libimage-exiftool-perl&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Windows:&lt;/strong&gt; Download the executable from the official site or install via &lt;code&gt;choco install exiftool&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Step 2: Inspect Hidden Metadata
&lt;/h3&gt;

&lt;p&gt;Before modifying a file, check what metadata it currently exposes:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;exiftool screenshot.png
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Look closely at fields like &lt;code&gt;Camera Model&lt;/code&gt;, &lt;code&gt;GPS Position&lt;/code&gt;, &lt;code&gt;Create Date&lt;/code&gt;, and &lt;code&gt;Software&lt;/code&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 3: Strip All Metadata
&lt;/h3&gt;

&lt;p&gt;To wipe all internal tags cleanly, run:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;exiftool &lt;span class="nt"&gt;-all&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nt"&gt;-overwrite_original&lt;/span&gt; screenshot.png
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;em&gt;Note: The &lt;code&gt;-overwrite_original&lt;/code&gt; flag prevents &lt;code&gt;exiftool&lt;/code&gt; from creating backup files (&lt;code&gt;_original&lt;/code&gt;), ensuring no uncleaned copies remain in your working directory.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;To process an entire folder of assets before committing:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;exiftool &lt;span class="nt"&gt;-all&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nt"&gt;-overwrite_original&lt;/span&gt; &lt;span class="nt"&gt;-ext&lt;/span&gt; png &lt;span class="nt"&gt;-ext&lt;/span&gt; jpg &lt;span class="nt"&gt;-ext&lt;/span&gt; pdf ./docs/images/
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  3. End-to-End Privacy: Pairing &lt;code&gt;exiftool&lt;/code&gt; with gitGost
&lt;/h2&gt;

&lt;p&gt;Wiping file metadata is only half the battle. If you attach cleaned images to a commit and push from your personal account, your Git author details and IP address will still be exposed.&lt;/p&gt;

&lt;p&gt;To achieve &lt;strong&gt;strong anonymity&lt;/strong&gt; across both files and Git logs, use &lt;strong&gt;gitGost&lt;/strong&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  What is gitGost?
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;gitGost&lt;/strong&gt; is an open-source, AGPL-3.0 proxy written in Go that allows you to push code and create Pull Requests without exposing accounts, tokens, or commit metadata. PRs are automatically created on your behalf by the neutral &lt;code&gt;@gitgost-anonymous&lt;/code&gt; bot.&lt;/p&gt;

&lt;h3&gt;
  
  
  Complete Anonymous Contribution Workflow
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Clean your assets:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;exiftool &lt;span class="nt"&gt;-all&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nt"&gt;-overwrite_original&lt;/span&gt; diagram.png
&lt;/code&gt;&lt;/pre&gt;

&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Commit your changes locally:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git add diagram.png
git commit &lt;span class="nt"&gt;-m&lt;/span&gt; &lt;span class="s2"&gt;"docs: add updated architecture diagram"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;


&lt;p&gt;&lt;em&gt;(Pro tip: Write a detailed commit message, as gitGost uses your commit message as the PR description.)&lt;/em&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Add the gitGost remote:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git remote add gost https://gitgost.fly.dev/owner/repository
&lt;/code&gt;&lt;/pre&gt;


&lt;p&gt;&lt;em&gt;(gitGost supports public repositories on both GitHub and GitLab.)&lt;/em&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Push anonymously:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git push gost main
&lt;/code&gt;&lt;/pre&gt;

&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Optional (IP Masking via Tor):&lt;/strong&gt;&lt;br&gt;
While gitGost removes author name, email, and timestamps, the proxy server can still see your IP address. To mask your IP, wrap your push with &lt;code&gt;torsocks&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;torsocks git push gost main
&lt;/code&gt;&lt;/pre&gt;

&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  4. Threat Model &amp;amp; Boundaries
&lt;/h2&gt;

&lt;p&gt;Understanding the boundaries of your toolchain is essential for privacy:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;What gitGost + &lt;code&gt;exiftool&lt;/code&gt; protects against:&lt;/strong&gt; Public exposure of author name/email, binary EXIF/GPS leaks, account-to-PR association, and passive metadata scraping by recruiters or bots.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Operational limits:&lt;/strong&gt; gitGost enforces repository size caps 500 MB, commit limits 10 MB, and rate limits 5 PRs/IP/hour to prevent abuse.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;What it does NOT protect against:&lt;/strong&gt; Code style analysis (stylometry) or targeted surveillance by nation-state actors.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Conclusion: Clean Code, Clean Files
&lt;/h2&gt;

&lt;p&gt;Privacy in open source requires a layered approach. By stripping binary EXIF metadata with &lt;code&gt;exiftool&lt;/code&gt; and pushing through &lt;strong&gt;gitGost&lt;/strong&gt;, you ensure that neither your assets nor your Git logs become permanent liabilities.&lt;/p&gt;




&lt;h3&gt;
  
  
  Frequently Asked Questions (FAQ)
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Can I contribute to GitHub anonymously?&lt;/strong&gt;&lt;br&gt;
Yes. Tools such as &lt;strong&gt;gitGost&lt;/strong&gt; allow developers to create anonymous Pull Requests without exposing their GitHub account, name, or email address.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Does GitHub strip EXIF data from uploaded images?&lt;/strong&gt;&lt;br&gt;
No. GitHub preserves the raw binary content of committed files, meaning any embedded EXIF or GPS data remains publicly readable in the repository history.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Is anonymous open-source contribution legitimate?&lt;/strong&gt;&lt;br&gt;
Yes. Many developers use anonymity to avoid employer conflicts, political risks, harassment, or unwanted profiling by recruiters.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;If you care about developer privacy, consider starring the &lt;a href="https://github.com/livrasand/gitGost" rel="noopener noreferrer"&gt;gitGost repository on GitHub&lt;/a&gt;!&lt;/em&gt;&lt;/p&gt;

</description>
      <category>privacy</category>
      <category>git</category>
      <category>github</category>
      <category>security</category>
    </item>
    <item>
      <title>Your Git Commit History Is More Public Than You Think 🕵️‍♂️</title>
      <dc:creator>livrasand</dc:creator>
      <pubDate>Wed, 01 Jul 2026 15:52:13 +0000</pubDate>
      <link>https://dev.to/livrasand/your-git-commit-history-is-more-public-than-you-think-3oga</link>
      <guid>https://dev.to/livrasand/your-git-commit-history-is-more-public-than-you-think-3oga</guid>
      <description>&lt;p&gt;In the open source world, we often say that "your code is your resume." However, what many developers forget is that every time they run a &lt;code&gt;git push&lt;/code&gt;, they're handing over much more than just lines of code. They're delivering a &lt;strong&gt;permanent digital trail&lt;/strong&gt; that can be tracked, analyzed, and used against them years later.&lt;/p&gt;

&lt;p&gt;This article is an educational guide about &lt;strong&gt;privacy in Git&lt;/strong&gt; and how the metadata you generate every second can compromise your security and your professional future.&lt;/p&gt;

&lt;h2&gt;
  
  
  The command that reveals your "naked identity"
&lt;/h2&gt;

&lt;p&gt;If you want to see exactly what you're sharing with the world, open your terminal in any repository and run the following command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git log &lt;span class="nt"&gt;--format&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;fuller
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Unlike the standard log, the &lt;code&gt;fuller&lt;/code&gt; format breaks down the complete anatomy of your contributions. This is where most developers are shocked to see what they're actually leaking:&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Name and Email (Direct Exposure)
&lt;/h3&gt;

&lt;p&gt;Git stores your &lt;code&gt;user.name&lt;/code&gt; and &lt;code&gt;user.email&lt;/code&gt; locally in every commit. This data:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Is harvested by spam bots for marketing databases.&lt;/li&gt;
&lt;li&gt;Allows recruiters to map all your historical activity, even on projects you no longer represent.&lt;/li&gt;
&lt;li&gt;Exposes you to doxxing attacks if you contribute to controversial projects.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  2. Dates and Timestamps (Time Analysis)
&lt;/h3&gt;

&lt;p&gt;Git not only saves the day, but also the exact second and time zone of the authorship and commit. This allows you to create an &lt;strong&gt;activity pattern&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What time do you usually code?&lt;/li&gt;
&lt;li&gt;Are you working on personal projects during office hours?&lt;/li&gt;
&lt;li&gt;What geographical area are you actually in?&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  3. File Patterns and Metadata
&lt;/h3&gt;

&lt;p&gt;In addition to text, if you upload binaries (PDFs or images), these usually contain EXIF ​​metadata (GPS coordinates, camera model, etc.) that Git doesn't clean up by default.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Problem with "Permanent Logs"
&lt;/h2&gt;

&lt;p&gt;GitHub is, by design, an accountability platform, not a privacy one. Once a commit enters the public history, deleting it is extremely difficult and often pointless if the repository has already been cloned or indexed by third-party services.&lt;/p&gt;

&lt;p&gt;This creates a &lt;strong&gt;HR liability risk&lt;/strong&gt;: a contribution made today could be judged in a completely different context five years from now.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Solution: Enter GitGost 👻
&lt;/h2&gt;

&lt;p&gt;For those times when you want your code to speak for itself, without any identifying tags, there's &lt;strong&gt;GitGost&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;GitGost&lt;/strong&gt; is an open-source proxy designed to offer &lt;strong&gt;strong anonymity&lt;/strong&gt; for your contributions. It requires no accounts, tokens, or complex browser configurations.&lt;/p&gt;

&lt;h3&gt;
  
  
  How Does It Work?
&lt;/h3&gt;

&lt;p&gt;Instead of uploading code directly to GitHub with your identity, you submit it through GitGost. The server:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Clean&lt;/strong&gt; all your metadata (name, email, timestamps).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Replace&lt;/strong&gt; the authorship with the neutral bot &lt;code&gt;@gitgost-anonymous&lt;/code&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Automatically create a Pull Request&lt;/strong&gt; in the target repository.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Quick Workflow:
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Add the GitGost remote
&lt;/h3&gt;

&lt;p&gt;&lt;code&gt;git remote add gost https://gitgost.fly.dev/owner/repo&lt;/code&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Push your branch (without logs or tokens)
&lt;/h3&gt;

&lt;p&gt;&lt;code&gt;git push gost main&lt;/code&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Is this just for "hackers"?
&lt;/h2&gt;

&lt;p&gt;Absolutely not. Anonymity in open source has legitimate and ethical use cases:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Employees&lt;/strong&gt; who want to fix bugs in competing tools without violating exclusivity clauses.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Activists and journalists&lt;/strong&gt; in censored regions who need to contribute to privacy tools without personal risk.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Developers&lt;/strong&gt; who simply want to fix an annoying typo without it defining their public profile forever.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Conclusion: Be a ghost, fix the internet
&lt;/h2&gt;

&lt;p&gt;Privacy isn't about hiding something bad; it's about having the power to choose what you share. If you believe developers deserve the right to contribute without being permanently profiled, it's time to start auditing your metadata.&lt;/p&gt;




&lt;h3&gt;
  
  
  Frequently Asked Questions (FAQ)
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Can I contribute to GitHub anonymously?&lt;/strong&gt;&lt;br&gt;
Yes. Tools like &lt;strong&gt;gitGost&lt;/strong&gt; allow you to create anonymous pull requests without exposing your GitHub account, name, or email address.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Does GitHub expose my email address?&lt;/strong&gt;&lt;br&gt;
Potentially, yes. Git commits contain author metadata (email) unless they are specifically anonymized before being published.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Is anonymous open source contribution legitimate?&lt;/strong&gt;&lt;br&gt;
Yes. Many developers use anonymity to avoid harassment, workplace conflicts, political risks, or unwanted profiling by recruiters.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;If you're passionate about privacy, check out the &lt;a href="https://github.com/livrasand/gitGost" rel="noopener noreferrer"&gt;gitGost&lt;/a&gt; repository and leave a star to support the right to anonymity in development.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>github</category>
      <category>git</category>
      <category>security</category>
      <category>privacy</category>
    </item>
    <item>
      <title>How to Contribute to GitHub Anonymously in 2026</title>
      <dc:creator>livrasand</dc:creator>
      <pubDate>Mon, 29 Jun 2026 17:23:00 +0000</pubDate>
      <link>https://dev.to/livrasand/how-to-contribute-to-github-anonymously-in-2026-4jfa</link>
      <guid>https://dev.to/livrasand/how-to-contribute-to-github-anonymously-in-2026-4jfa</guid>
      <description>&lt;p&gt;In the world of open source, your code is your resume. But sometimes, you want the code to speak for itself without attaching your legal name, your company’s email, or a permanent timestamp to it. Whether it's to avoid HR liabilities, contribute to controversial projects, or simply stay private, &lt;strong&gt;contributing anonymously to GitHub&lt;/strong&gt; is a skill every modern developer should have.&lt;/p&gt;

&lt;p&gt;In this guide, we’ll explore why your current Git workflow is "leaking" data and how tools like &lt;strong&gt;gitGost&lt;/strong&gt; are changing the game for privacy in 2026.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why GitHub Contributions are Permanent
&lt;/h2&gt;

&lt;p&gt;GitHub is designed for accountability, not anonymity. By default, every time you push code, you are creating a permanent public record. This "contribution graph" can become a liability over time:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;HR and Recruiters:&lt;/strong&gt; Your activity can be used to judge your "productivity" or interests during hiring processes.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Email Harvesting:&lt;/strong&gt; Spammers and scrapers crawl commit histories to build databases of active developer emails.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Political Risks:&lt;/strong&gt; In some jurisdictions, contributing to specific tools or repositories can lead to real-world consequences.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What Information Your Git Commits Actually Expose
&lt;/h2&gt;

&lt;p&gt;If you run &lt;code&gt;git log --format=fuller&lt;/code&gt; on any of your repositories, you’ll see the "naked" truth. A standard Git commit exposes:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; &lt;strong&gt;Full Name and Email:&lt;/strong&gt; Your local &lt;code&gt;user.name&lt;/code&gt; and &lt;code&gt;user.email&lt;/code&gt; settings.&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Timestamps:&lt;/strong&gt; When exactly you authored the code (often revealing your timezone and work habits).&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Metadata:&lt;/strong&gt; Hidden info in binary files (like images or PDFs) through EXIF data.&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Identity Correlation:&lt;/strong&gt; Passive metadata that links your personal GitHub account to every Pull Request you open.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Anonymous Accounts vs. True Anonymity
&lt;/h2&gt;

&lt;p&gt;Many developers think creating a "burner" GitHub account is enough. It's not. &lt;br&gt;
Secondary accounts still carry metadata in the commits. Furthermore, GitHub’s own platform telemetry can often link your accounts via IP addresses or browser fingerprints. &lt;strong&gt;True anonymity&lt;/strong&gt; requires stripping all identifying metadata before the code even reaches a remote server.&lt;/p&gt;
&lt;h2&gt;
  
  
  The Solution: Using gitGost
&lt;/h2&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%2Fq79a6ktl40byow9guidf.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%2Fq79a6ktl40byow9guidf.png" alt=" " width="800" height="438"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;gitGost&lt;/strong&gt; is an open-source proxy designed for "strong anonymity" in Git contributions. It allows you to contribute to any public repository without an account, a token, or metadata.&lt;/p&gt;
&lt;h3&gt;
  
  
  How to use gitGost (The One-Command Setup)
&lt;/h3&gt;

&lt;p&gt;The beauty of gitGost is that it requires no browser extensions or complex setups. Just add a remote and push:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Add the Gost remote:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;pre class="highlight shell"&gt;&lt;code&gt;git remote add gost https://gitgost.fly.dev/owner/repo
&lt;/code&gt;&lt;/pre&gt;


&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Push your changes:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;pre class="highlight shell"&gt;&lt;code&gt;git push gost your-branch
&lt;/code&gt;&lt;/pre&gt;


&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;What happens next?&lt;/strong&gt; &lt;br&gt;
gitGost's neutral bot, &lt;code&gt;@gitgost-anonymous&lt;/code&gt;, creates a Pull Request on your behalf. Your name, email, and timestamps are stripped and replaced with generic metadata. Your commit message automatically becomes the PR description, so make sure to provide context there.&lt;/p&gt;
&lt;h2&gt;
  
  
  Enhanced Privacy: Using Tor and Stripping Metadata
&lt;/h2&gt;

&lt;p&gt;For developers who need a higher level of protection (protecting against IP identification), combining gitGost with &lt;strong&gt;Tor&lt;/strong&gt; is the gold standard.&lt;/p&gt;
&lt;h3&gt;
  
  
  1. Hiding your IP with &lt;code&gt;torsocks&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;gitGost strips your commit data, but the server still sees your IP. To mask it, use &lt;code&gt;torsocks&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Install on Linux&lt;/span&gt;
&lt;span class="nb"&gt;sudo &lt;/span&gt;apt &lt;span class="nb"&gt;install &lt;/span&gt;torsocks
&lt;span class="c"&gt;# Push through Tor&lt;/span&gt;
torsocks git push gost main
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;em&gt;Note: Tor is slower due to its three-layer encryption, so expect the push to take a few minutes.&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Stripping Binary Metadata with &lt;code&gt;exiftool&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;If your contribution includes images or PDFs, they might contain GPS coordinates or device info. Use &lt;code&gt;exiftool&lt;/code&gt; before committing:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;exiftool &lt;span class="nt"&gt;-all&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nt"&gt;-overwrite_original&lt;/span&gt; image.png
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  The gitGost Threat Model
&lt;/h2&gt;

&lt;p&gt;Anonymity is never absolute. It’s important to understand what gitGost protects you against and what it doesn't:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;It protects against:&lt;/strong&gt; Public exposure of name/email, direct association with your personal account, and passive metadata collection by recruiters or scrapers.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;It does NOT protect against:&lt;/strong&gt; Stylometry (code style analysis), advanced temporal correlation, or nation-states with infrastructure-level access.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Explicit Assumption:&lt;/strong&gt; You must use a trustworthy network (VPN/Tor) and avoid mixing anonymous and personal contributions in the same repository to stay safe.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion: Be a Ghost, Fix the Internet
&lt;/h2&gt;

&lt;p&gt;Privacy is a right, even for developers. gitGost was built for responsible, good-faith contributions where identity is unnecessary. It's about giving you the choice to "disappear" after you've made the internet a little better.&lt;/p&gt;




&lt;h3&gt;
  
  
  Frequently Asked Questions (FAQ)
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Can I contribute to GitHub anonymously?&lt;/strong&gt;&lt;br&gt;
Yes. Tools like &lt;strong&gt;gitGost&lt;/strong&gt; allow you to create anonymous pull requests without exposing your account or metadata.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Does GitHub expose my email address?&lt;/strong&gt;&lt;br&gt;
Yes, unless you specifically use a proxy or anonymize your Git metadata.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Is anonymous contribution legitimate?&lt;/strong&gt;&lt;br&gt;
Absolutely. It is used by activists, journalists, and developers wanting to avoid profiling or employer conflicts.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;If you believe developers deserve the right to privacy, consider starring the &lt;a href="https://github.com/livrasand/gitGost" rel="noopener noreferrer"&gt;gitGost repository&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>github</category>
      <category>git</category>
      <category>privacy</category>
      <category>opensource</category>
    </item>
  </channel>
</rss>
