<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Alisha Albert</title>
    <description>The latest articles on DEV Community by Alisha Albert (@alisha_albert_fa8993b210a).</description>
    <link>https://dev.to/alisha_albert_fa8993b210a</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4155800%2F8144fe93-d0ec-4622-9407-54c2f3270df3.png</url>
      <title>DEV Community: Alisha Albert</title>
      <link>https://dev.to/alisha_albert_fa8993b210a</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/alisha_albert_fa8993b210a"/>
    <language>en</language>
    <item>
      <title>Sharing Confidential Documents Online? Start With an Expiry Date</title>
      <dc:creator>Alisha Albert</dc:creator>
      <pubDate>Tue, 06 Oct 2026 13:30:30 +0000</pubDate>
      <link>https://dev.to/alisha_albert_fa8993b210a/sharing-confidential-documents-online-start-with-an-expiry-date-2d0j</link>
      <guid>https://dev.to/alisha_albert_fa8993b210a/sharing-confidential-documents-online-start-with-an-expiry-date-2d0j</guid>
      <description>&lt;p&gt;Most of us send a sensitive document the same way we send everything else: as an email attachment. A signed contract to a lawyer. Tax paperwork to an accountant. Medical records to a clinic. We attach the file, type "as discussed," and hit send without thinking twice about it.&lt;/p&gt;

&lt;p&gt;The problem is that an email attachment never really goes away. It sits in your sent folder. It sits in the recipient's inbox. It gets forwarded, downloaded onto shared drives, backed up to servers you will never hear about. Months later, long after everyone has forgotten about it, copies of your passport scan or financial statement are still sitting in inboxes that are only as secure as the weakest password protecting them.&lt;/p&gt;

&lt;p&gt;You cannot fix that with a better password. You need a different way of sharing.&lt;/p&gt;

&lt;h2&gt;
  
  
  What actually makes document sharing safe
&lt;/h2&gt;

&lt;p&gt;Security guides tend to throw a long checklist at you, but most of it boils down to three things.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Limit how long the document is available.&lt;/strong&gt; A link that works forever is a liability. The moment the recipient has the document, there is no reason for it to still be out there. Set an expiry. Short ones — an hour, a day — for things that are time-sensitive. A few days at most for everything else.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Keep it off email.&lt;/strong&gt; Once a file travels as an attachment, you lose control of it. You cannot revoke it, expire it, or even know where it ended up. A share link at least keeps the document in one place until the recipient grabs it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Send access details separately.&lt;/strong&gt; If you password-protect a PDF (which is a good habit for anything with a signature or ID number in it), do not put the password in the same email as the file. Send the link one way, the code another way. It takes thirty extra seconds and it closes the simplest attack there is: someone getting into one account and getting both.&lt;/p&gt;

&lt;h2&gt;
  
  
  A lighter way to do it
&lt;/h2&gt;

&lt;p&gt;For a lot of everyday confidential documents, you do not need an enterprise data room. You need something between "email attachment" and "corporate security portal."&lt;/p&gt;

&lt;p&gt;That is where &lt;a href="https://nowiretransfer.xyz/" rel="noopener noreferrer"&gt;view-once file sharing&lt;/a&gt; earns its keep. You open the site in your browser — no account, nothing to install — drop in the file, and pick how long the share should live: one hour, a day, three days, or a week. You get a short code and a QR, and the document deletes itself when the clock runs out. The file stays unlisted and encrypted while it is up.&lt;/p&gt;

&lt;p&gt;It also fits the small realities of confidential sharing. Need your accountant to get a 200 MB folder of scanned receipts? Files go through as-is, up to 250 MB each, with no compression quietly mangling your scans. Need your lawyer to see the signed contract right now? A view-once share can delete itself the moment it is opened, so the document exists exactly as long as it needs to and not a minute longer.&lt;/p&gt;

&lt;h2&gt;
  
  
  A short routine that actually works
&lt;/h2&gt;

