PropVault CMS & PDK
Official Documentation
Welcome to the official developer and administrator portal for PropVault. Learn how to boot the standalone CMS platform, configure dynamic branding overrides, and build custom plugins using the isolated Plugin Development Kit (PDK).
Standalone CMS
Compile-free deployment. Manage your entire platform using the CLI and setup wizard, with static versioning securely baked in.
Isolated PDK
Create modular filters and custom actions. Decoupled and ready to publish directly to npm or distribute via zip uploads.
Quick Start
Install the public CMS runner via your package manager to bootstrap a workspace instantly:
npx @vikukumar/propvault init
CLI Commands Reference
The PropVault standalone package exposes a powerful CLI runner to manage configurations, server lifecycles, and database states.
npx @vikukumar/propvault init
Initializes all standard directories (data/, storage/, plugins/) and creates default environment files (.env) derived from templates.
npx @vikukumar/propvault start
Starts the production Next.js standalone server on the specified port. Runs the zero-downtime hot-reload reverse proxy internally, allowing seamless on-the-fly system updates.
npx @vikukumar/propvault db:migrate
Triggers an automated synchronization sequence across all database entities. Syncs tables, columns, and relations safely without data loss.
npx @vikukumar/propvault db:seed
Loads default layouts, nested mega menus, footer structures, RERA presets, and initial sample pages into your database.
Database & Setup Handshakes
Learn how to wire backend databases and complete initial administrator handshakes.
Supported Databases
PropVault integrates with BullDB, a database-agnostic connector supporting pings and active connection tests. You can write your connection string inside the DATABASE_URL environment variable:
- SQLite:
sqlite://./data/propvault.db - PostgreSQL:
postgresql://user:pass@host:port/dbname - MySQL:
mysql://user:pass@host:port/dbname - MongoDB:
mongodb://user:pass@host:port/dbname
Setup Diagnostics Wizard
Booting the server redirects uninstalled workspaces to /setup. The setup wizard runs check diagnostics for folder write permissions and critical library modules (e.g. sharp, better-sqlite3) before permitting installation.
Branding Assets Management
Customise the look of the admin panel and public pages with dynamic brand assets.
Through the Admin Settings panel, administrators can upload unified logos, icons, and OG preview banners. Uploaded assets automatically update the admin login pages and header components.
| Asset Type | Database Key | Description |
|---|---|---|
| Horizontal Logo | branding.logo | Used in top header bars and navigation widgets. |
| Dark Mode Logo | branding.logo_dark | Displays inside dark-mode viewports. |
| System Favicon | branding.favicon | Custom browser tab icon. |
| Social OG Banner | seo.og_image | Default image header for rich social sharing. |
Plugin Development Kit (PDK)
Build modular components and extensions that hook directly into the CMS lifecycles.
The PropVault PDK provides an isolated developer environment. Plugins run inside Node sandboxes, attaching handlers to actions and filters dynamically without recompiling the CMS codebase.
Local Setup
Install the PDK command-line builder utility globally or run it via npx to scaffold a plugin:
npx @vikukumar/propvault-pdk create my-new-plugin
Actions & Filters API
Register handlers to run custom actions or modify data flows.
1. Action Hooks (`addAction`)
Actions execute custom scripts during specific CMS events, such as when a user submits a contact form.
import { addAction } from "@vikukumar/propvault-pdk";
addAction("after_lead_submit", async (lead) => {
console.log("New Lead submitted:", lead.email);
// Send data to Slack or your CRM
});
2. Filter Hooks (`addFilter`)
Filters intercept data fields and return modified objects before database execution.
import { addFilter } from "@vikukumar/propvault-pdk";
addFilter("before_project_save", async (project) => {
if (project.title) {
project.title = `${project.title} [Verified]`;
}
return project;
});
Build & Release Channels
Package your plugin and share it with users through NPM, GitHub, or direct Zip uploads.
A. Zip Archive Upload
Run npm run package inside your plugin folder to compile TypeScript files and generate a plugin.zip archive. Administrators can upload this zip file directly via the CMS Plugins interface.
B. NPM Registry Publication
Publish your plugin directory to npm. Users can install it in their workspace by typing the package name (e.g. @org/propvault-plugin) in the NPM registry installer card in the admin panel.
C. Git Repository Cloning
Host your code on GitHub. Administrators can install the plugin by entering the git clone URL directly.
Release History & Version Logs
Track and monitor changes across all official PropVault packages. Latest updates are displayed on top.
- Added professional NPM package metadata keywords, author, and support pages, removing GitHub links.
- Enabled parallel release pipelines running concurrent builders for both CMS and PDK packages.
- Integrated dynamic package version assignments during PDK client scaffolding.
- Integrated Blue-Green zero-downtime hot-reload reverse proxy inside the CMS start command.
- Enabled background worker hot-swaps upon update signals without connection drops.
- Set default admin sidebar layout to collapsed, improving workspace density.
- Added Admin panel update widgets to check and pull latest npm package versions on button clicks.
- Configured setup readiness blockers enforcing server write permissions and required driver modules.
- Added enterprise licensing options supporting Open Source (OSS) and Enterprise database flags.
- Created the initial PDK folder structure and bin CLI scripts.