<?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: Sohel Siddique</title>
    <description>The latest articles on DEV Community by Sohel Siddique (@teamonly).</description>
    <link>https://dev.to/teamonly</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%2F4207528%2F5f99aa6c-5ad9-4d15-a8ac-f04259227982.png</url>
      <title>DEV Community: Sohel Siddique</title>
      <link>https://dev.to/teamonly</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/teamonly"/>
    <language>en</language>
    <item>
      <title>Claude Code stops when your Mac sleeps: 5 fixes, lid closed too</title>
      <dc:creator>Sohel Siddique</dc:creator>
      <pubDate>Mon, 26 Oct 2026 12:32:08 +0000</pubDate>
      <link>https://dev.to/macrun/claude-code-stops-when-your-mac-sleeps-5-fixes-lid-closed-too-1o7o</link>
      <guid>https://dev.to/macrun/claude-code-stops-when-your-mac-sleeps-5-fixes-lid-closed-too-1o7o</guid>
      <description>&lt;p&gt;You gave Claude Code a long task, closed the lid, and came back to a dead session. Nothing is wrong with the agent. macOS put the machine to sleep, and sleep suspends every process, drops the network, and ends any SSH connection. This page covers the settings that stop that, in the order to try them, and the point where the honest fix is a different machine.&lt;/p&gt;

&lt;h2&gt;
  
  
  What actually happens at sleep
&lt;/h2&gt;

&lt;p&gt;When a Mac sleeps, the CPU stops running your processes. The agent is not killed. It is frozen. When the machine wakes, the process continues. By then the API connection it was using has timed out. The tool call it was in the middle of has failed. On a laptop, a closed lid means sleep within seconds unless something prevents it. A lock screen does not cause sleep. A screensaver does not either. Only the sleep timer and the lid do.&lt;/p&gt;

&lt;h2&gt;
  
  
  Fix 1: caffeinate for a single task
&lt;/h2&gt;

&lt;p&gt;macOS ships a tool that holds the machine awake while a command runs. Start the agent through it and the Mac stays up until the agent exits.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;caffeinate &lt;span class="nt"&gt;-i&lt;/span&gt; claude
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The flag keeps the system from idle sleeping. Add a second flag to keep the display on too, which matters only for tools that drive the screen.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;caffeinate &lt;span class="nt"&gt;-di&lt;/span&gt; claude
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This does not survive a closed laptop lid. The lid switch overrides every idle assertion. It also does nothing after the agent exits and you start the next task without it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Fix 2: turn off sleep for the machine
&lt;/h2&gt;

&lt;p&gt;On a desktop Mac, or a laptop on power, set the sleep timer to never and leave it. These are the settings we use on every agent Mac.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;pmset &lt;span class="nt"&gt;-a&lt;/span&gt; &lt;span class="nb"&gt;sleep &lt;/span&gt;0
&lt;span class="nb"&gt;sudo &lt;/span&gt;pmset &lt;span class="nt"&gt;-a&lt;/span&gt; disksleep 0
&lt;span class="nb"&gt;sudo &lt;/span&gt;pmset &lt;span class="nt"&gt;-a&lt;/span&gt; displaysleep 10
&lt;span class="nb"&gt;sudo &lt;/span&gt;pmset &lt;span class="nt"&gt;-a&lt;/span&gt; womp 1
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The display can still sleep. That saves power and changes nothing for a terminal process. The last line enables wake on network, which helps if something does put the machine down.&lt;/p&gt;

&lt;h2&gt;
  
  
  Fix 3: the closed lid
&lt;/h2&gt;

&lt;p&gt;A MacBook with the lid closed sleeps unless it is on power and connected to an external display, keyboard, or mouse. That is Apple's clamshell rule. Without a display, one more setting forces the machine to stay awake with the lid shut.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;pmset &lt;span class="nt"&gt;-a&lt;/span&gt; disablesleep 1
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Undo it later with the same command and a zero. Two warnings. The laptop will run warm in a bag or on a bed, so leave it on a hard surface. And it will drain a battery in a few hours if the power cable comes out, then die without a clean shutdown.&lt;/p&gt;

