npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

Iโ€™ve always been into building performant and accessible sites, but lately Iโ€™ve been taking it extremely seriously. So much so that Iโ€™ve been building a tool to help me optimize and monitor the sites that I build to make sure that Iโ€™m making an attempt to offer the best experience to those who visit them. If youโ€™re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, ๐Ÿ‘‹, Iโ€™m Ryan Hefnerย  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If youโ€™re interested in other things Iโ€™m working on, follow me on Twitter or check out the open source projects Iโ€™ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soonโ€“ish.

Open Software & Tools

This site wouldnโ€™t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you ๐Ÿ™

ยฉ 2026 โ€“ย Pkg Stats / Ryan Hefner

vako

v1.3.21

Published

๐Ÿš€ Ultra-modern Node.js framework with hot reload, plugins, authentication, TypeScript support, and Next.js integration

Downloads

2,279

Readme

๐Ÿš€ Vako

Ultra-modern and intelligent web framework for Node.js with Express and EJS, designed for rapid and efficient development with intelligent hot reload, beautiful logging, extensible plugin system, TypeScript support, Next.js integration, and revolutionary auto-updater.

npm version npm downloads License: MIT

โœจ Features

๐ŸŽฏ Core Features

  • ๐Ÿ”ฅ Intelligent Hot Reload - Selective reloading of modified routes
  • ๐ŸŽจ Beautiful Logging - Colorful logging system with icons and timestamps
  • โšก Integrated WebSocket - Real-time communication for development
  • ๐Ÿ“ Auto-loading - Routes, views, and middleware auto-configured
  • ๐Ÿ› ๏ธ Development Mode - Advanced file monitoring
  • ๐ŸŒ Smart Prefetching - Route caching and prefetching
  • ๐Ÿ”Œ Plugin System - Extensible architecture with hooks and complete API
  • ๐Ÿ›ฃ๏ธ Dynamic Route Management - Create/delete routes on-the-fly
  • ๐ŸŽจ Advanced Layout System - Powerful templating with sections and helpers
  • ๐Ÿ“ฆ Auto Module Installation - Automatic dependency management

๐Ÿ”ท TypeScript & Next.js (NEW in v1.3.0)

  • ๐Ÿ”ท Full TypeScript Support - Complete type definitions included
  • โš›๏ธ Next.js Adapter - Seamless integration with Next.js
  • ๐Ÿ“˜ Type Definitions - Full IntelliSense support
  • ๐Ÿ”— Next.js Routes - Use Vako routes in Next.js applications
  • ๐Ÿ”Œ Plugin Compatibility - Use Vako plugins in Next.js projects

๐Ÿ”’ Security & Quality

  • ๐Ÿ”ฌ Advanced Code Verification - Comprehensive code quality analysis
  • ๐Ÿ“Š HTML Reports - Beautiful verification reports with interactive dashboard
  • ๐Ÿ”’ Security Auditing - Advanced security vulnerability detection
  • ๐Ÿงฎ Complexity Analysis - Cyclomatic complexity and performance metrics

๐Ÿ”„ Auto-Updater

  • ๐Ÿ”„ Revolutionary Auto-Updater - The most advanced auto-updater in Node.js ecosystem
  • ๐Ÿ›ก๏ธ Security-First Updates - Automatic critical security updates with rollback protection
  • ๐Ÿ’พ Intelligent Backup System - Smart backups with one-click rollback
  • ๐ŸŽฏ Multi-Channel Updates - Support for stable, beta, and alpha channels
  • ๐ŸŽจ Interactive CLI - Beautiful command-line interface with auto-completion

๐Ÿ“‹ Table of Contents

๐Ÿš€ Installation

Global Installation (CLI)

npm install -g vako

Project Installation

npm install vako

With TypeScript

npm install vako
npm install -D typescript @types/node @types/express

๐Ÿ“ฆ Quick Start

1. Create a New Project

# Create a new project
vako setup my-app

# With options
vako setup --name my-blog --template blog --git

# Available templates: default, api, blog, admin

2. Basic Application

const { App } = require('vako');

const app = new App({
  port: 3000,
  viewsDir: 'views',
  staticDir: 'public',
  routesDir: 'routes',
  layouts: {
    enabled: true,
    defaultLayout: 'main'
  },
  plugins: {
    enabled: true,
    autoLoad: true,
    pluginsDir: 'plugins'
  }
});

app.loadRoutes() // Automatically load all routes
   .listen();

3. Development Mode

const { startDev } = require('vako');

// Simple dev startup with hot reload
startDev({ port: 3000 });

Or with the App class:

const { App } = require('vako');

const app = new App({
  port: 3000,
  isDev: true, // Enable development mode
  wsPort: 3008, // WebSocket port for hot reload
  watchDirs: ['views', 'routes', 'public'], // Watched directories
  layouts: {
    enabled: true,
    defaultLayout: 'main'
  },
  plugins: {
    enabled: true,
    autoLoad: true,
    pluginsDir: 'plugins'
  }
});

