Lockstep GitHub Sign in Coming soon
Fair-source · free for indies under $1M/yr

Own your bytes.
Pennies, not hundreds.

Cloud source control for Unreal & Unity teams. Keep code in git, stream giant binary assets to a bucket you own, and lock files like Perforce. Zero egress — typically 10–40× cheaper than hosted Git LFS.

Coming soon Coming soon View on GitHub
Works with Cloudflare R2 · Backblaze B2 · Wasabi · MinIO · S3
aurora-rpg · feature/arena-pass synced
Content / Maps
Arena.umap Locked by you 248 MB
Explosion.uasset Kai Renner 33 MB
Player.cpp Modified 14 KB
Tank.uasset Synced 94 MB
The cost story

See what your repo actually costs

Drag the sliders. Hosted Git LFS bills your whole history plus egress on every clone and pull. Your own bucket is flat — and egress is free.

Your project
Repo size 100 GB
50 GB100 TB
Active team 8 devs
31,000 devs
Your bucket
S3-compatible · you hold the keys · $0 egress
Estimated cost / month
GitHub Git LFS $290
storage $10 + egress $280
Lockstep + Cloudflare R2 $74
seats $72 (8 devs × $9) + storage $1.50 + egress $0
3.9×
cheaper on Lockstep
$2,598 saved every year

Estimates. The Lockstep figure is all-in: per-seat licensing (8 devs × $9/mo) plus your own bucket. GitHub LFS bills stored history in $5/50 GB data packs and meters bandwidth on every clone, pull and CI fetch — its figure excludes GitHub seats, so the real gap is wider. Object storage (R2 $0.015/GB, B2 $0.006/GB) is flat with $0 egress; your bill depends on churn and retention.

The problem

Game teams are stuck between bad options

Binary assets break git

A .uasset can't be merged. Two people edit the same map and someone's work is gone. Git was built for text, not 200 MB binaries.

Perforce is expensive and heavy

Servers to run, admins to pay, per-seat licensing that punishes growth. It locks files well — and locks you in.

Git LFS bills you for egress

Every clone and pull pulls gigabytes — and you're metered for all of it. The bill scales with your team, not your value.

How it works

Bytes go straight to your bucket

The coordination server only brokers short-lived presigned URLs. Blob bytes never pass through it — there's nothing to meter.

01
Git carries code + pointers

Your source and tiny LFS pointer files live in git, exactly as today. Every git client keeps working.

02
Binaries stream to YOUR bucket

The real .uasset bytes go client ↔ bucket directly via presigned URLs. 0 bytes through our servers.

03
Locks coordinate who's editing

A lock table tracks every checkout in real time, so two people never edit the same unmergeable file.

Bring your own storage. We hold pointers and locks, never your data.
The moat

Lock before you edit. Never overwrite a teammate's .uasset again.

This is the one thing git can't do that game teams can't live without — enforced right inside the editor.

Amber means held by someone else, azure means it's yours — readable at a glance.
Stale-lock handling via heartbeat/TTL — abandoned locks expire instead of blocking the team.
Admin force-release for when someone's offline and you need the file now.
OFPA-aware locking for UE5 World Partition — lock the actor, not the whole level.
Lock table · 3 held
Maps/Downtown.umap Kai Renner · 2h
FX/Explosion.uasset You · 11m
Vehicles/Tank.uasset stale · force-release
What you get

Built for teams who own their data

File locking

Perforce-grade exclusive checkout for unmergeable files.

Native Unreal integrationSoon

Checkout, submit and lock without leaving the editor.

Bring your own storage

One S3-compatible path: R2, B2, Wasabi, MinIO, S3.

$0 egress

Bytes go straight to your bucket. Nothing to meter.

Works with git

Built on git + the LFS protocol. It's just git.

Desktop app for artists

A clean GUI — no command line required to ship.

Fair-source

Source-available, free for indies, Apache 2.0 after 4 years.

You hold the keys

Encrypted credentials; clients get short-lived URLs only.

Data sovereignty

Your assets live in your bucket

No vendor holds your IP hostage. Credentials are encrypted at rest; clients only ever receive short-lived presigned URLs. Cancel anytime — your data is already where it lives.

presigned · expires 15m
GET https://your-studio.r2.dev/
    Content/Maps/Arena.umap
    ?X-Amz-Expires=900
    &X-Amz-Signature=a91f…// 15-min TTL

# bytes go client → bucket.
# the server never sees them.
Compare

Lockstep vs the alternatives

Lockstep
Perforce
GitHub LFS
Anchorpoint
Cost model
Seat + your bucket
Seat + servers
Storage + egress
Seat + their cloud
Egress fees
$0
Self-host bandwidth
Billed / GB
Capped tiers
Bring your own storage
Self-host only
File locking
Basic API
Git-native
Unreal integration
Plugin soon
Hosting overhead
None
High
None
None
Pricing

Per-seat. Your storage is your own.

You pay Lockstep per seat. You pay your bucket provider pennies. That's the whole bill.

Indie
Studios under $1M/yr revenue
Free
Unlimited seats & locks Bring your own bucket Fair-source, no card
Coming soon
Most teams
Studio
Growing teams shipping commercially
$9/seat/mo
Everything in Indie Admin force-release & audit Priority support
Coming soon
Enterprise
SSO, compliance, scale
Custom
SSO / SAML & SCIM Self-host coordination server SLA & dedicated support
Coming soon
Fair-source

Source-available, and yours over time

Read every line. Free for teams under $1M/yr. Each release converts to Apache 2.0 four years after ship — so the tool can never be taken away from you.

Read the source on GitHub View the license
FAQ

Questions, answered straight

Stop renting your data back
by the gigabyte.

Set up a repo, point it at your bucket, and lock your first file in minutes.

Coming soon Coming soon