Service types

Understand seenode's building blocks and pick the right type: static site, web service, private service, background worker, or managed database.

Last updated September 18, 2026

On seenode, you deploy and run your code as one or more services. A service might be a public API, a frontend, an internal HTTP app, or a background process. Managed databases sit beside them in the same workspace.

Whenever you create something new in the dashboard, you pick a type based on what the code will do.

Service types at a glance

Four application types for running code:

Plus managed datastores:

Web, worker, and private apps can also deploy from a Docker image instead of building from Git. Static sites are Git-only.

Which service type is right for my code?

Walk the questions. Each leaf links to the matching guide.

Same decisions as a table

If your code…Choose
Serves only built HTML/CSS/JS (SPA, docs site, marketing page)Static site
Listens for public HTTP (API, SSR, full-stack app)Web service
Listens for HTTP, but only from other seenode servicesPrivate service
Runs continuously with no incoming HTTP (queue consumer, bot, pipeline)Background worker
Stores relational dataPostgreSQL or MySQL

Private service vs worker: if the process binds a port and other services call it over HTTP, use private. If it only polls a queue or runs jobs and never accepts inbound connections, use a worker.

Summary of service types

Static site

Publishes a folder of HTML, CSS, and JS from Git. $0, in Beta. No container at request time, no start command, no replicas, no volumes. SPA rewrite (/*/index.html) is on by default. Env vars apply at build time only. Custom domains and HTTPS are supported.

Use for React / Vue / Angular SPAs, Astro static builds, and other frontends that do not need a server process. Full guide: Static sites.

Web service

The usual choice for a first process. Dynamic apps with a public *.seenode.app URL, free auto-renewing TLS, and optional custom domains. seenode builds from Git (or pulls an image), runs your start command, and load-balances to the Port you set. The process must listen on 0.0.0.0 at that port.

Use for Express, FastAPI, Django, Nest, Next.js (Node server), Phoenix, and similar. Full guide: Web services.

Private service

Same instance sizes and Git or Docker sources as web, but no public URL and no custom domains. Other services in the workspace reach it at http://{name}-service on the private network (for example http://web-a1b2c3d4e5f6-service).

Use for internal APIs and sidecars that should not face the internet. Full guide: Private services.

Background worker

A long-lived process with no public URL, no Domains tab, and no ClusterIP. It can open outbound connections to databases, APIs, and other seenode services. Deployed like a web service (build + start), without a port.

Use for Celery, RQ, BullMQ, Oban, schedulers, bots, and pipelines. Full guide: Deploy a worker.

Databases

Managed PostgreSQL or MySQL. seenode provisions the instance and gives you connection details. Reach it from apps over the private network (or publicly). Wiring credentials into an app is a separate step: Link a database.

Databases are not application types. They sit next to your services and bill from the same credit balance.

How they fit together

A typical stack is a static or web public surface, optional private APIs and workers, and a database, in one workspace. Web, worker, and private share instance prices (Basic 4Ultra4 → Ultra 28); static hosting is free. Everything draws from prepaid credits.