&lt;h2&gt;
  
  
  Fix 4: the terminal, not the machine
&lt;/h2&gt;

&lt;p&gt;Sometimes the Mac stayed awake and the session still vanished. That is the terminal window closing or the SSH connection dropping, which sends a hangup to everything inside it. The answer is a terminal multiplexer. Run the agent inside a tmux session and it survives the window, the SSH drop, and the Wi-Fi hiccup.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;brew &lt;span class="nb"&gt;install &lt;/span&gt;tmux
tmux new &lt;span class="nt"&gt;-s&lt;/span&gt; agent
claude
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Detach with Ctrl-b then d. Reattach later from any terminal, or from your phone over SSH, with one command.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;tmux attach &lt;span class="nt"&gt;-t&lt;/span&gt; agent
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;There is a full guide to this setup: &lt;a href="https://macrun.dev/guides/keep-claude-code-session-alive-with-tmux?ref=devto" rel="noopener noreferrer"&gt;keeping a Claude Code session alive with tmux&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Fix 5: come back after a reboot
&lt;/h2&gt;

&lt;p&gt;Security updates restart the machine. Power blips restart it. After a restart nothing is running until someone logs in. For a machine that is meant to be unattended, enable automatic login for the agent user in System Settings. Then add a LaunchAgent that recreates the tmux session at login. The &lt;a href="https://macrun.dev/guides/always-on-mac-for-ai-agents?ref=devto" rel="noopener noreferrer"&gt;always-on Mac checklist&lt;/a&gt; has the full list, including battery backup.&lt;/p&gt;

&lt;h2&gt;
  
  
  When the laptop is the wrong machine
&lt;/h2&gt;

&lt;p&gt;Everything above works. It also turns your laptop into a server you cannot take anywhere. Once the agent is doing real work overnight, most people move it to a machine whose only job is to stay on. There are four choices. A spare Mac mini at home. A Linux box, if you do not need Xcode. A Mac in a cloud. Or a hosted Mac mini that someone else keeps awake. The &lt;a href="https://macrun.dev/guides/where-to-run-a-24-7-coding-agent?ref=devto" rel="noopener noreferrer"&gt;comparison of places to run a 24/7 agent&lt;/a&gt; has the costs side by side.&lt;/p&gt;

&lt;h2&gt;
  
  
  Frequently asked questions
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Does caffeinate keep Claude Code running with the lid closed?
&lt;/h3&gt;

&lt;p&gt;No. The lid switch overrides caffeinate on a MacBook. You need the machine on power with an external display connected, or the disablesleep power setting.&lt;/p&gt;

&lt;h3&gt;
  
  
  Will the lock screen or screensaver stop the agent?
&lt;/h3&gt;

&lt;p&gt;No. Locking the screen and running the screensaver do not sleep the machine. Only the sleep timer, low battery, or a closed lid do. A locked screen is fine for a terminal agent.&lt;/p&gt;

&lt;h3&gt;
  
  
  Does this apply to Codex too?
&lt;/h3&gt;

&lt;p&gt;Yes. Codex CLI is a terminal process like Claude Code. The same sleep settings, caffeinate, and tmux apply, and the same lid rule.&lt;/p&gt;

&lt;h3&gt;
  
  
  Can I keep the Mac awake from my phone?
&lt;/h3&gt;

&lt;p&gt;You can start a task from your phone with Claude Code's Remote Control or over SSH, but you cannot stop a Mac from sleeping remotely once it decides to. Set the power settings once on the machine itself.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;This guide first appeared on &lt;a href="https://macrun.dev/guides/claude-code-stops-when-mac-sleeps?ref=devto" rel="noopener noreferrer"&gt;macrun.dev&lt;/a&gt;. Full disclosure, I run MacRun, which rents dedicated Mac minis for builds and coding agents.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>claudecode</category>
      <category>ai</category>
      <category>macos</category>
      <category>productivity</category>
    </item>
    <item>
      <title>How to share an app you built with AI, just with your team</title>
      <dc:creator>Sohel Siddique</dc:creator>
      <pubDate>Mon, 26 Oct 2026 01:52:30 +0000</pubDate>
      <link>https://dev.to/teamonly/how-to-share-an-app-you-built-with-ai-just-with-your-team-2jj1</link>
      <guid>https://dev.to/teamonly/how-to-share-an-app-you-built-with-ai-just-with-your-team-2jj1</guid>
      <description>&lt;p&gt;Last updated 25 October 2026. Written by TeamOnly. We make one of the options below, so prices and limits link to each vendor's own pages.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Quick answer:&lt;/strong&gt; Put the app on a host that checks your company login before the app loads. Coworkers sign in with their work Google or Microsoft account, or a code sent to their work email, and nobody else gets in.&lt;/p&gt;

