Client portals where each client sees only theirs
A signed-in space per customer for their documents, requests, and status, with the boundary enforced on the server rather than by a link you hope nobody forwarded.
Sharing a folder is not a portal.
Clients email for a status update and somebody answers the same question eleven times a week. Files live in a drive folder that was restricted properly once and never again. Taking on a client means copying a folder structure by hand and hoping the permissions came with it. The moment one client can see rows belonging to another, you have a problem no apology fixes.
Every client gets an account and a boundary.
Clients sign in with email and password, a magic link, or Google. Per-table rules decide which rows load for the account making the request, and the server checks them every time rather than trusting the screen. Add a client and the portal exists for them. You publish it on your own domain, so it reads as part of your business instead of a link to somewhere else.
What gets built
Questions
Can each client see only their own data?
Yes, and the rule is enforced on the server rather than in the interface. Each table carries a policy such as owner only or by role, and a request for rows outside it comes back empty.
Can my team and my clients use the same app?
Yes, and that is the usual shape. Staff and clients are both accounts with different roles reading the same tables under different rules, which is why the status a client sees is the row your team just updated.
How do clients sign in?
With email and password, or with Google. The account belongs to the client, so what loads is decided by the rules on your tables rather than by who was forwarded a link.

