Containers & Developers

Nesly Serverless Platform

Push your code and go live in Istanbul without setting up a server

Nesly detects your project, builds it and serves it at its own address over HTTPS, with databases, domains and preview environments a few commands away. Your apps and data run in Istanbul, on infrastructure Nesnet operates.

git pushconnected branchnesly deployCLI · MCP agentNesly platformBuildstack detected · DockerfileDeploypreview address per PRYour appsleeps when idle · wakes on requestDatabase addon · environment variablePostgreSQL · MySQL · MongoDBEarlier deployments · instant rollbackVisitor requestyour domain · HTTPS

Why now

  • On a three-person team, one day a week goes to server updates, certificate renewals and backup checks. On Nesly, builds, addresses, HTTPS and nightly backups are already handled, and that day goes back to the product.
  • Your users' data has to stay in Türkiye, yet the push-to-deploy experience you are used to lives on platforms abroad. Nesly brings the same workflow to infrastructure in Istanbul.
  • Your .NET application depends on SQL Server and you need one platform to host both. Nesly offers managed SQL Server alongside PostgreSQL.
  • You want to see every change running before it goes live, but the shared test server is always busy with someone else's work. On Nesly every pull request gets a preview at its own address.
  • You want an AI agent to handle deployments, but it gets lost in piles of logs. Nesly's MCP server and JSON-output CLI were designed for an agent to read directly.

What changes

TodayWith Nesnet
Servers are set up, operating systems patched and certificates renewed by hand.You push, and the build, address and HTTPS certificate arrive from the platform.
Changes queue up for a turn on a shared test server.Every pull request gets a preview at its own address, posted as a comment on the PR.
Backing out a bad release means rebuilding and waiting.One command switches traffic to the previous deployment, with nothing rebuilt.
The database is set up separately and backed up when someone remembers.The database attaches with one command and is copied automatically every night.
You pay every month for a server that sits idle.An app with no traffic is paused, and you never pay for an idle server.

From today to live: how it works

  1. 1

    Account and project

    Open your account and project on nesly.net, either in the console or with the CLI installed through a package manager. The project gets its own address the moment it is created.

  2. 2

    Connecting your code

    Connect your GitHub repository to a branch, or run nesly deploy in the project directory; the language and framework are detected from your files.

  3. 3

    First release and previews

    A push to the connected branch goes to production, and every pull request gets its own preview address. If something breaks, one command switches traffic back to the previous deployment.

  4. 4

    Add-ons and domain

    Attach a database or bucket the moment you need one, verify your domain with its DNS records, and the HTTPS certificate arrives on its own.

  5. 5

    Team

    Invite teammates with the right role; viewers never see secret values.