&lt;p&gt;Skip the public link with a password, and don't make everyone sign up for the tool you built it with. The rest of this page shows each option, the steps, and a five-point test for "private".&lt;/p&gt;

&lt;h2&gt;
  
  
  What are my options for sharing it privately?
&lt;/h2&gt;

&lt;p&gt;Here are the common routes, ours included. They differ in who can get in, whether coworkers need a new account, and how much you have to set up yourself.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Option&lt;/th&gt;
&lt;th&gt;Who gets in&lt;/th&gt;
&lt;th&gt;New account for coworkers?&lt;/th&gt;
&lt;th&gt;Database included&lt;/th&gt;
&lt;th&gt;Cost to make it private&lt;/th&gt;
&lt;th&gt;Best for&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Public host + password (Vercel, Netlify, Replit)&lt;/td&gt;
&lt;td&gt;Anyone who has the shared password&lt;/td&gt;
&lt;td&gt;No, just the password&lt;/td&gt;
&lt;td&gt;Not on Vercel or Netlify. Replit has one built in&lt;/td&gt;
&lt;td&gt;Vercel: $20/mo per project on Pro. Netlify: Pro plan, $20/mo&lt;/td&gt;
&lt;td&gt;A short demo for someone outside the company&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;The builder's private sharing (Lovable, Replit, Vercel Authentication)&lt;/td&gt;
&lt;td&gt;People with an account on that platform, in your workspace or invited&lt;/td&gt;
&lt;td&gt;Yes, on that platform&lt;/td&gt;
&lt;td&gt;Lovable and Replit: yes. Vercel: add one&lt;/td&gt;
&lt;td&gt;Lovable: Business plan, from $50/mo. Replit: Starter or Core and up. Vercel Authentication: free&lt;/td&gt;
&lt;td&gt;Teams where everyone already uses that platform&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Cloudflare Access (in front of your own host)&lt;/td&gt;
&lt;td&gt;Your company login or an emailed one-time PIN, once you set it up&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;No, it isn't a host&lt;/td&gt;
&lt;td&gt;Free to 50 users, then $7 per user a month, billed yearly&lt;/td&gt;
&lt;td&gt;Technical builders already running on Cloudflare&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Tailscale or a VPN (a private network)&lt;/td&gt;
&lt;td&gt;People connected to your private network&lt;/td&gt;
&lt;td&gt;Yes, everyone installs and signs in to the VPN app&lt;/td&gt;
&lt;td&gt;No, you run the server&lt;/td&gt;
&lt;td&gt;Depends on your VPN plan&lt;/td&gt;
&lt;td&gt;Companies where everyone already runs the VPN&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Internal tools platform (Retool and similar)&lt;/td&gt;
&lt;td&gt;Users you add to the platform&lt;/td&gt;
&lt;td&gt;Yes, a user seat&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Retool Team: $10 per builder and $5 per user a month, billed yearly&lt;/td&gt;
&lt;td&gt;Building in a visual builder instead of with code&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;strong&gt;TeamOnly&lt;/strong&gt; (a host with company login built in)&lt;/td&gt;
&lt;td&gt;Anyone at your company: work Google, work Microsoft or an emailed code&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Yes, one per app, plus file storage and secrets&lt;/td&gt;
&lt;td&gt;$19/mo for the builder. People who only use apps are free&lt;/td&gt;
&lt;td&gt;An app you built with Claude Code or Cursor that the team should use today&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Checked 25 October 2026. Sources: &lt;a href="https://vercel.com/docs/deployment-protection" rel="noopener noreferrer"&gt;Vercel Deployment Protection&lt;/a&gt;, &lt;a href="https://docs.netlify.com/manage/security/secure-access-to-sites/password-protection/" rel="noopener noreferrer"&gt;Netlify password protection&lt;/a&gt;, &lt;a href="https://docs.replit.com/cloud-services/deployments/private-deployments" rel="noopener noreferrer"&gt;Replit: who can access your app&lt;/a&gt;, &lt;a href="https://docs.lovable.dev/introduction/subscription-plans" rel="noopener noreferrer"&gt;Lovable plans&lt;/a&gt;, &lt;a href="https://www.cloudflare.com/zero-trust/products/access/" rel="noopener noreferrer"&gt;Cloudflare Access plans&lt;/a&gt;, &lt;a href="https://retool.com/pricing" rel="noopener noreferrer"&gt;Retool pricing&lt;/a&gt;. More detail: &lt;a href="https://teamonly.dev/compare?ref=devto" rel="noopener noreferrer"&gt;the full comparison&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  How do I share it with TeamOnly?
&lt;/h2&gt;