&lt;p&gt;Here is the routine I would suggest for anything sensitive:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Before sending:&lt;/strong&gt; ask whether it needs to live forever. If not, give it an expiry. Default to short.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;While sending:&lt;/strong&gt; use a share link instead of an attachment, and keep the code or password in a separate message from the link itself.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;After sending:&lt;/strong&gt; if the tool lets the share delete itself after viewing, turn that on. If not, check back and take the link down once the recipient confirms they have it.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;None of this is complicated, and that is the point. The reason confidential documents leak is rarely a sophisticated hack. It is an old attachment in a forgotten inbox, or a link that someone shared three months ago and never turned off. Expiry dates and separate channels do not sound dramatic, but they close the gaps that actually get people in trouble.&lt;/p&gt;

&lt;p&gt;The next time you are about to attach a document you would not want posted publicly, pause for the thirty seconds it takes to &lt;a href="https://nowiretransfer.xyz/" rel="noopener noreferrer"&gt;send confidential files with an expiring link&lt;/a&gt; instead. Your future self — the one not digging through sent folders wondering where that file ended up — will be glad you did.&lt;/p&gt;

</description>
      <category>filesharing</category>
      <category>privacy</category>
      <category>security</category>
    </item>
    <item>
      <title>How Freelancers Can Share Client Files Without Asking Anyone to Sign Up</title>
      <dc:creator>Alisha Albert</dc:creator>
      <pubDate>Mon, 05 Oct 2026 13:54:35 +0000</pubDate>
      <link>https://dev.to/alisha_albert_fa8993b210a/how-freelancers-can-share-client-files-without-asking-anyone-to-sign-up-3j8</link>
      <guid>https://dev.to/alisha_albert_fa8993b210a/how-freelancers-can-share-client-files-without-asking-anyone-to-sign-up-3j8</guid>
      <description>&lt;p&gt;Client work has a delivery problem, and it's not the work itself. It's the handoff.&lt;/p&gt;

&lt;p&gt;You finish a project — a set of design mockups, an edited video, a batch of photos, a final PDF — and then the annoying part begins. You email it, and Gmail bounces anything over 25 MB. You upload it to Drive, and your client gets a "request access" screen because they opened it with a different account. You use a transfer tool, and the client gets asked to create an account just to download the file you already made for them.&lt;/p&gt;

&lt;p&gt;Freelancers live in this gap. We don't need enterprise file management with client portals and permission tiers. We need something that sits between "email is too small" and "another platform my client has to learn."&lt;/p&gt;

&lt;p&gt;After a few years of juggling this on both sides — sending work out and receiving assets from collaborators — I've found the friction usually comes down to four things.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Clients who won't sign up for anything&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This is the biggest one. A client pays you for a deliverable, not for an onboarding flow. Asking a busy founder or a marketing manager to create an account on a tool they'll use once, verify their email, and then find your file is a lot to ask. Plenty of them just won't do it. They'll reply "can you just email it?" and then complain when the email never arrives.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Files that outlive the project&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Most sharing links never expire. That design file from a project that ended eight months ago is still sitting on someone's server, attached to a link you lost track of. For client work — especially work under NDA — that matters. A finished project shouldn't leave a permanent copy floating around on a third-party service you can't audit.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Email limits that make no sense in 2026&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Gmail caps attachments at 25 MB. Outlook is similar. A short phone video in 4K can be ten times that. Raw photos from a shoot, a designer's layered file, an uncompressed audio export — none of these fit in an email, and compressing them just to satisfy an attachment limit means sending your client a worse version of your work.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. The privacy middle ground&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Chat apps aren't great either. Sending client files over WhatsApp or Telegram mixes work into personal messaging, and the files stay there indefinitely unless someone manually deletes them. What you really want is a share that behaves like a handoff: you give it, they take it, and then it's gone on your terms.&lt;/p&gt;

&lt;h2&gt;
  
  
  What a good freelancer workflow looks like
&lt;/h2&gt;

