This week at the Adobe MAX conference, we at Silicon Publishing are proud to release our first Open Source framework. Called “LotusJS,” it’s the brainchild of our Software Architect, Dorian Smiley, the culmination of more than three years of focused effort. We’re confident that it will be quite useful to many around the world – and we hope to attract a growing community of collaborators who can bring it to even greater heights.

We build mission-critical solutions for some of the largest organizations in the world, and have successfully incorporated their development and design teams into the development process using the LotusJS architecture.

What is LotusJS?

LotusJS is a TypeScript framework for building modern web apps using web components with decoupled views.The framework allows the entire component view to be encapsulated in an external HTML template. This view is known as a skin, which can be assigned to a custom tag instance and loaded at runtime. 


Once loaded, the framework maps the view onto the component, using the template’s skin part declarations. This allows design and programming teams to run on parallel tracks, speeding up the design review process and development sprints. LotusJS includes a custom element map, prebuilt components, two-way data binding support, support for ES6 modules, npm, and more. 

What does LotusJS do that Polymer doesn’t?

LotusJS allows designers to create web component skins in static HTML templates without code or framework dependencies. Developers are also free to create component code using abstract HTML elements that expose the minimal API required to fulfill custom behaviors. LotusJS is also built in TypeScript, providing native ES6 module support right out the box, and allows developers to take advantage of the latest ES6 features today.

Does it work in MVW Frameworks like Angular?

Absolutely. LotusJS can work with any of your favorite MVW frameworks, and even offers its own framework called LotusMVW. Using LotusMVW gives the developer access to advanced view mediation features designed from the ground up to support web components based on LotusJS.

How do I get started?

To get started, visit, and review the getting started guide and examples. You can also contact us at SPI if you are interested in implementing LotusJS in your web to print solutions. Be sure to also review in order to familiarize yourself with the language features, and for a better understanding of the web component spec and features.

How do I contribute?

If you are interested in becoming a contributor to LotusJS, email us. We are looking for designers and developers who are passionate about web components, and who see the unique benefits of LotusJS. You can also contribute by forking us on GitHub and issuing a pull request for your changes.

We are eager to receive feedback from early adopters, and we would love to see what you can create. More importantly, we’re interested in receiving your feedback and ideas for improving LotusJS. You can submit feature requests and bug reports directly on GitHub. Finally, to keep up to date with the latest news, be sure to visit and

Share This