&lt;p&gt;Five steps, about ten minutes the first time. You need Node.js on your computer, which Claude Code and Cursor users already have.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Pick a plan with your work email.&lt;/strong&gt; Builder is $19 a month for one builder and up to three apps. Your company is set up when you pay, and your email domain becomes the door. &lt;a href="https://teamonly.dev/pricing?ref=devto#subscribe" rel="noopener noreferrer"&gt;https://teamonly.dev/pricing?ref=devto#subscribe&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Run &lt;code&gt;npx teamonly init&lt;/code&gt; in your project.&lt;/strong&gt; It adds instructions that Claude Code and Cursor read, plus the small library your app uses for the signed-in person, the database and files.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ask your AI tool for the app.&lt;/strong&gt; Plain English is fine: "Build an expense approval tool. People submit receipts, managers approve, finance marks them paid." The instructions keep it to a shape that runs on TeamOnly: a React front end and a small API.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Sign in once, then deploy.&lt;/strong&gt; Run &lt;code&gt;npx teamonly login&lt;/code&gt; the first time on your computer, then &lt;code&gt;npx teamonly deploy&lt;/code&gt;. You get a link like &lt;code&gt;expenses.acme.teamonly.app&lt;/code&gt;. The database, file storage and secrets are created on the first deploy.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Send the link.&lt;/strong&gt; Anyone at your company can open it. You can narrow it to named people with &lt;code&gt;npx teamonly access only dana@acme.com sam@acme.com&lt;/code&gt;.
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="gp"&gt;$&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;npx teamonly init
&lt;span class="go"&gt;✔ Added instructions for Claude Code and Cursor
&lt;/span&gt;&lt;span class="gp"&gt;$&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;npx teamonly login
&lt;span class="go"&gt;✔ Signed in as dana@acme.com
&lt;/span&gt;&lt;span class="gp"&gt;$&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;npx teamonly deploy
&lt;span class="go"&gt;✔ Live at https://expenses.acme.teamonly.app
  Only @acme.com accounts can sign in.
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You can also ask Claude Code or Cursor to run these for you. They ask before running anything. No Cloudflare account, no database service, no login code to write.&lt;/p&gt;

&lt;h2&gt;
  
  
  What will my coworker see?
&lt;/h2&gt;

&lt;p&gt;A sign-in screen with your company's name on it, then your app.&lt;/p&gt;

&lt;p&gt;They click "Sign in with Google" or "Sign in with Microsoft" and pick their work account, or type their work email and enter the 6-digit code we send. The app knows who they are by name. Next time, they are already signed in.&lt;/p&gt;

&lt;p&gt;Someone with a personal Gmail, or from another company, is turned away at that screen. Your app never loads for them. More: &lt;a href="https://teamonly.dev/company-login?ref=devto" rel="noopener noreferrer"&gt;company login&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why not just use a public link with a password?
&lt;/h2&gt;

