For Next.js and Vite developers

For developers sizing this up for a weekend: auth, data, hosting, TLS, and users are already here. You bring the app.

You write the app.
We built the platform.
Push to publish.

Clone a public rule pack that teaches Cursor and other AI editors to generate correct platform code. Build against ZAPI โ€” auth, collections, uploads, AI proxy, email, and schedules out of the box. Push, and your app is live at your-name.apps.vtc.com.

Next: How does it work?

Next.js full-stack apps
Vite static SPAs
ZAPI backend as an API
Push and it is live

Clone the rules. Build. Push.

Three steps from empty repo to a live app with real users โ€” no infrastructure to stand up along the way.

01
Rules

Clone vtc-app-rules

A public rule pack for Cursor and other AI editors. It encodes the platform contract โ€” scaffolding, auth, i18n, deploys โ€” so generated code is correct the first time.

02
Build

Next.js or Vite

ZAPI is the platform API: auth, collections, file uploads, an AI proxy, email, and schedules. Choose Shared (data scoped per Space โ€” each team's private area) or Dedicated (your own publisher database).

03
Publish

Push to apps.vtc.com

Push and your app goes live at your-name.apps.vtc.com โ€” hosting, TLS, and a login system with real users already behind it.

Full walkthrough in the developer guide โ€” rule pack, ZAPI reference, and your first publish.

A backend, a pipeline, and a hostname.

Everything around your code is already built โ€” you write the app, not the platform.

Rule pack in Zeresoft
ZAPI in Zeresoft
apps.vtc.com in Zeresoft

Start with the developer guide, clone the rule pack, then create an app in your Space and push.

Your weekend goes into the app. Not the plumbing.

Zeresoft is the engineering company behind VTC. The pitch is simple: auth, database, file storage, email, AI, hosting, TLS, and users already exist โ€” you write the part that is actually yours.

The rule pack keeps AI-generated code on contract, ZAPI keeps you out of backend plumbing, and push-to-publish keeps you out of DevOps.

What ships with every app

Rules for correct code, an API for the backend, and a pipeline that ends in a live URL.

Start with the developer guide, then create an app in your Space

Cursor rules

The public vtc-app-rules pack โ€” scaffold, i18n, auth, and deploy conventions. Clone it and your AI editor generates platform-correct code.

RulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuthRulesScaffoldi18nAuth

ZAPI

One API for auth, collections, uploads, AI proxy, email, public reads, atomic ops, and schedules โ€” with an MCP server so AI editors can call it too.

ZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWTZAPICollectionsMCPJWT

Shared vs Dedicated

Shared apps scope data per Space โ€” each team's private area. Dedicated apps get your own publisher database. The rule pack tells you which to pick.

SharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDBSharedDedicatedgroup_idconnectDB

Static Vite lane

Client-side SPAs build with Vite and publish to the same your-name.apps.vtc.com hostname โ€” no server code to write at all.

ViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublishViteSPAStaticPublish

Next.js apps

Full-stack Next.js with server routes, deployed and hot-reloaded by the platform โ€” no Docker, no cluster, no build farm of your own.

Next.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploysNext.jsAPI routesHot reloadDeploys

Push to publish

Push your repo and the pipeline takes it live at your-name.apps.vtc.com โ€” hosting, TLS, and platform users included.

Git pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLSGit pushPublishapps.vtc.comTLS

Ready to try it?

The developer guide walks from cloning the rule pack to your first live app in one sitting.

Open the developer guide โ†’

No per-member fees. Pay for what you use.

Unlimited members on every plan. Spaces are free to create; keeping one costs 1 credit a day. Networks are free to create; keeping one costs 5 credits a day. First Space or Network on an account may use promo credits; further ones need purchased credits. Top up from $10 for apps, usage, and keep costs. Platform Credits are closed-loop โ€” for apps and platform usage only, not cash. Apps bill only while they run.

See pricing โ†’

Clone the rules.
Ship this weekend.

Read the developer guide, create an app in your Space, and push โ€” your app goes live at your-name.apps.vtc.com with users already on the platform.