Your clients change their own words. You stop deploying for a comma.
Eleven client projects. Two or three languages each. And every "sorry, one more tiny change" lands on the same two developers — the ones you bill out by the hour for work you can't invoice.
LangSyncer puts every project's copy in one dashboard and gives the client a login to their own. They edit, it publishes, it is live in about 20 seconds. Nobody on your team touched it.
Try it on one client project. Export back to lang files whenever you want.
"Is the Italian done on Vela?" — answered without opening a repo.
The problem is not the work. It's the arithmetic.
A copy change is five minutes. That's genuinely fine. It stops being fine when you multiply it by every client, every language and every week of the year.
Hours you can't invoice
Nobody bills a client for changing a word they asked you to change. It comes out of the retainer, or it comes out of the margin, and it happens every week on every project.
Context switches you can't recover
The five-minute task costs an hour, because it landed in the middle of something that took forty minutes to load into a developer's head.
A bottleneck with a name on it
Every client's copy change routes through the same one or two people. When they are on holiday, the client waits, and the client notices.
And there's the part nobody puts in the retrospective: from where the client is sitting, "we'll get that out on Thursday" for a two-word change doesn't read as good engineering discipline. It reads as slow.
Hand the words back to the people who own them
Your team keeps the code. The client keeps the copy. Those were never the same job.
Every project on one screen
All your client projects live in one account with one quota. You can see which languages are complete on which project without cloning anything. Onboarding project number twelve is a form, not a setup afternoon.
Up to 10 projects on the paid plan today
Give the client their own login
Per-project access with a role that only allows translating. They see their project and nothing else — not your other clients, not your account, not your billing. When they change a word, it publishes and it is live.
Per-project roles and permissions
Add a language without a project plan
A client wants Italian by the end of the month. Draft the whole key set with AI, have someone review it, publish. What used to be a quoted piece of work becomes an afternoon.
OpenAI and DeepL, quota-controlled
Find what the last team missed
You inherit a codebase where half the admin panel was never made translatable. Run the scanner, get the list, approve the keys, apply them locally and read the diff. No archaeology.
php artisan translator:scan
Fix it now, not on Thursday
A typo on a client homepage stops being a scheduling conversation. Someone with access changes it and it is gone, with a record of who changed what and a one-click rollback if they were wrong.
Full history, one-click rollback
Leave without a migration
Every project exports back to native Laravel lang files. If a client insists everything lives in their repo, or you decide this isn't for you, that is an export and a commit — not a rebuild.
Native PHP and JSON lang files
"I'm not putting that in a client's app"
Correct instinct. You are the one who gets the call at 2am, not us. So here is what actually happens in each case, without the marketing voice.
What if you go out of business?
Export every project to native Laravel lang files, commit them, remove the package. Your keys never changed, so your templates don't change either. This is a deliberate design choice: the exit has to be cheap or nobody sensible would put us in a client project in the first place.
What if your CDN has a bad day and my client's site breaks?
Run the client in static mode and this can't happen: translations are synced down into files inside the project and your app reads them locally, with no network call at request time. Live mode caches translations in your app's cache rather than fetching per request. Choose per project — a high-traffic client site and an internal tool don't need the same trade-off.
My client is not technical. Are they going to break something?
They can edit the text of keys in one project. They can't rename keys, add languages, change other projects, or see your account. Every change is attributed and reversible in one click, so the worst case is a bad sentence for as long as it takes someone to notice.
We hand projects over. Does the client get locked into your bill?
No. Either they take over the project on their own account, or you export the lang files into their repo at handover and the dependency comes out. Handover is a normal thing agencies do and it shouldn't be a negotiation.
How much work is it to add this to an existing project?
One Composer package, a published config file and two environment variables, then import the lang files you already have. Nothing is renamed and no templates change. If it doesn't fit the project, removing it is the same work backwards.
Who else is using this?
Not many people yet — we're early and would rather say so than invent a logo wall. That is the honest reason to start on a free project rather than on your biggest client. It's also why the first agencies to use this get to shape what gets built next, and we mean that literally.
What it costs
One account covers the whole portfolio. You're not paying per client project the way the enterprise platforms charge.
Free
Prove it on one client project before you commit the rest.
- 3 client projects
- 2 people with access — team or client
- 100 AI translations a month
- Per-project roles, so a client sees only their own
- Publish without a deploy, or export to lang files
Icebreaker
The whole client portfolio, plus the people who edit copy in it.
- 10 client projects
- 10 people with access — team or client
- 3,000 AI translations a month
- Per-project roles, so a client sees only their own
- Publish without a deploy, or export to lang files
Spread across 10 projects, that is per project per month. Priced per account, not per project or per language.
Start 7-day trialNeed more AI quota for a launch? Packs are bought separately and never expire, so one big migration doesn't lock you into a bigger plan forever.
Try it on the client who messages you most
Import that project's lang files, give them a login to their own copy, and see how many messages you get next month. If it doesn't work out, export the files and remove the package.