Home

Awesome

ZombieBox

ZombieBox is a JavaScript framework for development of Smart TV and STB applications.

Why ZombieBox?

Getting started

Init a node.js project:

npm init

Install ZombieBox and some of its components that you will most likely need:

npm install zombiebox
npm install zombiebox-platform-pc zombiebox-extension-cutejs

Either create application config.js manually and start developing or start with a boilerplate:

npx zombiebox init $NAME

# or without npx:
./node_modules/zombiebox/bin/cli.js init

Run the development server:

npx zombiebox run

Platforms

ZombieBox supports a lot of modern Smart TV and STB platforms and also some legacy but high-demand platforms, which allows you to deliver your application to a wide number of devices. Any capable platform can be easily support by extending it.

Platforms are a subtype of ZombieBox Addon. See addons for more information.

List of supported platforms:

PlatformPackageVersion
Desktop browserszombiebox-platform-pc
Android TVzombiebox-platform-android-tv
Samsung Tizen (2015+)zombiebox-platform-tizen
Samsung Orsay (2012-2014)zombiebox-platform-samsung
LG webOS (2014+)zombiebox-platform-webos
LG NetCast (2012-2014)zombiebox-platform-lg
MAG STBzombiebox-platform-mag
Dune HDzombiebox-platform-dune

Archived platforms:

PlatformPackageVersion
Headless browserszombiebox-platform-headless
Eltex STBzombiebox-platform-eltex
TVIP STBzombiebox-platform-tvip

Installation of a new platform is easy and nothing more than installation of a new npm package with further saving in the dependencies.

For example, for LG Netcast platform:

npm i zombiebox-platform-lg --save

Then configure the installed platform for building of a distribution package:

// Your config.js

module.exports = () => ({
	platforms: {
		lg: {
			// Some platform-specific configuration, see platform documentation
		}
	}
});

Finally, build a package:

npx zombiebox build lg

Extensions:

Extension is a special npm package that extends default functionality of the framework. To add an extension just install a package via npm and save it in the dependencies.

Extensions are a subtype of ZombieBox Addon. See addons for more information.

List of available extensions:

DescriptionPackageVersion
CuteJS Template enginezombiebox-extension-cutejs
Set of basic TV-oriented componentszombiebox-extension-ui
Dependency Injectionzombiebox-extension-dependency-injection
I18n supportzombiebox-extension-i18n
Tools for Pixel Perfect testingzombiebox-extension-pixelperfect
Popup with main info about the applicationzombiebox-extension-about
Lodash library integrationzombiebox-extension-lodash
Environment for interactive UI developmentzombiebox-extension-storybook
Emoji supportzombiebox-extension-emoji
Subtitleszombiebox-extension-ui-subtitles

Configuration

Configuration file is a module that exports a function returning configuration object.

By default, the framework will try to find file config.js in the root of the project, but you can set a custom path passing --config to the CLI commands.

See configuration for details.

CLI commands

Use npx to access ZombieBox CLI utility: npx zombiebox or npx zb.

Change log

See the CHANGELOG.md.

Version policy

ZombieBox is not semver compatible. We tried, but this wasn't working well. ZombieBox tries it's best to follow a version policy close to semver that makes sense.

All ZombieBox components declare their dependencies on each other with peerDependencies field in package.json. Node itself does not enforce this field, but ZombieBox does in its CLI commands.

Behind ZombieBox

ZombieBox was developed and is maintained by Interfaced.

It was created as internal framework for numerous Smart TV and STB applications developed for industry leaders.

License

This library is distributed under MIT license. See LICENSE.

Copyright © 2012-2021, Interfaced. All rights reserved. If you have any questions about license, please write to licensing@zombiebox.tv.