What you get

  • Deploy on push, preview on pull request

    Every push to the GitHub branch you choose goes to production. Each pull request gets a preview at its own address, the address is posted as a comment on the PR and the preview is removed automatically when the PR closes.

  • Previews only your team can see

    Preview addresses can be password-protected, so you try an unreleased feature as a team without showing it to customers or search engines. A separate bypass token is issued for your automated tests.

  • Builds that recognise your project

    Node.js, Python, Go, .NET, Ruby, PHP and Java projects are detected from your files, with the package manager taken from your lockfile and the Node version from engines.node or .nvmrc. When you need settings, nesly.toml defines the root directory, build command and output directory, and monorepos are supported.

  • Your front end live as a static site

    Vite, Astro, SvelteKit, Angular or exported Next.js projects are built and served as static sites. If there is a Dockerfile at the root, Nesly uses it, so a custom runtime is always an option.

  • Databases and storage in one command

    PostgreSQL, MySQL, SQL Server, MongoDB, Redis-compatible Valkey, S3-compatible buckets and OpenID Connect clients attach as add-ons. Connection details arrive as environment variables such as DATABASE_URL, and add-ons have no public address; your app reaches them over the private network.

  • Instant rollback

    When a release misbehaves, traffic switches back to the previous deployment without rebuilding anything. Rolling back takes one command or one click in the console and never waits in a build queue, so customers do not stare at the error for minutes.

  • Your own domain with automatic HTTPS

    You verify your domain with a CNAME and a TXT record, or an A record for the apex. The certificate is issued and renewed automatically, and the project's default address keeps working alongside it.

  • Buy your domain here too

    Search for, buy and delegate a domain for a new project from the CLI or through your agent. Domain, DNS record and certificate sit in one place, so you never bounce between three providers' dashboards.

  • Automatic nightly backups

    Your database is copied automatically every night, you can take a manual backup whenever you like, and a safety copy is taken right before every restore. Backups can be downloaded as a PostgreSQL custom-format archive or a SQL Server .bak file.

  • Deleted data does not vanish at once

    If you delete a database add-on by mistake, the data is not dropped on the spot; access is cut first and the data is removed only at the end of a recovery window. Within that window you can ask for it to be brought back.

  • Role-based team access

    Team members join as owner, admin, member or viewer, and roles are enforced on the server for every API call. A viewer can see the name of an environment variable but never its value.

  • Scheduled jobs and one-off commands

    You can define cron jobs and run one-off commands such as migrations with nesly run. Logs are readable in the console, can be shipped out through a log drain, and events are announced by webhook.

  • Minimal GitHub permissions

    Nesly asks GitHub only to read contents and metadata and to write commit statuses and PR comments. Build tokens expire within an hour, no personal token is stored, and pull requests from forks are not built so your environment variables are never handed to outside code.

  • Let your agent tell you what broke

    Your agent deploys over a local or remote MCP server. When a build fails, nesly diagnose returns the cause, the log lines that prove it and the fix command, and the agent applies the fix and redeploys.

  • Apps that sleep when idle

    An app that receives no traffic is paused, and the first request wakes it within a few seconds, so you never pay for an idle server. For apps that must never keep a visitor waiting, there is an always-on option.

  • Every pushed image is scanned

    The built image goes to a private registry only the platform can reach and is scanned for vulnerabilities the moment it lands. Secrets in environment variables are encrypted, with the key held in a separate vault rather than next to the data.

  • Valkey with guard rails between projects

    On Valkey each project has to use its own prefixed keys, and dangerous commands such as FLUSHALL are refused. When the server fills up, another project's data is never evicted; new writes return an error instead.

  • Your site stays up when your allowance runs out

    You get an email when usage reaches 80 percent and again at 100 percent of your plan allowance. When the allowance runs out, your running site stays live and only a new build, project or domain has to wait until the allowance renews.

Why Nesnet

  • Nesnet's own product

    Nesly is built and operated by Nesnet, and the contracting party is NESNET INTERNET HIZMETLERI TIC A.S. The platform runs on a Kubernetes cluster in the Nesnet cloud, and the nesly.net website itself is built and served on Nesly.

  • Every container in its own sandbox

    Each project gets its own Kubernetes namespace, and every application container runs inside a sandbox that isolates it at kernel level. Network policy lets a workload reach only DNS and the internet over 80/443, with no route to private address space or other customers.

  • Data in Istanbul, in writing

    Your apps and data sit in Istanbul on infrastructure Nesnet operates. A data processing addendum (DPA) is part of the contract, and in the event of a personal data breach the customer is notified without delay at the registered email address.

  • .NET and SQL Server as first-class citizens

    Nesly detects .NET projects on its own and offers managed SQL Server next to PostgreSQL. SQL Server backups download as .bak files that restore anywhere with the standard tools.

  • Designed for AI agents

    Nesly provides local (stdio) and remote (OAuth) MCP servers plus a plugin for coding agents. Every CLI command prints a single JSON object with --json and exits with fixed codes, so your agent reads the output without guessing.

  • Answered by real people

    Support comes mainly by email, and your questions are answered by real people on the Nesly team, not by an automated reply system.

