How do I let customers or tenants log in to see their own documents?

By Ranjit Bhinge, founder of Blur Studio · Updated · 5 min read

Short answer: Start with the simplest tool that does exactly this one job before building anything custom. Netlify's Identity feature gives you sign-up, login, password reset and role-based page gating without needing a Netlify account for each user, on any credit-based plan, with custom email templates and an audit log reserved for Pro and Enterprise. Dedicated login tools like Memberstack, Auth0, Clerk or Supabase Auth go further if you need more than a login gate. A login screen alone isn't a portal: the documents, orders or statements behind it still need somewhere to live and a way to connect to the right person's account.

Ranjit Bhinge

You want customers or tenants to see their own documents without emailing them a link every time, and you want to know what's actually involved in making that real.

I'm Ranjit, and I run Blur Studio: 15+ years building software, 120 apps taken live, and clients who have gone on to raise $10M+. I build AI systems and processes that help businesses do a lot more with a lot less time. I also work differently from most of what else is out there, more on that further down this page. Say hello.

This page may contain affiliate links from which Blur Studio earns commissions.

"Give customers a login" sounds like one feature, but it's actually two separate problems stacked on top of each other: who is allowed in, and what they see once they're in. A lot of frustration with this project comes from solving only the first one and assuming the second comes free with it. It doesn't.

The two problems you're actually solving

Problem one: authentication. Someone types an email and password, or clicks a magic link, and the site confirms they are who they say they are. This is the part a login tool genuinely solves for you.

Problem two: the actual portal. Once someone's logged in, where does "their" document come from? You need a record somewhere (a database, a spreadsheet, a folder structure) that ties a specific file or order to a specific logged-in person, plus the logic that fetches the right one and hides everyone else's. This second part is custom work, even with the best login tool in the world.

Most people who get stuck on this project got authentication working fine and then discovered the portal part was the actual job all along.

Where Netlify's Identity feature fits

Identity handles sign-up, login, password reset and role assignment for people using your site, without each of them needing a Netlify account. You can gate specific pages by role, which is the mechanism you'd use to separate, say, "tenant" accounts from "staff" accounts. It's included on Netlify's credit-based plans (Free, Personal, Pro) with no extra per-user cost and no cap on active users, which matters if you're rolling this out to a few hundred tenants rather than a handful of named clients. Custom email templates and an audit log of login activity are reserved for Pro and Enterprise. One thing worth knowing before you build around it: Netlify has been moving away from Git Gateway, the piece that let Identity-authenticated users edit content through a connected CMS, so confirm directly with Netlify or your developer whether that specific integration still fits your use case before planning a build around it.

Step by step: setting this up without overbuilding it

  1. Write down exactly what a logged-in person needs to see. Not "their account," specifically: one PDF invoice per month? A list of past orders? A single lease document? The narrower this is, the simpler the whole build stays.
  2. Decide where that content actually lives. If it's a handful of PDFs per person, a simple naming convention tied to their account ID in Netlify Blobs or a storage bucket can work. If it's structured records (order history, line items, statuses), you need an actual database behind it, not just file storage.
  3. Turn on Identity and set up roles if you have more than one type of logged-in person (tenant versus staff, customer versus wholesale account).
  4. Gate the specific pages or routes that should only be visible to a logged-in, correctly-roled user, and test this with two different test accounts to confirm one person's account can't see another's documents, not just that the login screen works.
  5. Test the full loop with one real account before rolling it out: sign up, log in, see the right document, log out, confirm a second account sees something different.

The step people skip is testing that account A genuinely can't see account B's documents. A login screen that works is not the same thing as a portal that correctly separates data between people, and that separation is exactly the part a generic "add a login" tutorial won't walk you through, because it depends entirely on how your specific data is structured.

What I'd actually tell a property manager or distributor

If you manage a handful of properties or client accounts, the honest answer is often that a login screen is overkill. A single shared password per property, or a plain unguessable link per tenant, gets you 90% of the privacy with a fraction of the build time. I'd reach for real authentication specifically once you have enough distinct accounts that a shared password or guessable link becomes a genuine information-leak risk, or once you need an actual audit trail of who looked at what and when, which is exactly the kind of thing a lease dispute or an invoice dispute can turn on.

