The details, before you need them.
Every limit, every way out, and exactly who can see what. None of it is a surprise waiting in month four.
The whole deal, before you start
Here is every limit and every way out, before you sign up.
Free has no end date.
No countdown and no card. Free stays free at three clients for as long as you want it, so there is no Tuesday you have forgotten about where your clients' work goes behind a paywall.
Free stops at three clients.
One seat, 10 GB, three active clients. The fourth is refused by the database itself rather than by a message on a screen, because this limit was once displayed and not enforced, which made the sentence describing it false.
Every module is on every plan, Free included.
Every module, on every plan, Free included. Plans differ on seats, storage and the things that only start to matter when there are more of you. They never differ on what the software is allowed to do.
Leaving is one button, on any plan.
One click hands you 31 tables of your workspace as formatted JSON, on any plan, or your clients, projects and invoices as spreadsheets. Your files are listed with names and sizes rather than packed inside, and you fetch them from Files or from your own bucket.
Nothing in the app can delete a file.
There is no delete in the request path at all. Removing an asset sets a flag and nothing else, and a check that runs before every release fails the build if one ever reappears. Bytes are collected later by a script holding a different key.
None of this helps during an outage.
An outage. The storage provider publishes a 99.9% availability target, which allows roughly 43 minutes a month where your files are entirely safe and simply will not load. There is no mitigation for that and we are not going to invent one.
You can keep your files in your own storage account.
Point Luovex at storage in your own account and new uploads go there. We keep the catalog, the permissions and the delivery. Those files stop counting against your allowance, because charging you for storage we do not provide would be charging you for nothing.
Who can see what
One job, two logins, and a page that is simply not there on one of them.
WHAT YOU SEE
WHAT YOUR CLIENT SEES
WHAT YOU SEE
WHAT YOUR CLIENT SEES
WHAT YOU SEE
WHAT YOUR CLIENT SEES
Each pair is one screen and then the same screen from their login. A row missing from the second one is a row their portal never receives. Where there is nothing on the right, there is no such page in their portal at all. The figures are invented. Which lines cross is not.
Hire a freelancer for one job and they see one job.
Not your other clients, not the rest of your work, and no billing at all. The first version of this rule asked whether somebody was a member of the workspace, and a freelancer is a member, so anybody hired onto a single job could read every invoice in the business. It was found and closed, and a test now fails the build if a contractor can read one.
Anything you write for yourself stays yours.
A private note on a client is private unless you share it, and an internal message in a thread is absent from what the client is shown rather than filtered out of the page. Their portal has no page of your notes at all, which is a different thing from having one that looks empty.
Nobody can edit a message after it is sent.
Not you, not your client. There is no rule permitting an update or a delete on a message, which is stronger than a rule forbidding it: the operation has nowhere to go. A conversation about what was agreed is worth nothing if either side can quietly rewrite it afterwards.
Your client can take their own records and keep them.
Their own button, in their own portal, without asking you and without asking us. The file says so in as many words: this is yours, and it stays yours whether or not you keep using the portal. You cannot run it on their behalf, because it is not your document, and a test asserts exactly that.
You cannot approve anything for your client.
When something is waiting on them, it waits. The database refuses a studio deciding on its client's behalf, which is occasionally inconvenient on a Friday afternoon and is the entire value of an approval. A record of somebody agreeing is worth having only if they are the one who agreed.
Every line above is a database rule with a test behind it.
The rules live in the migrations, and a harness signs in as each kind of person, asks for the thing they should not have, and fails the release if they get it.
Not one shape for everybody
Say what you do at signup and the modules that match switch on. The part worth more than that: the ones that do not match are not there. No menu item, no permission, nothing to stumble into. It is not a tab you are told you cannot open, it is not part of the software you get.
A couple choosing from a gallery sees the count come down to the number you asked for, and which photographs they both picked, because the picks were separate until they agreed.
Films are their own destination rather than a gallery with videos in it. Comments carry a timecode, so a note sits on the frame it is about, and cuts stack as versions instead of replacing each other.
The sitemap is built from blocks that know what they need, so the chase list writes itself. The client is asked for the one headline the hero block wants, not for a folder of content.
Retainer hours are in the client portal under "Your hours", so nobody has to ask you where the budget went. Reports assemble from what is already connected.
Comments pin to a point on the artboard, versions stack, and the argument behind a decision survives it. An approval is a recorded event, not an email somebody remembers differently.
Every property gets two pages: a branded one for the agent, and an unbranded one for the MLS feed. The unbranded page is served by a different database function that cannot return agent identity, so it cannot leak it by a setting left switched on.
All of it, switched on together, and each piece still removable. A preset is where you start, not a category you are filed under.
Which one you pick never changes your bill. Every plan carries every module, so a preset is where you start rather than a category you are filed under, and anything here is one switch in settings afterwards.