RouteVN Creator Client is a frontend application for building Visual Novels with a drag & drop visual UI, without needing to write any code.
This is a complete Single Page Application (SPA) that operates offline-first.
Browser builds persist project data through IndexedDB-backed stores.
Desktop builds persist project data through Tauri/SQLite-backed stores.
- @rettangoli/fe - Is used as the frontend framework
- @rettangoli/ui - Is used as the UI library
- Product - Product principles and UX contract
- Engineering - Code structure, stack, and engineering boundaries
- Platform Spec - Current project model, command/event flow, and storage contracts
- Docs Index - Entry point for internal documentation
Entrypoint defined in static/index.html with the <rvn-app> tag.
See docs/README.md for the internal docs index, docs/product.md for product principles, and docs/engineering.md for the engineering guide.
src/pages/app/ - Application entrypoint
Folder structure
src/components/- Reusable UI componentssrc/pages/- Global components with their own statesrc/deps/- Infrastructure and service dependencies injected into pages/componentssrc/setup.web.js- Web-specific configurationsrc/setup.tauri.js- Tauri desktop-specific configurationsrc/domain/- Domain rules, command processing, and state projectionsrc/collab/- Collaboration runtimescripts/- Build and utility scriptsstatic/- Static HTML files and assets_site/- Build output directory
There is no shared src/setup.common.js entrypoint today. Shared runtime code lives behind service cores and adapters.
To add a new route, you need to update 3 files:
- Create HTML file in
static/- Add the static HTML file for the route - Update
src/pages/app/app.view.yaml- Add the route condition and component - Update
src/pages/app/app.store.js- Add the route pattern to the arrays
Example for adding /project/new-feature:
# In app.view.yaml
$elif currentRoutePattern == "/project/new-feature":
- rvn-new-feature: []// In app.store.js - add to both routePatterms and routesWithNavBar arrays
"/project/new-feature",Install rtgl cli
npm i -g rtglInstall dependencies:
bun installSetup Git Hooks (Required for new developers):
After installing dependencies, Husky will automatically set up git hooks. The pre-push hook will run bun run lint to ensure code quality before pushing changes.
If you're setting up the project for the first time, make sure to run:
bun run prepareThis ensures all git hooks are properly configured.
Note: If you encounter errors when pushing due to linting issues, run:
bun run lint:fixThis will automatically fix most linting errors. After fixing, you can commit the changes and push again.
The project uses platform-specific entry points that are automatically configured during build:
Run the project in watch mode:
bun run watchOr build project and serve without watch mode:
bun run build:web
bunx serve _site -p 3001Open: http://localhost:3001/project
Build Commands:
bun run buildorbun run build:web- Build for web platformbun run watch- Watch mode for web development
RouteVN Creator also supports running as a native desktop application using Tauri, providing better performance and system integration.
Prerequisites:
Install Rust and system dependencies:
# Install Rust
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
# Linux users need additional system dependencies
# Ubuntu/Debian:
sudo apt update
sudo apt install libwebkit2gtk-4.1-dev build-essential curl wget file libssl-dev libayatana-appindicator3-dev librsvg2-dev
# Fedora/RHEL:
sudo dnf install webkit2gtk4.1-devel openssl-devel curl wget file libappindicator-gtk3-devel librsvg2-devel
# macOS and Windows: No additional system dependencies neededDevelopment:
The Tauri build automatically uses the desktop-specific configuration (src/setup.tauri.js):
Add env.dev to your env variables. It is required to set the private key for the updater
Start dev server from:
bun run watch:tauriRun the Tauri app in development mode:
bun run tauri:devFor cross-compilation to Windows from Linux/macOS:
bun run tauri:dev:winProduction Build:
For production we build installer using NSIS: https://v2.tauri.app/distribute/windows-installer/
Build the desktop application:
bun run tauri:buildCross-compile for Windows:
bun run tauri:build:winBuild and notarize the macOS DMG:
bun run tauri:build:macFor the Apple signing and notarization setup, see docs/runbooks/macos-signing-and-notarization.md.
The built application will be available in src-tauri/target/release/ with platform-specific installers in src-tauri/target/release/bundle/.
Build Commands:
bun run build:tauri- Build frontend for Tauri platformbun run watch:tauri- Watch mode for Tauri developmentbun run tauri:build- Build complete desktop application
Platform Support:
- Windows:
.exeinstaller and.msipackage - macOS:
.appbundle and.dmginstaller - Linux:
.AppImage,.deb, and.rpmpackages
Features:
- Native file system access
- Better performance than web version
- Offline-first with local storage
- Platform-specific optimizations via separate entry points
- System tray integration (planned)
- Auto-updates support (planned)
Join us on Discord to ask questions, report bugs, and stay up to date.
- This project is licensed under the MIT License.
- The name RouteVN, and its logo are the exclusive property of Yuusoft