for builders

Ship on
devys.

devys is a real marketplace — buyers pay real money, so nothing broken or unsafe reaches them. Every upload passes two automatic checks in seconds. Here's exactly how to package your app so it clears both on the first try.

Two checks. Zero broken apps.

When you upload, devys runs both of these before your app can go live. Pass → it's listed instantly. Fail → you get the exact reason, so you fix it and re-submit.

Check 1 · Safe

The security scan

A deep scan of every file — it unpacks archives layer by layer and blocks anything dangerous.

  • No compiled binaries or installers
  • No droppers, miners, reverse shells or wallet/crypto code
  • No hidden or disguised files
  • Family-friendly, digital-only
Check 2 · Works

The functional check

Confirms your upload is a complete, runnable app — not a broken folder with missing pieces.

  • Has a real entry point (index.html)
  • Every file it references is actually included
  • No dead links to missing assets
  • Runs on its own — no server or CDN required
Pass both and you're live. That's the whole bar.
Two ways to ship

devys sells more than browser toys. Pick your platform when you list, and the right path applies automatically.

Platform · Web

A web app

Runs right in the buyer's Library, in a locked sandbox — no install. A single .html or a .zip with an index.html.

  • Passes Safe + Works + an in-browser run-test
  • Buyers open it on any device, phone included
  • Best for tools, games, toys, generators
Platform · Desktop / CLI / …

Downloadable software

Source code, scripts, CLI tools, or a whole project .zip the buyer downloads and runs themselves. Set your platform to anything other than Web.

  • No browser entry point or run-test needed
  • Still deep malware-scanned — every file is read
  • Compiled binaries/installers (.exe/.apk/.dmg) can't be verified, so ship the source instead
Test it before you list it

Drop your .zip (or a single .html) and we'll run the real security + completeness checks right here — no account needed. The final run-test happens when you upload to a listing.

Drop your app hereor click to choose a .zip / .html
↓ or start from our template (a store-ready .zip)
Stuck? Every rejection, and the fix

If an upload gets bounced, you'll always see the exact reason. Here's what each one means and the one thing to change — in plain English. Almost every rejection is a missing file or an external link.

“references something but that file isn't in the package”
Your app points at a file that isn't in the folder — a script, image, font, or stylesheet. Either add that file to the zip, or inline it (paste the CSS into a <style> tag and the JS into a <script> tag right in index.html). Inlining everything into one .html is the surest fix — then there's nothing left to miss.
“Not a complete app / no entry point”
The checker couldn't find the page to open. Put an index.html at the root of your zip (not inside a subfolder), or just upload the single .html file on its own.
“It uploaded but didn't run cleanly”
Your app loaded but threw a JavaScript error or came up blank. Open it in your own browser, hit F12 → Console, and fix whatever's red. Common causes: a typo, or a reference to a file/URL that isn't there.
“Blocked by the security scan — executable / installer / script”
There's a .exe, .dll, .sh, .bat, or similar in your upload. devys only distributes things that run safely in the browser. Remove it and ship web files only (.html, .js, .css, images).
“Native packages can't be distributed” (.apk / .ipa / .exe / .dmg)
A compiled mobile or desktop app can't be safety-scanned or test-run, so we don't sell it. Ship a web build instead — buyers on any device, phone included, run it right from their Library, no install.
“Encrypted / password-protected archive”
We can't look inside a locked zip, so we can't clear it. Re-zip without a password and upload again.
“Upload is too big”
One upload maxes at 30MB. Trim it: compress images, shorten a demo video, or add extra screenshots one at a time from Manage after the app is listed.
How safe is it, really?

A fair thing to wonder — you're running strangers' code. Here's precisely what protects you, as a buyer and as a builder.

For buyers

It can't touch your device

Every app runs inside a locked browser sandbox with its own isolated identity. It can't read your files, your other tabs, your accounts, or your devys login — and it has no way to phone anything home.

  • Deep-scanned + unpacked before it's ever listed
  • No executables, miners, or credential/wallet code
  • Isolated origin — it can't see the rest of the page
  • Runs the same whether you open or download it
For builders

Your code stays yours

Paid apps are never exposed for free — only buyers get the file, through a private, expiring link. Free apps can be previewed live; paid ones only ever show the cover you choose.

  • Sellable files live in a private bucket, not on the page
  • Buyers reach them only through signed, short-lived links
  • You keep authorship; refunds reverse cleanly via Stripe
  • Update once — every owner gets the new version
The checklist

Six things. Tick them all and your app sails through.

Store-ready in 6 steps

This is what the automatic checks look for.
One self-contained folder with an index.html at its rootIt should run by double-clicking index.html — no build step, no install.
Include every file it referencesScripts, styles, images, fonts — all in the folder. When in doubt, inline your CSS & JS into index.html.
Works fully offlineNo calls to a backend, API, or external CDN. If you use a library, bundle a local copy — don't <script src="https://…">.
100% client-sideNo .exe/.dmg/.sh, no installers, nothing that touches the user's files or system.
Family-friendly & digital-onlyNo adult content, no physical/shippable goods.
A short README.txtOne line on what it does, one line on how to run it.
The shortcut: let your AI package it

Vibe-coded it with an AI? Paste this prompt with your app and it'll hand you a folder that passes both checks. Copy it, drop your code in at the bottom, done.

store-ready.prompt
# Paste this into your AI (Claude, ChatGPT, Cursor…) along with your app.

You are packaging a web app to sell on the devys marketplace.
It must pass TWO automated checks or it can't be listed:
  • SAFE  — a deep security scan: no executables, installers, obfuscated
           code, trackers, or crypto/wallet code, and nothing that touches
           the user's files or system.
  • WORKS — a functional check that opens the app and confirms it actually
           runs, with every file it needs included.

Package my app so it passes 100%. Follow these rules exactly:

1. Ship ONE self-contained folder with an `index.html` at its root that
   runs by double-clicking it — no build step, no install, no server.
2. Include EVERY file the app references (JS, CSS, images, fonts). Nothing
   missing, no broken links. When in doubt, INLINE the CSS and JS into
   index.html.
3. Work fully OFFLINE. No calls to a backend, API, or external CDN. If you
   use a library, bundle a local copy — never <script src="https://…">.
4. 100% client-side. No executables (.exe/.dmg/.sh), no installers, and no
   code that reads or writes the user's files.
5. Family-friendly and digital-only. No adult content.
6. Add a short `README.txt`: what it does + "open index.html in a browser".

Then output the final file tree and the full contents of every file,
ready for me to zip and upload.

Here is my app:
[paste your code, or describe what you want it to do]
What happens when you upload
1
You drop the zip

Attach your app folder to a listing in the app and hit publish.

2
Both checks run

Security + functional, in seconds. We open it, resolve every asset, and confirm it runs.

3
Live — or a clear fix

Pass and it's listed. Fail and you get the exact reason, e.g. index.html references app.js but that file isn't in the package.

Build the weird thing.
We'll make sure it works.
Start a drop