โ† Blog ยท Migration Guide

Jovo v1 to v4 Migration Guide

Ruben Aegerter ยท ยทUpdated Jan 2024 ยท20 min read

Jovo v4 is a complete rewrite with a new architecture, updated handler syntax, a plugin system, and full TypeScript support. This guide covers everything you need to migrate from any earlier version to v4.

Note: Jovo v4 is not backwards compatible with v1, v2, or v3. Plan a full rewrite of your handlers and project configuration.

What Changed in v4

Component Architecture

Handlers are now organized in Components instead of a flat handler tree. Each component manages its own state, output, and sub-components โ€” similar to React.

Output Templates replace ask()/tell()

The old this.ask() and this.tell() methods are replaced by this.$send() with an Output Template object.

Plugin System v2

All platform integrations (Alexa, Google, Web) and third-party services (NLU, databases, CMS) are now installed as separate npm packages via the Marketplace.

Migration Steps

1. Create a new v4 project

$ npm install -g @jovotech/cli

$ jovo new my-app-v4

2. Move your handler logic into Components

// v1/v2/v3

app.setHandler({

LAUNCH() { this.tell('Hello!'); }

});

// v4

@Global() @Component()

export class GlobalComponent extends BaseComponent {

LAUNCH() { return this.$send({ message: 'Hello!' }); }

}

3. Reinstall platform plugins

$ npm install @jovotech/platform-alexa @jovotech/platform-googleassistant