Code Protection for Freelancers: A Timestamping Solution
Alex is a freelance full-stack developer. Eighteen months ago, she built a reusable authentication library for a client project. The contract was light on IP clauses, and the work was delivered through a private GitHub repository. Last week, Alex found a suspiciously familiar auth module inside the same client’s new SaaS product — logic she wrote, reorganized just enough to look different.
When Alex raised it, the client claimed they had independently developed the feature. Alex has local Git history, email threads, and a few file exports. But the client’s lawyer calls that evidence self-serving and editable. Without a formal IP agreement and without an independent record of when her code existed, Alex is stuck.
This is the freelancer’s plagiarism nightmare. The technical work is done, but the proof is missing.
The Freelancer’s Plagiarism Nightmare
Freelancers rarely have the legal infrastructure of a company. Most work happens through a mix of trust, a contract that may not mention code ownership, and a Git repository that the client may or may not still have access to. When a dispute arises, the evidence situation is often worse than expected.
Common proof sources fail quickly:
- Emails with timestamps can be forwarded, edited, or dismissed as not tied to the actual code.
- File modification dates are local metadata and can be changed with basic tooling.
- Git commit dates are also metadata. They can be set to arbitrary values when committing, so a court or client has no reason to treat them as tamper-proof.
- GitHub or GitLab hosting proves that code existed on someone’s server, but not necessarily on a specific date, and not in a way that is independent of the repository owner.
For Alex, the painful realization is that “I wrote it first” needs more than memory and a commit graph. It needs a timestamp that nobody can rewrite.
Why Freelancers Need Cryptographic Prior Art
A Git commit hash is a one-way cryptographic fingerprint of the exact repository state at a moment in time. That is a good starting point: the hash is mathematically tied to the code. But a hash alone is not evidence of when it existed. To create that evidence, the hash must be anchored into a public, immutable medium.
That is where Bitcoin enters the picture.
Cryptographic timestamping uses the Bitcoin blockchain as an independent witness. When a commit hash is embedded into a Bitcoin transaction through the OpenTimestamps protocol, the existence of that hash is frozen into a specific Bitcoin block. Once confirmed, that block cannot be altered, reordered, or removed without rewriting Bitcoin history — something no single party can do.
For freelancers, this creates a form of prior art that is:
- Independent: The proof does not depend on your GitHub account, your laptop, or your client’s willingness to admit anything.
- Verifiable: Anyone can check the
.otsreceipt against the Bitcoin blockchain without needing Timestamp GIT’s servers. - Zero-knowledge: You can prove that a specific commit hash existed without revealing the source code behind it.
This is not only about plagiarism. The same mechanism helps against patent trolls, contractor disputes, and “clean room” claims from competitors. If you want a deeper background on the underlying Bitcoin logic, see How Bitcoin Can Prove Your IP Existed First.
For this article, the focus is narrower: giving freelance developers a practical way to prove authorship before a dispute happens.
A Practical Playbook: Protecting Your Code with Timestamp GIT
Timestamp GIT automates the entire cryptographic timestamping workflow. You do not need to run OpenTimestamps commands, manage Bitcoin transactions, or remember a manual stamping process. The workflow is designed around the tools you already use as a freelancer.
Step 1: Install the Timestamp GIT GitHub App once
Start by installing the Timestamp GIT GitHub App and selecting the repositories you want to monitor. This is a one-time setup step.
In Standard Mode, the GitHub App reads only the HEAD commit hash of each monitored repository. It does not read, copy, or store your source code. GitHub’s permission model requires read access to the source repository for commit detection, plus write access to a target repository where proofs will be stored. The target can be the same repository or a separate shadow repository.
For a full installation walkthrough, see Automatically Timestamp Every Git Commit with a GitHub App.
Step 2: Keep committing as usual
After installation, there is no extra step in your daily workflow. Every new commit hash is detected automatically, queued, and included in a nightly batch.
Each night, Timestamp GIT groups pending commit hashes by repository, creates a manifest file, builds a Merkle tree, and anchors the Merkle root into the Bitcoin blockchain through the OpenTimestamps protocol. You keep writing code; the proof accumulates in the background.
Step 3: Retrieve your proof receipts
Once a batch is processed, Timestamp GIT pushes the manifest and .ots receipt files back to a dedicated timestamps branch or shadow repository. Because Bitcoin confirmation normally takes around three hours, proof delivery is not instant — but it requires no action from you.
The .ots file is the core evidence. You can also generate a PDF certificate from the Timestamp GIT dashboard for a specific date.
Step 4: Display verification status publicly
Timestamp GIT provides embeddable verification badges for your README. After connecting a repository, you can use the badge widget on the Repository Connected page to generate a markdown snippet with the correct Shields.io badge URL.
A public badge does two things for freelancers: it shows clients that your project has an independent timestamp trail, and it makes verification immediately accessible.
Step 5: Use the proof in a dispute
If a client claims independent development, you can hand over the .ots receipt and a verification link. The other party does not need access to Timestamp GIT. They can download the receipt and verify it locally against the Bitcoin blockchain using standard OpenTimestamps tooling.
For private repositories, verification status URLs are protected with an encrypted HMAC so only authorized users can view the repository’s timestamp state. The proof itself remains independently verifiable through the .ots file.
When you cannot grant source repo access
Some freelancer contracts enforce strict NDAs that prevent granting any third-party app read access to the source repository. In that case, Enterprise ZK Mode is the right fit. A 12-line GitHub Action runs on your infrastructure and pushes only the commit hash to the Timestamp GIT API. Your source code never leaves your environment, and Timestamp GIT does not need read access to the source repository.
What to Avoid: Common Mistakes in Code Protection
Before freelance developers have a dispute, they often rely on habits that feel safe but are weak under scrutiny. Avoid these patterns.
Relying only on email timestamps or self-hosted Git logs
A Git history is useful for your own debugging. It is not an independent proof of existence. Commit dates can be manipulated, and internal logs are often treated as self-serving in legal or client disputes. Use Git for development, but do not treat it as a notary.
Waiting until a dispute arises to start timestamping
Cryptographic prior art only helps if the timestamp exists before the disputed work. Timestamping after a claim is made proves nothing about the original creation date. The only practical approach is to timestamp every commit from the start of a project.
Using manual OpenTimestamps CLI tools for every commit
The raw protocol works, but doing it manually across multiple freelance projects is time-consuming and error-prone. You would need to build your own batching, store receipts, manage verification, and remember to run the process consistently. That is the hard way. Timestamp GIT exists to replace that manual work with an automated managed workflow.
Assuming GitHub publication proves authorship
Publishing code on GitHub proves that the code is available now. It does not prove when you wrote it, and it does not create an immutable timestamp. A competitor or former client can still claim they built something first. GitHub hosting alone is not prior-art protection.
Ignoring chain of custody for proof files
An .ots receipt is only useful if you can find it and connect it to the right commit. Keep receipts organized. If a project spans multiple repositories or clients, store receipts with project names and dates. Timestamp GIT keeps receipts in a timestamps branch or shadow repository, which gives you a consistent chain of custody without manual filing.
Timestamp GIT: The Zero-Setup Managed Solution
Timestamp GIT is built for developers who want cryptographic proof without becoming timestamping experts. Once the GitHub App is installed, every commit to a monitored repository is anchored into Bitcoin automatically each night. There is no CLI tool, no manual OpenTimestamps command, and no local protocol setup.
Key properties of the managed workflow:
- GitHub App integration: Monitored repos are connected once, and commit hashes flow automatically.
- Zero-knowledge architecture: Timestamp GIT only stamps commit hashes. It never reads, copies, or stores source code.
- Vendor independence: Proofs use only SHA-256 and Bitcoin block data. You can verify everything offline, even if Timestamp GIT disappears.
- Nothing to install on developer machines: The managed SaaS workflow runs without local agents.
For freelancers who want maximum control or need an air-gapped environment, Timestamp GIT is also available as a Docker self-hosted image. A basic docker-compose.yml looks like this:
services:
timestampgit:
image: rue1401/timestampgit:prod
ports:
- "8080:8080"
volumes:
- ./data:/app/data
restart: unless-stopped
valkey:
image: valkey/valkey:8
restart: unless-stopped
Start it with:
docker compose pull
docker compose up -d
docker compose logs -f timestampgit
The application is then available at http://localhost:8080. A setup wizard guides you through connecting your GitHub App. A time-limited demo license is available from the Docker License page.
For most freelancers, the managed plans are the practical starting point: Open Source is free for public repositories, Pro Agency is $49/month for private repositories, and Enterprise ZK is $199/month for the GitHub Action-based no-read-access workflow.
If you are comparing options, see Timestamp GIT vs Manual OpenTimestamps: Which Is Better?.
FAQ: Freelance Code Protection with Timestamp GIT
Does Timestamp GIT require me to expose my source code?
No. Timestamp GIT only reads commit hashes, never your actual code. In Standard Mode, the GitHub App requires read access to the repository to detect commits, but it does not store or transmit your source. For maximum privacy, Enterprise ZK Mode uses a GitHub Action that pushes only the commit hash to the API, so your code never leaves your environment.
How can I prove the timestamp is authentic in a legal dispute?
You receive an .ots receipt file that can be independently verified against the Bitcoin blockchain using standard OpenTimestamps tools. The proof is mathematically absolute and does not rely on Timestamp GIT’s servers. You can also generate a PDF certificate and share a verification link from the Timestamp GIT dashboard.
What if I work on private repositories?
Timestamp GIT supports private repositories with the Pro Agency plan at $49/month. The GitHub App requires read access to the source repository and write access to a target repository, which can be a shadow repository. For freelancers under strict NDAs, Enterprise ZK Mode at $199/month allows timestamping without granting read access to the source repository.
Is the timestamp legally recognized?
Cryptographic timestamps anchored in the Bitcoin blockchain are increasingly accepted as evidence of prior art and authorship. They provide a tamper-proof, independently verifiable record. However, legal recognition varies by jurisdiction, so consult with legal counsel for specific cases. Timestamp GIT provides the technical proof; it does not replace legal advice.
Conclusion: Timestamp Before You Need the Proof
Alex’s mistake was not a lack of skill — it was waiting until the dispute to look for proof. Freelancers cannot rely on trust, email threads, or editable Git metadata when a client claims independent development.
Timestamp GIT changes the equation by making cryptographic prior art automatic. Install the GitHub App once, connect the repositories, and keep committing. Every commit hash is anchored into Bitcoin nightly, receipts are delivered to a timestamps branch or shadow repository, and you get a verifiable record that exists independently of any client relationship.
Start with free public repositories at Timestamp GIT and build the habit now. The best time to prove you wrote something is the day you write it.
Related posts
- How Bitcoin Can Prove Your IP Existed First
- Automatically Timestamp Every Git Commit with a GitHub App
- Timestamp GIT vs Manual OpenTimestamps: Which Is Better?