&lt;p&gt;Most hosts are built for websites anyone can visit. Making one private for a team is an add-on, and it usually means a shared password.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;The password travels.&lt;/strong&gt; It ends up in a chat thread or an email to a contractor, and you can't tell who has it.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;It has no names.&lt;/strong&gt; If everyone logs in the same way, the app can't record who approved an expense.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;It doesn't leave with people.&lt;/strong&gt; Someone who leaves the company still knows it until you change it and tell everyone else.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Unlisted is not private.&lt;/strong&gt; A link nobody was told about still gets found, shared and sometimes indexed.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Vendor research: security company Red Access reported finding more than 380,000 publicly reachable assets on the main vibe-coding platforms. About 5,000 looked like company tools, and more than 2,000 of those held sensitive business or personal data. &lt;a href="https://thehackernews.com/2026/05/what-2000-exposed-vibe-coded-apps.html" rel="noopener noreferrer"&gt;Summary on The Hacker News&lt;/a&gt; (a contributed article, May 2026).&lt;/p&gt;

&lt;h2&gt;
  
  
  What does "private" have to mean for a work app?
&lt;/h2&gt;

&lt;p&gt;Whatever you choose, check these five things. Each one takes a minute.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;The login comes before the app.&lt;/strong&gt; Nobody sees a single screen of the app, or gets any data out of it, until they have signed in. A page that loads first and then asks for a login is not private. &lt;em&gt;How to check:&lt;/em&gt; open the link in a private browser window. You should land on a sign-in screen. Try an address from the app's API too, like &lt;code&gt;/api/expenses&lt;/code&gt;. It should refuse you.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Only company accounts get in.&lt;/strong&gt; People sign in with an account your company controls, and the email domain is checked on the server. Personal accounts are turned away. &lt;em&gt;How to check:&lt;/em&gt; try signing in with a personal Gmail or Outlook address. You should be refused.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Each app's data is kept apart.&lt;/strong&gt; The app has its own database, files and keys. Another app, or a stranger with the database address, can't read them. &lt;em&gt;How to check:&lt;/em&gt; ask whether anyone could reach the database without going through the app's login. With Supabase, check that row-level security is on for every table. Make sure no keys are written into the code.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;It doesn't show up in search.&lt;/strong&gt; Search engines are told not to list the app, and they can't see inside it anyway. &lt;em&gt;How to check:&lt;/em&gt; search for the app's address in Google. Check the response for a &lt;code&gt;noindex&lt;/code&gt; header.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Access ends when someone leaves.&lt;/strong&gt; When a person leaves the company, they lose access without you doing anything special, and nobody needs a new password. &lt;em&gt;How to check:&lt;/em&gt; if this person's work account were turned off today, could they still get in tomorrow? With a shared password, the answer is yes.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;With TeamOnly&lt;/strong&gt;, all five are handled for you. Sign-in is checked before any app code runs, on every request. Personal addresses are refused. Each app gets its own database, file storage and secrets. Every response says &lt;code&gt;noindex&lt;/code&gt;. Sign-in goes through the work account, so when it is turned off, new sign-ins stop; a session lasts at most 7 days, and taking someone off an app's list works on their next click. More: &lt;a href="https://teamonly.dev/security?ref=devto" rel="noopener noreferrer"&gt;security details&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  I built it in Lovable, Bolt, Replit or v0. Can I still do this?
&lt;/h2&gt;

&lt;p&gt;Start with the platform's own private sharing. If everyone on your team already has an account there, it may be all you need: Lovable's Business plan can limit a published app to your workspace, and Replit can publish to your workspace or to invited people.&lt;/p&gt;

&lt;p&gt;If your coworkers don't have accounts there, export the code. TeamOnly runs a React front end with a small JavaScript or TypeScript API. Apps that rely on Supabase for login and tables, or on Next.js server features, need changes first. Python apps can't run here. Email &lt;a href="mailto:hello@teamonly.dev"&gt;hello@teamonly.dev&lt;/a&gt; with what you have and we will tell you straight.&lt;/p&gt;

&lt;h2&gt;
  
  
  I built it in Claude Code or Cursor. What changes?
&lt;/h2&gt;