&lt;p&gt;The ideal handoff has a specific shape. You upload the file. You get something short and easy to pass along — a short code, a QR code, a link. Your client opens it on whatever device they're using, downloads what they need, and never signs up for anything. You pick how long the share stays alive, and after that it deletes itself.&lt;/p&gt;

&lt;p&gt;That last part is worth saying twice, because it's the one most tools skip. Expiry shouldn't be a premium feature. If you're sharing a contract draft, a set of medical forms, a brand asset, or anything time-sensitive, the link should have a built-in end date. One hour, a day, a few days, a week — you choose, and the file disappears when the time runs out.&lt;/p&gt;

&lt;p&gt;I've started using &lt;a href="https://nowiretransfer.xyz/" rel="noopener noreferrer"&gt;nowiretransfer&lt;/a&gt; for exactly this kind of handoff. It's a free tool in the browser — no account on either side. You add a file or some text, get a six-character code or a QR, and your client opens it on any modern browser. Files go up to 250 MB each and are sent as-is, so nobody is compressing your deliverable into a blurry preview. The shares are unlisted and encrypted, and you pick the expiry: one hour, 24 hours, three days, or seven days.&lt;/p&gt;

&lt;p&gt;It works well for the usual freelancer scenarios. Sending a video cut to a client for review? A short expiry means the review link stops working once the project wraps. Need to &lt;a href="https://nowiretransfer.xyz/" rel="noopener noreferrer"&gt;send large files without signup&lt;/a&gt;, share a contract, or pass along text that shouldn't live in an email thread forever? It handles all of that from the same page. Collecting raw assets from a client who doesn't want another login? They upload from their phone browser and hand you the code.&lt;/p&gt;

&lt;p&gt;The phone part matters more than it sounds. A surprising number of client handoffs happen on phones — a client approving a design on the couch, a collaborator sending phone photos for a project. Anything that requires a desktop app or a download is friction. Anything that works in the browser on iOS, Android, Windows, or Mac is just a link away.&lt;/p&gt;

&lt;h2&gt;
  
  
  A small habit worth adopting
&lt;/h2&gt;

&lt;p&gt;The real win isn't one tool, it's a rule of thumb: stop creating permanent shares for temporary work. Before you send a file, ask yourself two questions. Does the recipient need an account for this? And does this link need to exist next month?&lt;/p&gt;

&lt;p&gt;If the answer to the first is "no, but the tool demands it," use a tool that doesn't. If the answer to the second is "no," set an expiry and let the file delete itself. Your clients get their files with less effort, and you stop leaving finished projects scattered across the internet long after you've been paid.&lt;/p&gt;

&lt;p&gt;Client work is temporary. Your file sharing should be too.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Originally published on Hashnode: &lt;a href="https://practicalprivacynotes.hashnode.dev/how-freelancers-can-share-client-files-without-asking-anyone-to-sign-up" rel="noopener noreferrer"&gt;https://practicalprivacynotes.hashnode.dev/how-freelancers-can-share-client-files-without-asking-anyone-to-sign-up&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

</description>
      <category>filesharing</category>
      <category>freelancing</category>
      <category>privacy</category>
    </item>
    <item>
      <title>Stop Emailing Files to Yourself: A Lighter Way to Move Files Between Devices</title>
      <dc:creator>Alisha Albert</dc:creator>
      <pubDate>Fri, 02 Oct 2026 00:49:38 +0000</pubDate>
      <link>https://dev.to/alisha_albert_fa8993b210a/stop-emailing-files-to-yourself-a-lighter-way-to-move-files-between-devices-3b7b</link>
      <guid>https://dev.to/alisha_albert_fa8993b210a/stop-emailing-files-to-yourself-a-lighter-way-to-move-files-between-devices-3b7b</guid>
      <description>&lt;p&gt;How often do you email a screenshot to yourself just to get it from your phone to your desktop? Or upload a video to Drive, wait for it to sync, then download it on the other device five feet away?&lt;/p&gt;

&lt;p&gt;We all do it. And it's absurd when you think about it — but the alternatives each have their own tax.&lt;/p&gt;

