For people who build websites and web apps
Build and ship your website from your phone.
NomaDev runs Claude Code on the computer where your sites live, and leaves the decisions to you, on your phone: read the changes it made, approve them, commit, and publish to your server. Even when you're not at your desk.
7 days freeEvery feature, no card. They start when you connect your phone.
WordPress · Laravel · Symfony · Nuxt · Next.js · Astro · plain HTML — any site that lives in a folder and goes onto a server.
Coming to Google Play · 7-day free trial · cancel anytime
Let me look at the cart calculation and its tests, then fix the rounding.
Read src/cart/total.ts Read src/cart/total.test.tsClaude is working
Read total.ts Read total.test.ts Edit total.ts · +2 −1 Write total.test.tsPermission request
Bash
Changes · 2 files
Commit message
Uploading · production
Tailscale · direct, never through us
One full round
Claude writes the code. You make the decisions.
No change is applied before you've seen it. Green is what Claude has already done; amber is what's waiting for an answer from you.
done by Claudeyour turn
-
1 · Ask
Type or dictate what you need. Watch the files it opens, live.
-
2 · Allow
Every command waits for your yes. You get a notification.
-
3 · Check
Lines added and removed, file by file. Keep or undo.
-
4 · Publish
Commit, push and upload to your server in one tap.
Say what you need
Type it or dictate it. If you have Claude skills installed on that computer, the app finds them and you pick one from a list.
Follow the work live
You see the files it opens, the commands it runs, the tests it launches. When it finishes, or stops on a question, you get a notification.
You allow the commands
Before running a command, Claude shows it to you and waits for your answer. Nothing runs just because you were away from your desk.
You check every change
You see the lines added and removed, file by file, in colour. If a change doesn't convince you, you undo it from your phone.
Git works as usual
Switch branch, commit, open pull requests, resolve conflicts. All from your phone, without opening the laptop.
Put the site online
First you run the site locally to check it, then you upload the files to your web server with one tap.
Publishing
You upload only the files you meant to upload.
For each server you save the address, the destination folder and the list of what must never leave. The rules are written the way you already write them in .gitignore: node_modules, *.log, /dist. Excluded files stay put, and the check happens before the connection to the server is even opened. If you use JetBrains, you can import the setup you already have with one tap.
SFTP, FTP or FTPS
Use the protocol your hosting offers. With SFTP you can use the SSH key already on your computer, or a password.
One file or the whole site
Upload the single file you just fixed, or run the full upload to a destination.
Check it before it goes live
Run the site locally with the live preview, then publish when it looks right.
Included in Studio
Publishing online is part of the Studio level, and you can try it free for the first seven days.
Terminal
And when you need to, you step into the server.
A real SSH terminal inside the app: restart a service, read a log or run a migration on the server you just published to, without another app. The servers you publish to are already there, and you can add more, for one project or for all of them.
How we protect keys and sessionsThe keys your phone is missing
Above the keyboard you get Esc, Tab, Ctrl, Alt and the arrows. Ctrl and Alt apply to the next key, and a double tap locks them. vim and htop work too.
Sessions that don't close on their own
Up to five sessions, in tabs. Switch to another app or lock the screen and they stay open; when you come back everything is there, output included. You close them, or they close after the time you choose.
Straight from the phone
The SSH connection goes from the phone straight to the server: it doesn't pass through your computer or through us. It works even with your computer switched off.
Included in Studio
The terminal is part of the Studio level, together with online publishing, and you can try it free for the first seven days.
Security
Your code stays on your computer.
NomaDev is built so that your work never has to pass through us. Here is what that means in practice.
Phone and computer talk directly, over Tailscale or HTTPS. None of our servers sits in between.
| Data | Your computer | Your phone | Our servers |
|---|---|---|---|
| Code and projects | Yes | No | No |
| Claude Code and git | Yes | No | No |
| SSH keys | Yes | Yes | No |
| FTP and SFTP passwords | No | Yes | No |
| Access key to your computer | No | Yes | No |
| Notification token | No | Yes | Yes |
Your projects stay home
The server runs on your machine and your phone connects to it directly, over Tailscale or HTTPS. There is no server of ours in between.
Passwords stay on your phone
FTP, SFTP and SSH passwords and key passphrases are kept only in your phone's Android Keystore. For an upload your computer uses them in memory and never writes them to disk; the terminal's never even pass through your computer.
SSH keys only move if you ask
To publish, the server uses the keys already on your computer, and they stay there. The terminal's keys live on the phone, encrypted and protected by fingerprint or PIN: a key from your computer reaches the phone only if you ask, once, over an encrypted connection.
Only phones you allow
Connecting a phone takes a single-use code or the QR shown on your computer. Only a fingerprint of each phone's token is stored, and you can disconnect any phone.
Nothing open without a key
Every request needs the phone's token; live connections and the site preview use single-use tickets. NomaDev remembers each FTPS or SFTP server's fingerprint and warns you if it changes.
What our servers keep
Only the notification relay, which stores your phone’s notification token. It never receives code, text, passwords or keys. Usage statistics start only if you accept them, go to Google Analytics and never contain code or project data.
Claude Code sends Anthropic what it needs to work on your code, with your own subscription — exactly as in a terminal. NomaDev doesn't change that.
Getting started
Three steps to get going.
-
Install the server where you keep your sites
One command, on Windows, macOS, Linux or a VPS. It installs what's needed, prepares the configuration, makes the server start on its own, and shows you the code to connect your phone.
-
Connect your phone
Scan the QR code that opens on your computer, or type its address and code. The app then checks everything is there — git, Claude Code, SSH keys, the connection — and if something is missing it tells you the exact command to run.
-
Add a project and ask
Point it at the project folder and write what you want done. Your first commit from a phone takes about a minute.
Download
Get NomaDev.
Two pieces: the Android app on your phone, and the server on the computer where your projects live.
The Android app
Install it from Google Play. The 7-day trial starts when you connect your first phone, no card needed.
7 days free
Install the server on your computer
Pick your system. Run it as your normal user, not with sudo: it asks before installing anything that's missing, and asks for your password only when it has to install system packages.
Windows
In PowerShell, as your normal user:
irm https://nomadev.app/install.ps1 | iex
Download the script · install.ps1
Or run the downloaded file: powershell -ExecutionPolicy Bypass -File install.ps1
To see what it would do without changing anything: $env:NOMADEV_PROVA=1; irm https://nomadev.app/install.ps1 | iex; Remove-Item Env:NOMADEV_PROVA
macOS
In Terminal:
curl -fsSL https://nomadev.app/install.sh | bash
Download the script · install.sh
Or run the downloaded file: bash install.sh
To see what it would do without changing anything: curl -fsSL https://nomadev.app/install.sh | bash -s -- --prova
Linux
In a terminal, as your user (not with sudo):
curl -fsSL https://nomadev.app/install.sh | bash
Download the script · install.sh
Or run the downloaded file: bash install.sh
To see what it would do without changing anything: curl -fsSL https://nomadev.app/install.sh | bash -s -- --prova
VPS
Over SSH, as the user the server will run as:
curl -fsSL https://nomadev.app/install.sh | bash -s -- --vps
Download the script · install.sh
Or run the downloaded file: bash install.sh --vps
To see what it would do without changing anything: curl -fsSL https://nomadev.app/install.sh | bash -s -- --vps --prova
Running it again is safe: it skips what's already there and keeps your configuration.
Pricing
Start free, pay for what you need.
Free stays free forever. The seven-day trial gives you all of Studio, starting when you connect your first phone. Pro and Studio are paid through Google Play: change plan or cancel there in two taps.
7 days freeAll of Studio, no card. They start when you connect your phone.
Free
Free Free
Chat with Claude, approvals, files and changes, from your phone. Free, forever.
Pro
€7 / month €59 / year
about 3½ months free
Everything in Free, plus site preview, file editing, voice, attachments and the full git workflow: branches, sync, history and GitHub pull requests.
Studio
Recommended
€10 / month €85 / year
about 3½ months free
Everything in Pro, plus publishing to your web server over SFTP, FTP or FTPS and an SSH terminal to your servers.
What each level includes
| Feature | Free | Pro | Studio |
|---|---|---|---|
| Chat and sessions, approvals, Claude's questions | Included | Included | Included |
| Files: browse and search; mockups and documents | Included | Included | Included |
| Changes: diff of changed files, undo a file | Included | Included | Included |
| Git status: current branch, changed files | Included | Included | Included |
| Live site preview | Not included | Included | Included |
| Edit files from your phone | Not included | Included | Included |
| Dictation and attachments | Not included | Included | Included |
| Branches: pick one at session start, switch, view files at a branch or commit | Not included | Included | Included |
| Sync with the remote, merge, undo a merge | Not included | Included | Included |
| History: commits, commit details, history of a file | Not included | Included | Included |
| GitHub: open pull request in the git status, merge the PR | Not included | Included | Included |
| Publish online over SFTP, FTP or FTPS | Not included | Not included | Included |
| SSH terminal to your servers | Not included | Not included | Included |
7-day trial of Studio, no card needed: it starts when you connect your phone.
You also need your own Claude subscription: the Max plan, the one that includes Claude Code. You pay that to Anthropic, not to us.
Roadmap
The next stops.
What we're working on, in the order it will arrive. No dates: each one ships when it's ready.
-
Today
Android and Claude Code
The Android app that drives Claude Code on your computer: chat, approvals, git, preview, publishing and SSH terminal.
-
Next
iPhone app
The same app on iPhone and iPad too, with the same server on your computer.
-
After that
Codex too
Besides Claude Code, you'll be able to put OpenAI's Codex to work on your projects and pick it project by project, with the same approvals from your phone.
-
Further on
Docker projects
For sites that run in containers: start and stop docker compose services, read the logs and open the preview, all from your phone.
Missing something? Write to us: we shape this list together with the people who use NomaDev. nomadev@estroverso.com
Questions
The most common questions.
Does my code pass through your servers?
No. Your phone connects straight to the computer where you installed NomaDev, and your code never passes through us. The only service we run forwards notifications to your phone: it receives the kind of notification, the project name and an identifier, never code or text. Claude Code, on the other hand, sends Anthropic what it needs to work on your code — exactly as it does in a terminal, with your own subscription.
Do I need a Claude subscription?
Yes. NomaDev uses the Claude Code already installed on your computer, with your account. When you connect your phone, the app checks whether it can find it and whether you've signed in, and tells you.
Which level do I need?
Free if you mostly talk to Claude and review changes. Pro if you also want to see the site, edit files and work with branches, sync and pull requests. Studio if you publish sites to a web server over SFTP, FTP or FTPS, or want an SSH terminal on your servers.
Can I open a terminal on my servers?
Yes, with Studio: a real SSH terminal, with Esc, Ctrl and arrows, to the servers you publish to and the ones you add. It connects from the phone straight to the server, and sessions stay open even when you switch apps.
What kind of projects does it work with?
Any website or web app that lives in a folder and gets published to a server: WordPress, Laravel, Symfony, Nuxt, Next.js, Astro, plain HTML. If you can build it on your computer and upload it, it works.
Which systems can run the server?
Windows, macOS, Linux or a VPS. The app is for Android. At home your phone reaches the computer over Tailscale; with a VPS, over your own domain with HTTPS.
What happens when my computer is off?
Nothing happens, because the work is done by your computer and not by a service of ours. If you need it always available, install the server on a VPS, which stays on.
What happens when the trial ends?
You move to Free: chat with Claude, files, git status, diffs and undoing changes stay, and the app doesn't lock. Preview, file editing, voice, attachments, branches, sync, commit history and pull requests come back with Pro, and publishing with Studio, when you pick a level on Google Play. Nothing is deleted on your computer.
Is there an iPhone version?
Not yet: Android only for now. The app is built with Capacitor, so an iPhone version is possible — a matter of time, not of rewriting it from scratch.
What if I lose my phone?
Disconnect it from another connected phone, in Settings: from that moment it can no longer connect. If the app was open, also restart the server, which closes the connection it already had.