For a distributor giving dealers or wholesale accounts their own pricing and order history, the calculation flips the other way faster. Once you've got more than a handful of accounts and real pricing differences between them, proper role-based login earns its keep quickly, because the cost of one dealer seeing another's negotiated price is genuinely expensive, not just embarrassing.

When the simple options stop fitting

A real portal needs data, payments and permissions working together around the login, and Identity is one piece of that, not the whole thing. Memberstack, Auth0, Clerk and Supabase Auth are all built specifically for the login piece and go further than Identity on things like social sign-in, multi-factor authentication and fine-grained permission rules, worth checking directly if your needs outgrow a simple role split. Softr or Glide, building on a spreadsheet as the data source, can get a working portal live fast for simple cases without custom code, though they come with their own limits on how complex the underlying data can get.

A worked example: a property manager with forty units

A property manager with forty rental units had been emailing lease documents and monthly statements to tenants individually, which worked at ten units and became a genuine time sink at forty, especially when a tenant lost an email and asked for the same document again months later. The fix wasn't a full custom portal, it was Identity gating a page per tenant, each tied to a folder of that tenant's own documents stored by unit number, with the login screen the only part that needed real setup beyond organizing existing files consistently.

The part that actually took the most time wasn't the login itself, it was testing that tenant A couldn't somehow see tenant B's lease by guessing at a URL pattern or an account ID. The manager's developer ran through every tenant's login with two separate test accounts specifically checking for that leak before rolling it out to real tenants, since a single tenant seeing another tenant's lease terms would have been a real problem, not just an inconvenience. Once that separation was confirmed solid, the whole system saved several hours a month that had previously gone into manually re-sending documents on request.

How I'd approach this

When a client brings me "I want customers to log in and see their stuff," I always ask what "their stuff" actually is before touching authentication, because that answer decides whether this is a weekend project or a real build. If it's a handful of documents per person, I'd often connect Netlify's Identity to a simple, properly-scoped data store and have something working fast. If it's genuinely a multi-party portal with payments, permissions and real business logic behind it, that's custom software, and I'd rather tell you that honestly upfront than have you discover it three weeks into a "simple login" project. If you've already started building this and it's stuck halfway, that's also exactly the kind of thing I come in and finish.

Questions people ask

Do I need a developer to set up Netlify Identity?

Turning Identity on is straightforward from your Netlify dashboard. Connecting it to actual documents or records tied to each logged-in person, which is the real portal part, is where you typically need a developer, since that logic is specific to your own data.

Is Netlify Identity free?

It's included on Netlify's credit-based plans, including Free, with no extra per-user charge and no cap on active users. Custom email templates and an audit log of login activity are reserved for Pro and Enterprise.

Can I separate tenants from staff with different access?

Yes, Identity supports role-based access, so you can gate specific pages or sections to specific roles. You set the roles up and decide which pages each role can see.

Is a login screen the same as a secure portal?

No. Authentication (confirming who someone is) and the portal itself (making sure each person only sees their own records) are two separate problems. A working login screen doesn't guarantee one account can't see another account's documents; that separation has to be built and tested deliberately.

What's the simplest option if I only have a few clients?

For a handful of accounts, a single shared password per client or a private, unguessable link can be enough, and it's far faster to set up than a full login system. Move to real authentication once the number of accounts, or the sensitivity of what's behind the login, makes a shared password or guessable link a genuine risk.

Is Netlify Identity being phased out?

Netlify has moved away from parts of the older Identity stack, specifically Git Gateway. Confirm directly with Netlify or your developer which pieces are current before building a new project around it, rather than assuming the whole feature works exactly as older tutorials describe.

What should I use instead if I need more than a simple login?

Dedicated authentication tools like Memberstack, Auth0, Clerk or Supabase Auth handle more advanced needs (social sign-in, multi-factor authentication, finer-grained permissions) than a basic role-based gate, and are worth checking directly against your specific requirements.

Sources

Ready for the next step?

A 30 minute call. No pitch. If you do not need me, I will tell you.

Ranjit Bhinge You talk to me, Ranjit. I reply within a few hours.

Not sure what you need? Tell me what is going on. I will point you the right way, even if it is not me.

Blur Studio · 30 minute call

Book a 30 minute call

You talk to me, Ranjit. No pitch. If you do not need me, I will tell you.

  • We talk about your business and what is going on.
  • You leave with a clear next step, even if it is not me.
  • I reply to every message within a few hours.
Loading the calendar…