&lt;p&gt;Very little. Run &lt;code&gt;npx teamonly init&lt;/code&gt; in the project and ask your AI tool to fit the app to TeamOnly. It reads the instructions and uses our login, database and files instead of reaching for services we don't run.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://teamonly.dev/claude-code?ref=devto" rel="noopener noreferrer"&gt;Claude Code guide&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://teamonly.dev/cursor?ref=devto" rel="noopener noreferrer"&gt;Cursor guide&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://teamonly.dev/templates?ref=devto" rel="noopener noreferrer"&gt;Templates to start from&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Questions people ask
&lt;/h2&gt;

&lt;h3&gt;
  
  
  How do I share an app I made with Claude Code with my coworkers?
&lt;/h3&gt;

&lt;p&gt;Host it somewhere that checks your company login before the app loads, then send the link. With TeamOnly that is &lt;code&gt;npx teamonly init&lt;/code&gt;, &lt;code&gt;npx teamonly login&lt;/code&gt; and &lt;code&gt;npx teamonly deploy&lt;/code&gt;. Coworkers open the link and sign in with their work Google or Microsoft account, or a code sent to their work email.&lt;/p&gt;

&lt;h3&gt;
  
  
  How do I keep a vibe-coded app private without putting it on the internet?
&lt;/h3&gt;

&lt;p&gt;Every web app is on the internet in the sense that it has an address. What matters is that nobody can use it, or read its data, without signing in with a company account first. A shared password or an unlisted link does not do that. A login in front of the app does.&lt;/p&gt;

&lt;h3&gt;
  
  
  Do my coworkers need an account to use it?
&lt;/h3&gt;

&lt;p&gt;It depends on where you host it. Private sharing on Lovable, Replit or Vercel needs an account on that platform. Cloudflare Access and TeamOnly use the work account people already have. On TeamOnly, people who only use apps are free.&lt;/p&gt;

&lt;h3&gt;
  
  
  Is a password on a Vercel or Netlify site good enough for a team?
&lt;/h3&gt;

&lt;p&gt;For a short demo, maybe. For a tool people use every day, no. The password gets passed around, the app can't tell who did what, and someone who leaves still knows it. It also costs extra: $20 a month per project on Vercel Pro, and a Pro plan on Netlify, as of October 2026.&lt;/p&gt;

&lt;h3&gt;
  
  
  Can I run it on my laptop and share the link?
&lt;/h3&gt;

&lt;p&gt;With a tunnel tool you can, but the app is off whenever your laptop is asleep, and the data lives on your machine. It is fine for showing someone a draft. For a tool the team depends on, put it on a host.&lt;/p&gt;

&lt;h3&gt;
  
  
  Is Cloudflare Access enough to protect an AI-built internal app?
&lt;/h3&gt;

&lt;p&gt;It is a strong login gate, free for up to 50 users. You still need to host the app, pick a database, connect an identity provider and write a policy for each app. If you are comfortable doing that, it is a good choice. &lt;a href="https://teamonly.dev/compare/cloudflare-access?ref=devto" rel="noopener noreferrer"&gt;TeamOnly vs Cloudflare Access&lt;/a&gt; goes through it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Keep reading
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://teamonly.dev/compare/cloudflare-access?ref=devto" rel="noopener noreferrer"&gt;TeamOnly vs Cloudflare Access&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://teamonly.dev/compare?ref=devto" rel="noopener noreferrer"&gt;Every option, side by side&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://teamonly.dev/company-login?ref=devto" rel="noopener noreferrer"&gt;Company-only login&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://teamonly.dev/how-it-works?ref=devto" rel="noopener noreferrer"&gt;How it works&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://teamonly.dev/pricing?ref=devto" rel="noopener noreferrer"&gt;Pricing&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Get started: &lt;a href="https://teamonly.dev/pricing?ref=devto#subscribe" rel="noopener noreferrer"&gt;https://teamonly.dev/pricing?ref=devto#subscribe&lt;/a&gt; (Builder $19/mo, Team $249/mo)&lt;br&gt;
Not ready? Get updates: &lt;a href="https://teamonly.dev/waitlist?ref=devto" rel="noopener noreferrer"&gt;https://teamonly.dev/waitlist?ref=devto&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>webdev</category>
      <category>productivity</category>
      <category>security</category>
    </item>
  </channel>
</rss>