app.loadRoutes().listen();

4. CLI Commands

# Start development server
vako dev

# Start with custom port
vako dev --port 8080

# Create new project
vako setup my-project

# Create API project
vako setup --template api --name my-api

# Create blog project
vako setup --template blog --name my-blog

# Create admin project
vako setup --template admin --name admin-panel

๐Ÿ”ท TypeScript Support

Vako includes complete TypeScript support with full type definitions.

Installation

npm install vako
npm install -D typescript @types/node @types/express

Usage

import { App, VakoOptions } from 'vako';

const options: VakoOptions = {
  port: 3000,
  isDev: true,
  routesDir: 'routes',
  plugins: {
    enabled: true,
    autoLoad: true
  }
};

const app = new App(options);
app.loadRoutes();
app.listen();

Type Definitions

All types are available in types/index.d.ts:

import { 
  App, 
  VakoOptions, 
  Plugin, 
  PluginContext,
  NextJsAdapter 
} from 'vako';

โš›๏ธ Next.js Integration

Vako can be seamlessly integrated with Next.js using the built-in adapter.

Installation

npm install vako next react react-dom

Basic Integration

// server.js (Custom Next.js server)
const express = require('express');
const next = require('next');
const { App, NextJsAdapter } = require('vako');

const vakoApp = new App({ port: 3001 });
vakoApp.loadRoutes();

const nextApp = next({ dev: true });
const handle = nextApp.getRequestHandler();

nextApp.prepare().then(() => {
  const server = express();
  
  const adapter = new NextJsAdapter({
    nextApp: server,
    enableVakoRoutes: true,
    enableVakoPlugins: true,
    routePrefix: '/api/vako'
  });
  
  adapter.integrateRoutes(vakoApp);
  adapter.usePlugins(vakoApp);
  
  server.use(adapter.middleware());
  server.get('*', (req, res) => handle(req, res));
  
  server.listen(3000, () => {
    console.log('๐Ÿš€ Server ready on http://localhost:3000');
  });
});

Using Vako Plugins in Next.js

// pages/api/data.js
import vakoApp from '../../lib/vako-setup';

export default async function handler(req, res) {
  // Use Vako plugins
  const dbPlugin = vakoApp.pluginManager?.getPlugin('database');
  const data = await dbPlugin?.getData();
  
  res.status(200).json({ data });
}

For more details, see Next.js Integration Guide.

๐Ÿ“‹ Changelog

๐ŸŽ‰ Version 1.3.3 (Latest) - January 2025

๐Ÿ”ง Fixes

  • Fixed README display on npm - all references updated from "Veko.js" to "Vako"
  • Updated binary names in package.json for correct npm CLI commands
  • Fixed TypeScript types naming consistency

๐ŸŽ‰ Version 1.3.0 - January 2025

๐Ÿ†• TypeScript & Next.js Support

  • ๐Ÿ”ท Full TypeScript Support

    • Complete type definitions in types/index.d.ts
    • TypeScript configuration (tsconfig.json)
    • Full IntelliSense support
    • Type-safe plugin development
  • โš›๏ธ Next.js Adapter

    • Seamless integration with Next.js
    • Use Vako routes in Next.js applications
    • Use Vako plugins in Next.js projects
    • Middleware for exposing Vako functionality
  • ๐Ÿ“š Documentation

    • Next.js integration guide
    • TypeScript examples
    • Quick start guides

๐Ÿ”ง Improvements

  • Updated package name to vako for npm publication
  • Enhanced plugin system with TypeScript support
  • Improved error handling
  • Better documentation structure

๐Ÿ“œ Version 1.2.0 - December 2024

๐Ÿ†• Revolutionary Auto-Updater System

  • ๐Ÿ”„ Advanced Auto-Updater

    • Automatic version checking with intelligent scheduling
    • Multi-channel support (stable, beta, alpha, custom registries)
    • Security-first approach with cryptographic validation
    • Interactive CLI with beautiful colored interface
    • Real-time notifications and progress indicators
  • ๐Ÿ”’ Security-First Architecture

    • SHA512 integrity verification for all packages
    • Automatic security updates with priority handling
    • Rollback protection against failed updates
    • Vulnerability scanning before installation
  • ๐Ÿ’พ Smart Backup & Rollback System

    • Automatic backup before every update
    • Configurable backup retention (1-10 backups)
    • Instant rollback in case of failure
    • Emergency rollback functionality

๐Ÿ“œ Version 1.1.0

  • Initial plugin system implementation
  • Basic layout system with EJS integration
  • Hot reload functionality with WebSocket
  • CLI commands (dev, setup, build, start)
  • Basic logging system with colors
  • Auto-loading for routes and middleware

๐Ÿ”Œ Plugin System

Vako includes a powerful and extensible plugin system.

Plugin Structure