Example scenarios

  • An internal .NET and SQL Server application

    Situation

    A company's internal .NET application depends on SQL Server and runs today on a server in the office. Patching and backing up that server rests with a single person.

    Outcome

    On Nesly the application builds automatically as .NET, a SQL Server add-on is attached and the connection arrives through ConnectionStrings__Default. The database is copied every night, and a backup can be downloaded as a .bak file whenever it is needed.

  • A small product team working through pull requests

    Situation

    A three-person product team wants to see every change running before it goes live. Their shared test server is always busy with someone else's change.

    Outcome

    Each pull request gets a preview at its own address, posted on the PR and protected by a password. Changes merged into the main branch go to production, and if something breaks, traffic switches back to the previous deployment.

  • A developer who lets an AI agent deploy

    Situation

    A developer runs code and deployments through an AI coding agent. When a build fails, the agent loses time digging through piles of logs for the cause.

    Outcome

    The agent connects to Nesly's MCP server and handles the deployment itself. When a build fails, nesly diagnose gives the cause and the fix command, and the agent applies the fix and redeploys.

  • An agency launches a campaign site in an afternoon

    Situation

    A digital agency is building a two-week campaign site for a client that has to be live tomorrow morning. It does not want to wait on separate people for a server, a domain and a certificate.

    Outcome

    The agency connects its Astro project to GitHub, buys and verifies the domain from the CLI, and the certificate arrives on its own. When the campaign ends the project goes to sleep, and nobody pays for an idle server.

  • A start-up brings its data home to Türkiye

    Situation

    A start-up's web app and database run on a platform abroad. Its new enterprise customer wants the data in Türkiye and a written data processing addendum.

    Outcome

    The app connects to Nesly from the same repository, a PostgreSQL add-on is opened and the data is imported from a standard archive. App and data run in Istanbul, and the data processing addendum becomes part of the contract.

Who does what

NesnetYou
Runs the build, publishing, addressing and HTTPS certificate infrastructure.You write your application code and push it to GitHub or send it with nesly deploy.
Separates projects by namespace, containers by sandbox and the network by policy.You decide on environment variables, add-ons and, if needed, nesly.toml settings.
Copies databases every night and takes a safety copy before every restore.You add the DNS records for your domain.
Scans every pushed image for vulnerabilities and encrypts secrets with keys held in a separate vault.You decide which role each team member gets.
Warns you by email before your plan allowance runs out and never stops a running site.You decide whether an app stays always on or sleeps when idle.

Who it is for

  • Teams shipping to the web

    Teams shipping websites, web apps or APIs, from a landing page to a product with a database behind it. They go live without touching servers, operating systems or certificates.

  • Data that must stay in Türkiye

    Teams whose users and data need to be in Türkiye. Apps and data stay in Istanbul on Nesnet's infrastructure, and a data processing addendum is part of the contract.

  • .NET and SQL Server teams

    Teams working with .NET and SQL Server. The stack runs as it is, and connection details arrive in the variable .NET expects.

  • Agent-driven developers

    Developers who run deployments through an AI agent. The agent deploys over MCP, reads why a build failed and gets the command that fixes it.

  • Popular frameworks

    Teams using Laravel, Rails, FastAPI, Flask, Express, ASP.NET or Go. Each of these has a ready-made deployment guide.

May not be the right fit

Applications that need outbound ports other than 80 and 443, or that send email straight out on port 25; Nesly workloads can reach only DNS and the internet over 80/443. Virtual Servers or Managed Kubernetes fit better: you manage network and firewall rules yourself from the portal.

Teams that want to install their own operators and have full admin access to a cluster. Managed Kubernetes fits better, since it comes with an admin kubeconfig.

Projects whose builds run longer than 15 minutes or whose uploaded source exceeds 256 MiB, which are Nesly's platform limits. The CI/CD Pipeline with Managed Kubernetes fits better, with builds running on a runner dedicated to your project.

Under the hood

Nesly is a platform Nesnet wrote on top of a Kubernetes cluster in the Nesnet cloud. When your code arrives it identifies the language and framework from your files: Node.js, Python, Go, .NET, Ruby, PHP and Java build automatically, a Dockerfile at the root takes precedence, and front-end projects such as Vite, Astro or SvelteKit come out as static sites. The built image is pushed to a private registry only the platform can reach and is scanned for vulnerabilities the moment it lands. Each project runs in its own namespace, and every container runs in a sandbox that puts a separate isolation layer between it and the kernel, while a network-policy layer keeps projects apart. Secrets in environment variables are encrypted with AES-256-GCM, and the key lives in a separate key vault rather than next to the data. Account passwords are never written to the platform database; they are held in a separate identity service. HTTPS certificates for custom domains are issued automatically and renewed before they expire.

