# Vinssi Put your app or website online in Europe. Fixed monthly prices from €5 per app, excluding VAT. Works with Claude Code, Codex, and Cursor. This file stays in English. The same public pages are also in Finnish at https://vinssi.ai/fi. Guide slugs match, for example https://vinssi.ai/fi/blog/deploy-from-your-agent. Prices are at https://vinssi.ai/fi/pricing. Partners are at https://vinssi.ai/partners and https://vinssi.ai/fi/partners. Home: https://vinssi.ai Prices: https://vinssi.ai/pricing Guides: https://vinssi.ai/blog Get started: https://vinssi.ai/get-started.md Docs: https://vinssi.ai/docs Terms: https://vinssi.ai/terms Skill: https://vinssi.ai/skills/vinssi-pages/SKILL.md Prompt you can copy: Deploy my app with Vinssi. Instructions: vinssi.ai/get-started.md App prices, excluding VAT: Tiny €5 a month, App €9 a month, Pro App €15 a month. New workspaces receive €9 of credit, applied to invoices before the card is charged. Postgres Lite €5, Starter €12, Standard €45, Plus €89 a month, excluding VAT. An app can have one database. Vinssi Pages does not need a plan. An app deployed from GitHub does. # Guides ## How to deploy your app from Claude Code, Codex or Cursor https://vinssi.ai/blog/deploy-from-your-agent Claude Code, Codex, and Cursor can put a simple website online with Vinssi. Copy this prompt: Deploy my app with Vinssi. Instructions: vinssi.ai/get-started.md. That guide publishes a static file or folder with Vinssi Pages. The homepage uses the same words for Claude Code, Codex, Cursor, and any other helper. You can also try: Deploy a hello world project with vinssi.ai/get-started.md. Vinssi puts your app or website on the internet in Europe. Billing for an app is per app, from €5 a month, excluding VAT. Pages does not need a plan. Run every command as vinssi if that command is installed. If it is not, run the same command as npx -y vinssi. A workspace is created the first time you sign in. Login opens the dashboard. You choose Allow, and the tool stores a token in ~/.vinssi/credentials.json. If no browser opens, paste the printed URL into one. The request expires after five minutes. vinssi whoami shows who is signed in. Publish with: vinssi pages publish /absolute/path/to/file.html --json A single .html file becomes the site index page. A folder should have index.html at its root. --json prints the site id, version id, URL, size, and file count. To update the same URL later, add --site and the site id from the first publish. Check with: curl -s -o /dev/null -w "%{http_code}" The result should be 200. A site that was just published can return 404 for about ten seconds. One retry after a short wait is enough. If you have no files yet, write one HTML file, such as hello.html with the sentence Hello from Vinssi, and publish that file. A Next.js app on GitHub uses the quickstart. You sign in, install the GitHub App, choose New app, connect one repository, check Settings then Build, add any variables the app needs, choose a plan under Billing, and press Deploy. A first deployment typically takes two to five minutes. The app listens on port 3000 and runs on Node 22. ## Build a company website with AI and put it online https://vinssi.ai/blog/company-website-with-ai Ask Claude, Codex, or Cursor to write a small company website as HTML, then publish the folder with Vinssi Pages. Pages does not need a plan. A company site in this guide means files you can open in a browser: a home page, a short description, and a way to contact you that is written on the page. Start with the same prompt as the homepage. A single .html file becomes the site index page. A folder is published as it is. Put index.html at the root. Dotfiles and symbolic links are skipped. Run vinssi login if the command is installed. If it is not, run npx -y vinssi login. The command line tool needs Node 20 or newer. Publish with: vinssi pages publish /absolute/path/to/folder --json --name sets the display name and the start of the URL. Addresses look like https://--.pages.vinssi.ai. Check the URL and expect 200. Prices for an app start at €5 a month per app, excluding VAT. Pages itself does not need a plan. ## A simple startup stack: Next.js + Postgres on Vinssi for a fixed monthly price https://vinssi.ai/blog/nextjs-and-postgres Vinssi can run a Next.js app from GitHub and add one Postgres database for a fixed monthly price. The app runs in Europe. The quickstart covers the app, and the database guide covers Postgres. Billing is per app. Prices exclude VAT. Tiny is €5 a month, App is €9 a month, and Pro App is €15 a month. Postgres Lite is €5 a month. New workspaces receive €9 of credit. Pages does not need a plan. Sign in, install the GitHub App, choose New app, and pick one repository. Open Settings, then Build. Leave the fields on Auto unless the app lives in a subfolder or does not read PORT. The app must listen on port 3000. Builds and the running app use Node 22. Next.js is started with next start -p 3000. For Postgres, do not type DATABASE_URL yourself. Open Billing, choose a plan, and press Deploy. A first deployment typically takes two to five minutes. The address looks like https://-<4 random characters>.app.vinssi.ai. An app can have one managed PostgreSQL database. In the dashboard, open Settings, then Database, pick a tier, and confirm. From the command line: vinssi db create --plan lite Lite is ready in seconds when capacity is available. A dedicated database takes 5 to 10 minutes. When it is running, Vinssi redeploys the app so it starts with DATABASE_URL set. ## A Vercel alternative in Europe https://vinssi.ai/blog/a-vercel-alternative-in-europe Vinssi runs your app in Europe and charges a fixed monthly price for each app. Prices start at €5 a month, excluding VAT. Billing is per app. Tiny is €5 a month, App is €9 a month, and Pro App is €15 a month. Prices exclude VAT. New workspaces receive €9 of credit. An app can add one Postgres database from €5 a month for Postgres Lite. Your app runs in Europe. You can ask for a data processing agreement at cloud@vertics.co. Vinssi Pages publishes a static file or folder and does not need a plan. A Next.js, Vite, or Node app from GitHub uses the quickstart and needs a plan. A first deployment typically takes two to five minutes. Vercel is another way to host an app. Its current offer is on https://vercel.com. Vercel publishes its own prices there. ## The startup stack: Next.js, Postgres and Vinssi https://vinssi.ai/blog/startup-stack A new startup can start with one app, one database, and a fixed monthly price per app. Next.js builds the pages and the replies. Postgres stores the rows of data. You deploy from GitHub, or you ask an AI helper to publish a simple site. The step by step path is the Next.js and Postgres guide. Billing is per app, excluding VAT. Tiny €5, App €9, Pro App €15. The plans and limits page describes App as the plan for a production Next.js site. Postgres Lite €5, Starter €12, Standard €45, Plus €89. An app can have one database. Vinssi sets DATABASE_URL. The quickstart connects one GitHub repository, a plan, and Deploy. A first deployment typically takes two to five minutes. The app listens on port 3000 and runs on Node 22. If the first thing you need online is a page, copy: Deploy my app with Vinssi. Instructions: vinssi.ai/get-started.md That publishes a static file or folder with Vinssi Pages. Pages does not need a plan. When you run the tool with npx, sign in with: npx vinssi login ## Hosting client projects for agencies and freelancers https://vinssi.ai/blog/hosting-for-agencies One app per client, billed per app, with its own web address you can share. Choose New app, name it for that client, and connect one GitHub repository. One repository connects to one app. Repeat for the next client. Each app has its own plan, settings, and address. Tiny €5, App €9, Pro App €15 a month, excluding VAT. New workspaces receive €9 of credit. Plans and a database add-on are billed through one workspace subscription. Postgres Lite is from €5 a month. Each app gets a platform address like https://-<4 random characters>.app.vinssi.ai. You can also serve it from the client's own hostname. Open Settings, then Domains, and add the hostname in Your own web address. Create the TXT record Vinssi shows and a CNAME record. Choose Verify. TLS is issued once the name is verified. When the status is Live, send the address to the client. You keep the rights in the code and content you uploaded. Hosting does not move ownership of that content to Vinssi. The documented handover is the link. A client site that is only HTML can use Vinssi Pages and does not need a plan. ## Hosting in Europe and GDPR: where your app and data live https://vinssi.ai/blog/hosting-in-europe-gdpr Your app runs in Europe. Personal data needs data-processing terms arranged with Vinssi before you host it. This page states what the pricing page and the terms say. It is not a certification. Vinssi puts your app or website on the internet in Europe. Billing is per app, from €5 a month, excluding VAT. Visitors reach the app through its Vinssi web address, or through a hostname you have verified. After you verify it, Vinssi requests a TLS certificate. The connection to a managed Postgres database requires TLS. The terms say you control what your applications collect and must give appropriate notices. Personal data hosted on your behalf requires appropriate data-processing terms. Contact Vinssi to arrange those terms before using Vinssi for that processing. The terms of service are not a data processing agreement. You can request one at cloud@vertics.co. The Vertics privacy statement covers its stated scope of corporate website and contact processing. It does not replace terms for data in your hosted app. You keep your rights in your code and content. Read the terms, then ask Vinssi to arrange data-processing terms before the app holds personal data. Confirm data-processing arrangements for your own requirements. Your app can reach the public internet. It cannot reach other customers' apps or Vinssi's internal services. Inbound traffic arrives only through the platform address and verified hostnames, on port 3000. ## Put your hackathon project online in minutes https://vinssi.ai/blog/hackathon-hosting Ask an AI helper to follow vinssi.ai/get-started.md, then share the link with the judges. Pages does not need a plan. The app runs in Europe. Billing for an app deployed from GitHub is per app, from €5 a month, excluding VAT. Copy: Deploy my app with Vinssi. Instructions: vinssi.ai/get-started.md The command line tool needs Node 20 or newer. Sign in with: npx vinssi login Publish with: npx vinssi pages publish /absolute/path/to/file.html --json --json prints the site id, version id, URL, size, and file count. The same commands are documented as vinssi after you install the command. The command line guide shows npx vinssi for a run without installing. Check with curl and expect 200. A just-published site can return 404 for about ten seconds. One retry is enough. The address looks like https://--.pages.vinssi.ai. Anyone you share the link with can open the site. Add --site and the site id to keep the same URL. A Next.js app on GitHub uses the quickstart, needs a plan, and a first deployment typically takes two to five minutes. ## A Heroku alternative in Europe https://vinssi.ai/blog/heroku-alternative-europe Vinssi runs an app from GitHub in Europe and charges a fixed monthly price for that app. Prices start at €5 a month, excluding VAT. Heroku is another way to run an app. This page describes what Vinssi offers. Tiny is €5 a month, App is €9 a month, and Pro App is €15 a month, excluding VAT. New workspaces receive €9 of credit. A Postgres database is a separate add-on from €5 a month. Your app runs in Europe. You can request a data processing agreement at cloud@vertics.co. The quickstart connects one GitHub repository, a plan, and Deploy. A first deployment typically takes two to five minutes. Vinssi recognises a Next.js app, a Vite app, and a Node.js app that uses Express, Fastify, Hono, or NestJS. Vinssi Pages publishes a static file or folder and does not need a plan. Heroku is another way to run an app. Its current offer is on https://www.heroku.com. Heroku publishes its own prices there. ## Deploy a Vite or React app https://vinssi.ai/blog/deploy-vite-react-app Deploy a Vite app from GitHub and Vinssi serves the built site on port 3000. A React app that uses Vite follows this path. A React app that uses Next.js follows the Next.js path instead. Vinssi treats the project as Vite when vite is in dependencies or devDependencies and the repository includes vite.config.js, vite.config.ts, or vite.config.mjs. React is not its own check. Next.js is checked first. The first match wins. If package.json has a build script, Vinssi runs it. Otherwise it runs vite build. The dist folder is served as a single page app on port 3000. The build and the running app use Node 22. Vinssi sets PORT to 3000. Follow the quickstart: sign in, install the GitHub App with read access to repository contents and metadata, choose New app, connect one repository, leave Settings then Build on Auto unless the app is in a subfolder or ignores PORT, choose a plan, and press Deploy. A first deployment typically takes two to five minutes. The whole first run usually takes about ten minutes. The address looks like https://-<4 random characters>.app.vinssi.ai. A landing page that is one HTML file, with no Vite build, uses Vinssi Pages and does not need a plan. ## Host a Node.js app or API https://vinssi.ai/blog/host-nodejs-app Vinssi hosts a Node.js app or API from GitHub when the project depends on Express, Fastify, Hono, or NestJS. The app listens on port 3000, runs on Node 22, and has a fixed monthly price per app. A Node backend matches when express, fastify, hono, or @nestjs/core is in dependencies or devDependencies. Next.js is checked first, then Vite, then this Node check. The first match wins. If package.json has a build script, Vinssi runs it. Otherwise the Node default is tsc. The app starts with npm run start, or with node dist/index.js when there is no start script. The start script always runs through npm because the runtime image contains only Node. Call node from the script. Vinssi sets PORT to 3000. A PORT variable you add does not override that value. Use the quickstart, choose a plan, and press Deploy. A first deployment typically takes two to five minutes. Tiny is €5, App is €9, and Pro App is €15 a month, excluding VAT. Callers use the platform address, or a hostname you have verified, on port 3000. The app can reach the public internet. An app can have one Postgres database. Vinssi sets DATABASE_URL. ## Put a landing page online from your AI agent https://vinssi.ai/blog/landing-page-from-ai-agent Ask your AI helper to write a landing page as HTML, then publish that file with Vinssi Pages. You get a link anyone can open. Pages does not need a plan. A landing page here means one HTML file: a headline, a short explanation, and a way to reach you. Copy: Deploy my app with Vinssi. Instructions: vinssi.ai/get-started.md Sign in with: npx vinssi login Publish with: npx vinssi pages publish /absolute/path/to/file.html --json A single .html file becomes the index page. --json prints siteId, versionId, url, bytes, and fileCount. The same actions are documented as vinssi when the command is installed, and as npx -y vinssi in get-started.md. Check with curl and expect 200. A just-published site can return 404 for about ten seconds. One retry is enough. The address looks like https://--.pages.vinssi.ai. Publish again with --site to keep the same address. If the file looks sensitive, ask before you publish. A company site with several HTML files is the company website guide. A Vite or Next.js project from GitHub uses the quickstart and needs a plan. ## Let your agent deploy for you https://vinssi.ai/blog/agents-md-deploy You can teach your AI helper to publish with Vinssi by adding a short note to AGENTS.md, or by pointing it at the Vinssi Pages skill. You add that note yourself. Vinssi does not edit your project. Suggested note: Vinssi When I ask you to put a static HTML file or folder online, follow https://vinssi.ai/get-started.md and https://vinssi.ai/skills/vinssi-pages/SKILL.md. Run vinssi if it is installed. If it is not, run npx -y vinssi. Sign in with npx vinssi login if the command is not signed in. Publish with npx vinssi pages publish /absolute/path/to/file.html --json and give me the url. Ask me first if the files look sensitive, such as credentials, customer data, or internal financials. The skill tells the helper to run vinssi if installed, and npx -y vinssi if it is not. The command line tool needs Node 20 or newer. The command line guide documents npx vinssi for a run without a separate install. Expect HTTP 200 before you hand the link over. The note is for Vinssi Pages, which does not need a plan. A Next.js, Vite, or Node app from GitHub uses the quickstart and needs a plan. ## What does hosting an app cost? https://vinssi.ai/blog/app-hosting-cost Hosting an app on Vinssi has a fixed monthly price per app, excluding VAT. Tiny is €5, App is €9, and Pro App is €15. A Postgres database is a separate add-on from €5 a month. A static site on Vinssi Pages does not need a plan. You pick a plan for each app. The plans and limits page describes App as the plan for a production Next.js site. You can change the plan later. The workspace has one subscription that holds the plan for every app. New workspaces receive €9 of credit. Credits are applied to invoices before the card is charged. Postgres Lite is €5 a month. Postgres Starter is €12, Standard is €45, and Plus is €89 a month, excluding VAT. An app can have one database. Vinssi sets DATABASE_URL. Vinssi Pages does not need a plan. An app deployed from GitHub does. ## Why your localhost:3000 link only works for you https://vinssi.ai/blog/share-localhost-app localhost is a name for your own computer. http://localhost:3000 asks your machine for the app on port 3000. A friend who opens that link asks their own computer, which is not running your app. Share your screen for a quick look. A tunnel such as ngrok or Cloudflare Tunnel gives a temporary public address while your computer and the tunnel are running. See ngrok.com and cloudflare.com. Deploy when the link should keep working after you close the laptop. Vinssi runs the app in Europe. For a static site or a Vite build, publish the dist folder with Vinssi Pages. Pages does not need a plan. The command line tool needs Node 20 or newer. npx vinssi login The tool prints a short code and a link. Open the link on any device, sign in, check that the code matches, and choose Allow. A workspace is created the first time you sign in. The code expires after ten minutes. After npm install -g vinssi, the same commands work as vinssi. npm run build npx vinssi pages publish ./dist The folder needs index.html at its root. --json prints the site id, version id, URL, size, and file count. An example address looks like https://--.pages.vinssi.ai. A site that was just published can return 404 for about ten seconds. Add --site and the site id to keep the same address. A full app from GitHub follows the quickstart. Choose Install GitHub App and grant it only the repositories you want to deploy. Vinssi requests read access to repository contents and metadata. Choose New app and one repository. Leave Settings, then Build, on Auto unless the app is in a subfolder or does not read PORT. Add keys under Settings, then Variables. Open Billing, choose a plan, complete checkout, and press Deploy. An app from GitHub needs a plan, from €5 a month per app, excluding VAT. A first deployment typically takes two to five minutes. An example address looks like https://-<4 random characters>.app.vinssi.ai. Every push to the default branch deploys again. From the terminal: npx vinssi projects list, then npx vinssi deploy . Vinssi sets PORT to 3000 and sends traffic there. # Key docs ## Quickstart https://vinssi.ai/docs/quickstart This walks a Next.js, Vite, or Node application from a GitHub repository to a live URL on app.vinssi.ai. The first run usually takes about ten minutes, most of it waiting for the build. 1. Sign in. A workspace is created on first login. Choose Install GitHub App. Grant it only the repositories you intend to deploy. Vinssi requests read access to repository contents and metadata. 2. Choose New app, name it, and pick one repository. One repository connects to one app. The platform address looks like https://-<4 random characters>.app.vinssi.ai. You can attach your own hostname once the first deploy is live. 3. Open Settings, then Build. Leave fields on Auto unless the app is in a monorepo subfolder or does not read PORT. Vinssi runs the app with PORT=3000. 4. Open Settings, then Variables for keys the build or the running app needs. If the app needs Postgres, add a managed database under Settings, then Database. Vinssi sets DATABASE_URL. Do not type it yourself. 5. Open Billing, choose a plan, and complete checkout. Deploys need an active plan. Signup credits apply to the first invoice. 6. Press Deploy. A first deployment typically takes two to five minutes. When the status is Live, open the platform address. Every push to the default branch triggers a new deployment. The command line can also deploy: npx vinssi login, then npx vinssi projects list, then npx vinssi deploy . ## Supported apps https://vinssi.ai/docs/app-types Detection reads package.json. The first match wins, in this order: - Next.js: next is in dependencies or devDependencies, and next.config.js, next.config.ts, or next.config.mjs exists. - Vite: vite is in dependencies or devDependencies, and vite.config.js, vite.config.ts, or vite.config.mjs exists. - Node backend: express, fastify, hono, or @nestjs/core is in dependencies or devDependencies. If package.json has a build script, Vinssi runs it. Otherwise the default is next build, vite build, or tsc. Start: Next.js always uses next start -p 3000. A Node backend uses npm run start, or node dist/index.js if there is no start script. A Vite app serves the dist folder as a single page app on port 3000. The start script runs through npm because the runtime image contains only Node. Every app listens on port 3000. Vinssi sets PORT=3000. Setting your own PORT variable has no effect. Builds and the runtime use Node 22. For a monorepo, set Root directory in build settings to the folder that contains the app package.json. ## Plans and prices https://vinssi.ai/docs/plans-and-limits https://vinssi.ai/pricing Billing is per app on the marketing site. The plans and limits page says billing is per project. Each deployed app carries a plan. The workspace has one subscription that holds all of them. Prices are in euros and exclude VAT. Tiny is €5 a month. App is €9 a month. Pro App is €15 a month. The plans and limits page describes App as the plan for a production Next.js site. Postgres Lite is €5 a month. Postgres Starter is €12 a month. Postgres Standard is €45 a month. Postgres Plus is €89 a month. New workspaces receive €9.00 in credits. Credits are applied to invoices before the card is charged. Your app can reach the public internet. It cannot reach other customers' apps or Vinssi internal services. Inbound traffic arrives only through the platform address and verified hostnames, on port 3000. ## Databases https://vinssi.ai/docs/databases A project can have one managed PostgreSQL database. Vinssi injects DATABASE_URL into every build and deployment and bills it on the project subscription. All tiers are PostgreSQL with TLS required. Create one with: vinssi db create --plan lite ## Vinssi Pages https://vinssi.ai/docs/pages Pages publishes a static file or folder from your machine and gives you a URL. There is no repository and no build, and it does not need a plan. vinssi pages publish ./report.html vinssi pages publish /absolute/path/to/file.html --json A single .html file becomes index.html. A folder is published as-is, with index.html at its root. Pass --site to publish a new version at the same URL. Addresses look like https://--.pages.vinssi.ai. Anyone with the link can view the site. ## CLI https://vinssi.ai/docs/cli The vinssi command manages projects, deployments, databases, tokens, and Pages. It runs on Node 20 or newer. Run it without installing: npx vinssi --help. Or install it: npm install -g vinssi. Sign in with vinssi login, or with npx vinssi login. Login opens the dashboard. The token is stored in ~/.vinssi/credentials.json. The request expires after five minutes. vinssi whoami shows who is signed in. ## Get started for an AI helper https://vinssi.ai/get-started.md Run every command as vinssi if it is installed. If it is not, run the same command as npx -y vinssi. The CLI needs Node 20 or newer. Ask the user to run vinssi login. Do not run login in a loop. Publish only what the user asked to share. If the files look sensitive, ask first. vinssi pages publish /absolute/path/to/file.html --json --json prints siteId, versionId, url, bytes, and fileCount. Check the url and expect 200 before you hand it over. A just-published site can return 404 for about ten seconds. One retry after a short wait is enough.