Deel sells legal presence. Its employer-of-record service hires people through Deel's own companies in well over a hundred countries, runs local payroll and benefits and carries the liability, and the contractor plan sits on payment rails and compliance checks in each of those markets. None of that comes out of a coding session. What you can build is the paperwork around a handful of freelancers abroad: contracts, invoices, approvals and payouts prepared in Wise, which is all some small teams ever used Deel for.
Before you buildDeel has no free plan. If you pay only a few freelancers abroad, their own invoices and a Wise Business account may already cover it; the build adds the paperwork around that.
Build me a contractor payments desk for a small company paying a few freelancers abroad: the part of Deel that needs no legal entity. Requirements: - Node.js 22 + TypeScript: a Fastify API and a React (Vite) front end on http://127.0.0.1:4950. better-sqlite3 at ./data/contractors.db, files in ./data/files/. - Contractors: name, country, tax residence, currency, rate type (fixed monthly, hourly, milestone), payout details, start and end dates, status. - Contracts: fill a Markdown template from ./templates/ with the contractor's data, render it to PDF with Playwright, and store the signed copy I upload with its SHA-256 hash. - Invoices: on the 1st, create a draft for every fixed-rate contractor; I add hourly and milestone ones. Approve, reject with a note, or mark paid. - Payouts through the Wise API (WISE_API_TOKEN and profile id in .env, sandbox unless WISE_ENV=live): for each approved invoice create a quote and a transfer, then stop. I fund transfers in Wise myself; the app never does. - Record the quoted rate, fee and amount received for every payment. - Documents per contractor (W-8BEN or W-9 for a US company, or the local equivalent) with an expiry date and a reminder 30 days before. - Exports: payments per contractor per year as CSV, and a yearly statement PDF. - No accounts, no telemetry, local-first. - Out of scope: employing anyone (EOR), payroll, benefits, and deciding whether someone counts as a contractor under local law. - README: Wise sandbox setup (budget an hour for the business account and API token), backups, and a warning that misclassification risk stays with me.
Opens your agent with the prompt filled in, you press enter. Or copy it and paste it into an empty folder.
The first prompt builds the core. Run these one at a time in the same folder to grow it into your own Deel.
Add a contractor upload page to the payments desk in this folder. Requirements: - Each contractor gets a private link with a random token (stored hashed). - On that page they upload a PDF invoice and enter number, period and amount; it lands as a draft for my approval. - Serve the page on a separate port that exposes only these routes, meant to sit behind a Cloudflare Tunnel. - Rate-limit uploads, accept PDFs only, max 10 MB. - Update the README with the tunnel setup.
Add email reminders to the payments desk in this folder. Requirements: - Send through Resend (RESEND_API_KEY and my address in .env). - On the 3rd of each month, email me a list of drafts waiting for approval and approved invoices without a Wise transfer. - Email a contractor when their invoice is approved or rejected, with my note. - A --dry-run flag prints the emails instead of sending. - Update the README.
Add a year-end export to the payments desk in this folder. Requirements: - For a chosen year, write ./exports/YYYY/ with: one CSV of every payment (date, contractor, country, invoice, amount sent, currency, fee, rate), each contractor's statement PDF, and their tax documents on file. - List contractors whose tax documents expired during the year. - Zip the folder and print its path. - Update the README.
Companies use Deel because it lets them hire in a new country this month instead of setting up a company there, and because one invoice covers people paid in dozens of currencies. The contracts and compliance checks are the part founders can't judge on their own. Complaints center on support during payment problems and on fees and currency costs, but for employer-of-record hires a small team has few cheaper options.
Estimate · The app runs locally for free. Wise charges a fee per transfer that depends on the currency, shown in each quote, instead of a monthly fee per contractor. The build is token usage on your agent plan.
| Plan | Monthly | Annual, per month | What you get |
|---|---|---|---|
| Contractors | $49 | — | Contractor contracts, automated invoicing, payments in 120+ currencies, tax form collection and classification guidance. |
| Contractor of Record | $325 | — | Deel engages the contractor and takes on the misclassification liability. |
| Employer of Record (EOR) | $599 | — | Employs people through Deel's own entities abroad, with payroll, benefits, filings and HR support. |
| US PEO | $125 | — | Co-employment in all 50 US states with benefits. |
| Global Payroll | $29 | — | Payroll in countries where you already have your own entity. |
| Deel HR Core | $5 | — | Worker profiles, org chart, time off, documents and reporting. |
Not really. Companies use Deel because it lets them hire in a new country this month instead of setting up a company there, and because one invoice covers people paid in dozens of currencies. The contracts and compliance checks are the part founders can't judge on their own. Complaints center on support during payment problems and on fees and currency costs, but for employer-of-record hires a small team has few cheaper options. The prompt on this page builds the closest honest substitute.
About $49 a month on the Contractors plan per seat, $588 a year (checked 2026-10-13).
Employing people abroad without your own local company (EOR); Locally compliant contracts and classification checks per country; Payroll, benefits and tax filings in each country; Contractors choosing their own payout method and currency; Someone else carrying misclassification risk. If any of those matter to you, keep paying.
Yes: Documenso (open source), Frappe HR (open source).