Building blocks

Kubernetes (Nesnet cloud)
the cluster the platform runs on
Container sandbox
isolates every application container from the kernel with a separate layer
Network-policy layer
project network isolation and egress rules
Key vault
holds the keys that encrypt secrets, apart from the data
Identity service
accounts, passwords and OIDC clients for applications
Scanning on push
every image written to the private registry is checked for vulnerabilities
Automatic certificate management
HTTPS for custom domains, renewed before expiry

How it compares

OptionWhen it is the right choice
Managed Kubernetes with the CI/CD PipelineThe right choice if you want your own cluster, separate test and production environments and a setup where only a release team can ship. You get admin access to the cluster and can install your own operators.
Virtual ServersA better fit if you want to manage the operating system yourself, open whatever ports you need or run long jobs on an always-on server. Updates, certificates and backups then stay with you.

Technical specifications

Build
Auto-detected runtimesNode.js, Python, Go, .NET, Ruby, PHP, Java; a root Dockerfile takes precedence
Front-end frameworks built as static sitesVite, Create React App, Astro, SvelteKit, Next.js (export), Angular, Gatsby, Docusaurus, VitePress, Eleventy
Configurationnesly.toml (root, install, build command, output directory); monorepo support
Listening portThe PORT environment variable, bound to 0.0.0.0
Platform limitsSource upload 256 MiB and 100,000 files; build time 15 minutes
Isolation and security
Workload isolationA namespace per project; every container in a kernel-isolated sandbox
NetworkEgress only to DNS and 80/443; outbound port 25 closed
SecretsAES-256-GCM; key held in a separate vault
Image scanningEvery pushed image, on arrival; private registry
Data and backups
Add-onsPostgreSQL, MySQL, SQL Server, MongoDB, Valkey, S3-compatible bucket, OIDC client
CopiesNightly automatic, manual backups, safety copy before restore
Backup formatPostgreSQL custom-format archive; SQL Server .bak
LimitsNo point-in-time recovery (PITR); 256 MB archive limit for SQL Server backup and restore
Tooling and location
CLI outputA single JSON object with --json; fixed exit codes 0–5
Data locationIstanbul, Türkiye; infrastructure operated by Nesnet; DPA part of the contract

If something breaks

  • If a live release misbehaves

    One command or one click in the console switches traffic back to the previous deployment. Nothing is rebuilt to do it.

  • If the wrong backup is restored

    The safety copy taken just before the restore stays in your backup list. Restoring that copy takes you back to where you were.

  • If a database add-on is deleted by mistake

    The data is not dropped on the spot; access is cut first and the data is deleted only at the end of a recovery window. You can ask for it to be brought back within that window.

  • If a build fails

    nesly diagnose tells you the cause, the log lines that prove it and the command that fixes it. Your running release stays live in the meantime.

  • If you run out of plan allowance

    Your running site does not stop; only new work such as a fresh build, project or domain is refused. You get an email warning when usage reaches 80 percent and again at 100 percent.

Frequently asked questions

Pricing and first steps

Pricing

You start on Nesly with a free plan that asks for no card, then move to a monthly or yearly subscription as you grow, and you never pay for a server sitting idle. Invoices are issued with VAT included as e-invoices, and plan details are published on nesly.net.

What the price depends on

  • The subscription plan and billing period you choose (monthly or yearly)
  • Keeping an app always on instead of letting it sleep when idle
  • Domains you buy through Nesly

How to get started

  1. 1.Go to nesly.net and open your account.
  2. 2.Connect your GitHub repository or run nesly deploy.
  3. 3.Your first push goes live at its own address, over HTTPS.

Go live in Istanbul without setting up a server

Open your account and connect your repository, and your first push goes live at its own address over HTTPS. Your code runs in an isolated sandbox and your data stays in Istanbul.