// plugins/my-plugin.js
module.exports = {
  name: 'my-plugin',
  version: '1.0.0',
  description: 'Description of my plugin',
  
  defaultConfig: {
    enabled: true,
    option1: 'value'
  },

  async load(app, config, context) {
    context.log('success', 'Plugin loaded!');
    
    // Add a route
    context.addRoute('get', '/my-plugin', (req, res) => {
      res.json({ message: 'Hello from plugin!' });
    });
    
    // Add middleware
    context.addMiddleware((req, res, next) => {
      req.pluginData = { source: 'my-plugin' };
      next();
    });
  }
};

TypeScript Plugin

// plugins/my-plugin.ts
import { Plugin, PluginContext } from 'vako';

const myPlugin: Plugin = {
  name: 'my-plugin',
  version: '1.0.0',
  
  async load(app, config, context: PluginContext) {
    context.log('success', 'TypeScript plugin loaded!');
    // ...
  }
};

export default myPlugin;

For more details, see Plugin Documentation.

๐ŸŽจ Advanced Layout System

Vako includes a powerful layout system with sections and helpers.

const app = new App({
  layouts: {
    enabled: true,
    layoutsDir: 'views/layouts',
    defaultLayout: 'main',
    sections: ['head', 'header', 'content', 'footer', 'scripts']
  }
});

Layout Helpers

// In your views
<% layout.title('My Page Title') %>
<% layout.meta('description', 'Page description') %>
<% layout.css('/css/custom.css') %>
<% layout.js('/js/custom.js') %>
<% layout.section('header', '<div>Custom Header</div>') %>

๐Ÿ”ฅ Intelligent Hot Reload

Vako's hot reload system selectively reloads only what's necessary:

  • Modified routes โ†’ Route-only reload
  • Modified views โ†’ Light template reload
  • Static files โ†’ Full browser reload
  • Modified plugins โ†’ Specific plugin reload
  • Modified layouts โ†’ Layout cache clear and reload

๐Ÿ›ฃ๏ธ Route System

Automatic Routes

Vako automatically loads all routes from the routes/ folder:

  • routes/index.js โ†’ /
  • routes/about.js โ†’ /about
  • routes/users/[id].js โ†’ /users/:id

Route File Format

// routes/users.js
module.exports = {
  get: (req, res) => {
    res.render('users', { users: [] });
  },
  post: (req, res) => {
    const newUser = req.body;
    res.status(201).json({ user: newUser });
  }
};

๐Ÿ”„ Auto-Updater

Quick Start

# Global installation
npm install -g vako

# Check for updates
vako update check

# Update to latest version
vako update update

# Configure auto-updater
vako update config

# View statistics
vako update stats

Programmatic Usage

const { App } = require('vako');

const app = new App({
  autoUpdater: {
    enabled: true,
    checkOnStart: true,
    autoUpdate: false,
    updateChannel: 'stable',
    securityUpdates: true,
    backupCount: 5,
    checkInterval: 3600000,
    rollbackOnFailure: true
  }
});

๐Ÿ“š Documentation

๐Ÿ› ๏ธ CLI Commands

# Development
vako dev                    # Start development server
vako dev --port 8080        # Custom port
vako dev --watch "src,views" # Custom watch directories

# Project Setup
vako setup my-app           # Create new project
vako setup --template api   # Create API project
vako setup --template blog # Create blog project

# Production
vako build                 # Build for production
vako start                 # Start production server

# Updates
vako update check           # Check for updates
vako update update         # Update to latest
vako update config         # Configure auto-updater
vako update stats          # View statistics

๐Ÿ“ Project Structure

my-project/
โ”œโ”€โ”€ routes/                 # Route files
โ”‚   โ”œโ”€โ”€ index.js           # Route: /
โ”‚   โ””โ”€โ”€ api/
โ”‚       โ””โ”€โ”€ users.js       # Route: /api/users
โ”œโ”€โ”€ views/                 # View templates
โ”‚   โ”œโ”€โ”€ layouts/          # Layout templates
โ”‚   โ””โ”€โ”€ index.ejs
โ”œโ”€โ”€ public/               # Static files
โ”‚   โ”œโ”€โ”€ css/
โ”‚   โ””โ”€โ”€ js/
โ”œโ”€โ”€ plugins/             # Custom plugins
โ”‚   โ””โ”€โ”€ my-plugin.js
โ”œโ”€โ”€ types/               # TypeScript types (optional)
โ””โ”€โ”€ package.json

๐Ÿค Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

Local Development

git clone https://github.com/sdevfr/vako.git
cd vako
npm install
npm run dev

Testing

npm test
npm run test:watch
npm run lint:check

๐Ÿ“„ License

MIT License - see LICENSE file for details.

๐Ÿ”— Links

  • npm: https://www.npmjs.com/package/vako
  • GitHub: https://github.com/sdevfr/vako
  • Documentation: See docs/ folder
  • Issues: https://github.com/sdevfr/vako/issues

โญ Show Your Support

If you find Vako useful, please consider giving it a star on GitHub!


Vako v1.3.3 - Ultra-modern web framework with TypeScript support and Next.js integration ๐Ÿš€โœจ

Built with โค๏ธ by the Vako team