&lt;h2&gt;
  
  
  The friction of cross-device sharing
&lt;/h2&gt;

&lt;p&gt;Apple's AirDrop is genuinely great, and completely locked to Apple's ecosystem. The moment one device is a Windows PC or an Android phone, you're back to square one.&lt;/p&gt;

&lt;p&gt;Messaging apps work everywhere but compress media aggressively. Fine for a meme, terrible for anything you actually care about.&lt;/p&gt;

&lt;p&gt;Cloud drives don't compress, but they make you pay in ceremony: upload, wait, manage sharing permissions, copy the link — and then the link lives forever unless you remember to kill it. For a file you needed for thirty seconds, that's a lot of overhead.&lt;/p&gt;

&lt;h2&gt;
  
  
  A smaller idea: the one-time handoff
&lt;/h2&gt;

&lt;p&gt;Most cross-device transfers aren't storage problems. They're handoff problems. The file needs to get from device A to device B once, and then nobody needs the link again.&lt;/p&gt;

&lt;p&gt;That's the idea behind &lt;a href="https://nowiretransfer.xyz/" rel="noopener noreferrer"&gt;nowiretransfer&lt;/a&gt;. You add a file (or paste some text) on one device and get a 6-character code. Type the code — or scan the QR — on the other device, and the file opens. No account, no app install, works in any modern browser.&lt;/p&gt;

&lt;p&gt;What makes it different from just another cloud link:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Files go up and come down as-is.&lt;/strong&gt; No compression, no quality loss.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Shares expire.&lt;/strong&gt; You pick 1 hour, 24 hours, 3 days, or 7 days, and the files delete themselves when time's up. No "oops, that link from March is still live."&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Private by default.&lt;/strong&gt; Shares are unlisted — only the code opens them — and transfers are encrypted.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;250 MB per file&lt;/strong&gt;, multiple files per share.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Try it out
&lt;/h2&gt;

&lt;p&gt;Next time you're about to email yourself a file, try this instead: open &lt;a href="https://nowiretransfer.xyz/" rel="noopener noreferrer"&gt;nowiretransfer&lt;/a&gt; on your phone, add the file, and open the code on your laptop. It takes about ten seconds, and there's nothing to clean up afterward.&lt;/p&gt;

&lt;h2&gt;
  
  
  What's actually hard about this
&lt;/h2&gt;

&lt;p&gt;The interesting engineering isn't the transfer — it's the lifecycle. Expiry has to be real (bytes deleted, not just links hidden), codes have to be unguessable but typable, and the whole thing has to work on mobile browsers that love to kill background tabs mid-upload. Worth thinking about if you're building anything with shared state that shouldn't outlive its purpose.&lt;/p&gt;

&lt;p&gt;Sometimes the best feature is the one that deletes itself.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>productivity</category>
      <category>showdev</category>
      <category>privacy</category>
    </item>
    <item>
      <title>Delete-on-read: designing a file share that destroys itself</title>
      <dc:creator>Alisha Albert</dc:creator>
      <pubDate>Thu, 01 Oct 2026 20:42:55 +0000</pubDate>
      <link>https://dev.to/alisha_albert_fa8993b210a/delete-on-read-designing-a-file-share-that-destroys-itself-3j2i</link>
      <guid>https://dev.to/alisha_albert_fa8993b210a/delete-on-read-designing-a-file-share-that-destroys-itself-3j2i</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fx4agyej2n01nqqh6mmxy.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fx4agyej2n01nqqh6mmxy.webp" alt="A dissolving contract with a padlock, illustrating delete-on-read file sharing" width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Most file-sharing systems are built around persistence. Upload, store, serve — and keep serving until someone remembers to delete. But there's a whole class of sharing where persistence is the bug, not the feature: one-time handoffs of sensitive files.&lt;/p&gt;

&lt;p&gt;The pattern is simple: a link that works exactly once. Here's how to think about building it.&lt;/p&gt;

