Create a Plugin
Scaffold a VitNode plugin, register its package in your host app, and serve its first TanStack Start page.
A plugin is the starting point for a VitNode feature. It keeps routes, API modules, data, translations, and AdminCP extensions together in one installable package. Nice boundaries; fewer archaeological digs later.
Plugins need a workspace
Run the generator from a repository with turbo.json. When creating an app,
turn on Turborepo first; a plain single-folder app has nowhere for
plugins/*.
Generate the package
Run this at the workspace root and enter a package name such as
@acme/site-notes when prompted:
bun create vitnode-app@canary --pluginRun/Restart it and visit the route
bun devCheck the generated page
Visit the route printed in the console, such as http://localhost:3000/site-notes. You should see a page with a title and a link to the plugin's README.

Add the next capability
Plugin routes
Add nested layouts, dynamic URLs, loaders, metadata, and guards.
API modules
Add another endpoint beside the generated one, with Zod-validated inputs.
Database models
Put Drizzle models and migrations beside the feature that owns them.
Admin Control Panel
Ship staff screens, navigation, permissions, and dashboard widgets.
Mobile Navigation
How VitNode's menus behave on phones - a floating bottom bar of up to three links you pick in the AdminCP plus a Menu tab for the rest, and a side drawer behind the user button for the account.
API Modules
Add a typed Hono API module to a VitNode plugin, register it once, and keep endpoint ownership with the feature.