&lt;h2&gt;
  
  
  The core mechanic: single-use tokens
&lt;/h2&gt;

&lt;p&gt;At the heart of delete-on-read is a token, not a file path. The flow:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Upload stores the file and generates a random, unguessable token.&lt;/li&gt;
&lt;li&gt;The share URL contains the token — nothing else identifies the file.&lt;/li&gt;
&lt;li&gt;On first successful GET, the server streams the bytes, then immediately deletes the stored file (and any database record pointing to it).&lt;/li&gt;
&lt;li&gt;Any later request with the same token returns a "gone" state.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The deletion has to happen server-side, right after the response completes. Client-side tricks — like a page that hides the link after viewing — don't count. If the bytes are still on disk, the share isn't really view-once.&lt;/p&gt;

&lt;p&gt;A few details that matter more than they look:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Stream, then delete.&lt;/strong&gt; Don't load the whole file into memory if you can stream it. Delete the source as soon as the stream finishes, in the same request lifecycle.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Make tokens unguessable.&lt;/strong&gt; UUIDs or 128-bit random values. Sequential IDs are an invitation to enumeration.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Treat "viewed" carefully.&lt;/strong&gt; If the recipient's browser prefetches or a link-preview bot hits the URL, that can burn the single view. A common fix: serve an interstitial page first ("click to reveal"), and only count the actual download/view click.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Multi-file shares: the ZIP trick
&lt;/h2&gt;

&lt;p&gt;Single files are the easy case. For multiple files, the cleanest approach is to bundle them into a ZIP at share time and treat the ZIP as the single view-once object. The recipient gets one download, one deletion. &lt;a href="https://nowiretransfer.xyz/" rel="noopener noreferrer"&gt;nowiretransfer&lt;/a&gt; uses exactly this approach — you can drop several files in, and they arrive as one self-deleting archive.&lt;/p&gt;

&lt;p&gt;Generating the ZIP on upload (rather than on download) keeps the download path simple and predictable: one stream, one delete, done.&lt;/p&gt;

&lt;h2&gt;
  
  
  Text shares are the same shape
&lt;/h2&gt;

&lt;p&gt;The pattern generalizes nicely to text. Store the snippet server-side, hand out a token URL, render the text once, delete on first render. It's the same state machine as files — the only difference is the content type. Passwords, API keys, and config snippets are the natural use case, and they benefit from the same "no residue" guarantee.&lt;/p&gt;

&lt;h2&gt;
  
  
  What "deleted" should mean
&lt;/h2&gt;

&lt;p&gt;This is where implementations get honest or don't. True delete-on-read means:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The file bytes are removed from storage (not just unlinked from a database row).&lt;/li&gt;
&lt;li&gt;Backups and caches don't quietly keep a copy around past its intended life.&lt;/li&gt;
&lt;li&gt;There's no "recently deleted" grace period that extends the exposure window.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you're evaluating a view-once tool rather than building one, these are the questions worth asking. A tool that keeps files in a trash folder for 30 days isn't view-once — it's a file host with a countdown timer.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why this is worth building (or using)
&lt;/h2&gt;

&lt;p&gt;Delete-on-read is a small idea with an outsized effect on how people share sensitive things. It removes the whole category of "I forgot that link was still live." The UX is almost nothing — upload, share, done — because the security model is the absence of state, not the presence of more controls.&lt;/p&gt;

&lt;p&gt;If you want to see the pattern in action, &lt;a href="https://nowiretransfer.xyz/" rel="noopener noreferrer"&gt;nowiretransfer&lt;/a&gt; is a clean example: free, no signup, files and text that delete themselves after one view, multi-file ZIP packaging. It's a good reference for how little UI this pattern actually needs.&lt;/p&gt;

&lt;p&gt;The broader lesson: sometimes the best data retention policy is not having the data at all.&lt;/p&gt;

</description>
      <category>security</category>
      <category>webdev</category>
      <category>privacy</category>
      <category>showdev</category>
    </item>
  </channel>
</rss>
