SlideShare a Scribd company logo
Desktop App with NWJS.io
Creating a commercial product with Javascript (and
Node-Webkit)
by Ralf Schwoebel
rs@orga.zone
April, 20th 2015 - Berlin
Hi, this is Ralf...
1995: 1st German shopping mall on the web (Perl)
1997: VShop (C++), distributed by SuSE
2001: SEO for affili.net merchants (Perl)
2005: Tradebit.com – download marketplace (PHP+JS)
2015: crypted.company – Open Source encryption (JS)
& orga.zone AG, business app hosting (PHP+JS)
4/21/2015 2
Creating a commercial JS product
One source to rule them all?
• Planning and coding
• Release
• Distribution (aka: how can we sell it?)
4/21/2015 3
Choosing the frameworks
After 2 years “fiddeling“ in that market:
There is no simple single source approach to deliver
more complicated apps (file management, data
manipulation) out of 1 code base!
if($code == “javascript“) {
$desktop = ;
$phablet = ;
}
4/21/2015 4
Going NW.js
NW.js (http://nwjs.io/ - previously know as Node-Webkit)
from a business point of view:
• gives you the power of NodeJS (full system control)
• lets you create a .pgk, .dmg, .exe, .rpm to distribute
• is stable enough for professional use
• comes basically with a Chrome browser (think “customer
reach”)
4/21/2015 5
NW.js
4/21/2015 6
Live Demo,
if network is available
We tried to put all
none-CommonJS
methods
in extra classes!
First steps: asynchronous is hard
Asynchronous may result in bad looking code – aka
“Pyramid of Doom”… (promises may help) or you can:
…
fileTimestamp: function( strFilename, arrParams, successFunction ) {
try {
var n = Bz.fileTimestampSync( strFilename );
if ( successFunction ) {
if ( arrParams ) arrParams['return'] = n;
(successFunction)( arrParams );
}
} catch ( e ) { Bz.alert( e ); }
},
…
4/21/2015 7
From 0 to Version 1.0
Our product creation process took 5 months without the
initial learning curve
4/21/2015 8
Learning
Asynchronous
JS
Learning
Node-Webkit
& nodeJS
Planning the
product
Coding &
Designing
the product
Learning about
App Stores
& pitfalls
Release
Nov Dec Jan Feb Mar Apr May Jun
2014
C&D letter
October
The result - Today
The source is on GitHub - https://crypted.company/
4/21/2015 9
But now the commercial part?
Submission of NW.js packages (.pkg) to the OS X App Store:
Windows: no problem!
4/21/2015 10
But now the commercial part?
Direct sales via redistribution partners: works much better!
4/21/2015 11
Commercial Release - Basics
The extras around a professional software release costs you
days to weeks to make right:
4/21/2015 12
• Signed packages for install (certificates, etc.): OS X,
Windows: only with valid certs
• Without extra efforts: your source code is always
available in the package
• OS X App store can be a real revenue stream (we
have managed to put a “light” version there)
• PAD is your friend: 25,000 downloads in 3 months
Commercial Software: PAD
http://pad.asp-software.org/
4/21/2015 13
• XML format to describe your software packages
• Directory submission
Summary
4/21/2015 14
• Node-Webkit is good for production, commercial releases
• Do not underestimate the administrative workload around
publication
• Targetting Desktop & Smartphones out of one code base:
almost as much work as coding it twice.
• For complex tasks (file operations): Javascript can be slow!
• Don‘t forget to register your work: https://apps.orga.zone/
Thanks a bunch
4/21/2015 15
Thanks & make it so
Ralf Schwoebel
rs@orga.zone
twitter: @orgaralf

More Related Content

PPTX
Anatomy of mobile App development
PPTX
HTML5 AppCache: The Manifest
PDF
Busting myths about business apps, low code style
PPTX
FAKE (F# Make) & Automation
PDF
Collab Mtl 2016 - PowerApps
PDF
Phonegap - Girl Geek Sydney
PPTX
.Net vs JAVA: Which One To Choose In 2022
ODP
What is PhoneGap?
Anatomy of mobile App development
HTML5 AppCache: The Manifest
Busting myths about business apps, low code style
FAKE (F# Make) & Automation
Collab Mtl 2016 - PowerApps
Phonegap - Girl Geek Sydney
.Net vs JAVA: Which One To Choose In 2022
What is PhoneGap?

What's hot (20)

ODP
Dolibarr - Information for developers and partners - devcamp valence 2018
PPTX
Deep dive phonegap
PPTX
Building mobile apps using Phonegap
PDF
Let Writers Write: Automating the Boring Stuff for Our Docs Team
ODP
Dolibarr - What's new in 9.0 - devcamp valence 2018
PDF
2018-10-18 J2 4A - How to empower and support your citizen developers - Tracy...
PPTX
How to create a Windows app with Project Siena, SharePoint and Office 365
PDF
Joiz Erik Funk MOMO42
PPTX
Aspect oriented programming
KEY
Flash dead ?
KEY
Phone gap
PPTX
Benefits of codeigniter in web development
PPTX
Developing Data Visualizations for Excel
ODP
App management
PPSX
Outsystems user group 2021 03 04 - cm app
PPTX
Building Better Web Apps with F#
PDF
No code, low code, machine code QA ATL 2021
PDF
Cross-Platform Mobile Development with PhoneGap-Vince Bullinger
PPTX
Building Better Web Apps with F#
PPTX
EVOLVE'16 | Deploy | Varun Mitra | Introduction to AEM based e-commerce
Dolibarr - Information for developers and partners - devcamp valence 2018
Deep dive phonegap
Building mobile apps using Phonegap
Let Writers Write: Automating the Boring Stuff for Our Docs Team
Dolibarr - What's new in 9.0 - devcamp valence 2018
2018-10-18 J2 4A - How to empower and support your citizen developers - Tracy...
How to create a Windows app with Project Siena, SharePoint and Office 365
Joiz Erik Funk MOMO42
Aspect oriented programming
Flash dead ?
Phone gap
Benefits of codeigniter in web development
Developing Data Visualizations for Excel
App management
Outsystems user group 2021 03 04 - cm app
Building Better Web Apps with F#
No code, low code, machine code QA ATL 2021
Cross-Platform Mobile Development with PhoneGap-Vince Bullinger
Building Better Web Apps with F#
EVOLVE'16 | Deploy | Varun Mitra | Introduction to AEM based e-commerce
Ad

Viewers also liked (12)

KEY
JavaScript Growing Up
PDF
OnConnectionLost: The life of an offline web application - JSUnconf 2015
PPT
Incorporating Web Services in Mobile Applications - Web 2.0 San Fran 2009
PDF
HTML5: friend or foe (to Flash)?
PDF
Offline Strategies for HTML5 Web Applications - oscon13
PPTX
From JavaEE to Android: Way in one click?
PPT
HTML5 Offline Web Application
PDF
Offline strategies for HTML5 web applications - frOSCon8
PDF
Online / Offline
PDF
HTML5 Offline Web Applications (Silicon Valley User Group)
PDF
Anatomy of an HTML 5 mobile web app
PPTX
Html5 Offline Applications
JavaScript Growing Up
OnConnectionLost: The life of an offline web application - JSUnconf 2015
Incorporating Web Services in Mobile Applications - Web 2.0 San Fran 2009
HTML5: friend or foe (to Flash)?
Offline Strategies for HTML5 Web Applications - oscon13
From JavaEE to Android: Way in one click?
HTML5 Offline Web Application
Offline strategies for HTML5 web applications - frOSCon8
Online / Offline
HTML5 Offline Web Applications (Silicon Valley User Group)
Anatomy of an HTML 5 mobile web app
Html5 Offline Applications
Ad

Similar to Updated: NW.js - Desktop Apps with Javascript (20)

PDF
Develop an app for Windows 8 using HTML5
PDF
Progressive Web Apps - Goto Chicago 2017
PDF
Tech Thursdays: Building Products
PDF
12 Reasons to Choose NodeJS for Product Development.pdf
PDF
Progressive Web Apps – the return of the web?
PDF
Spend Stack: An iOS Case Study
PDF
James Turner (Caplin) - Enterprise HTML5 Patterns
PPTX
Building The Wix SDK
PDF
Dreamweaver CS6, jQuery, PhoneGap, mobile design
KEY
Nitobi/PhoneGap at Bootup 2011
KEY
Mobile Apps for Businesses
PDF
One Man Dev Team - FATC 2011
PDF
Boosting up Web & Mobile App Development
PDF
10 Key Criteria for Mobile Platform Selection
PDF
The Open Commerce Conference - Premature Optimisation: The Root of All Evil
KEY
Introduction to iPhone App Development - midVentures DESIGN+DEVELOP
PPTX
Quick prototyping apps using JS - Ciklum, Vinnitsa
PPTX
Appscrip Sales Partner App Reseller
PDF
Ajax World West
PPTX
Open Web Technologies and You - Durham College Student Integration Presentation
Develop an app for Windows 8 using HTML5
Progressive Web Apps - Goto Chicago 2017
Tech Thursdays: Building Products
12 Reasons to Choose NodeJS for Product Development.pdf
Progressive Web Apps – the return of the web?
Spend Stack: An iOS Case Study
James Turner (Caplin) - Enterprise HTML5 Patterns
Building The Wix SDK
Dreamweaver CS6, jQuery, PhoneGap, mobile design
Nitobi/PhoneGap at Bootup 2011
Mobile Apps for Businesses
One Man Dev Team - FATC 2011
Boosting up Web & Mobile App Development
10 Key Criteria for Mobile Platform Selection
The Open Commerce Conference - Premature Optimisation: The Root of All Evil
Introduction to iPhone App Development - midVentures DESIGN+DEVELOP
Quick prototyping apps using JS - Ciklum, Vinnitsa
Appscrip Sales Partner App Reseller
Ajax World West
Open Web Technologies and You - Durham College Student Integration Presentation

More from Ralf Schwoebel (18)

PPTX
Pagespeed SEO 2018: Google Mobile Index Optimization
PPTX
APIconference London 2018: Turning code into wine
PPTX
German: Softwareprodukte aus einem Source Code mit Javascript
PPT
Mobile Convergence: Trends for Online Marketeers
PPTX
Technologie und SEO: Cloud, Big Data und Mobile First angeschaut
PPT
Mastering On-Site Search / Custom Site Search
PPTX
German: SMX Munich - Twitter Marketing
PPTX
German Online Roundtable Frankfurt (OSF)
PPT
International and European SEO - Pubcon 2008
PPTX
SEOkomm 2012: Beyond SEO in German - Mehr Traffic ohne Google
PPTX
German Intro: Strategische Markenberatung
PPT
German: Frankfurt im Überblick für Buchmesse-Besucher
PPTX
MySQL Install for Replication - Real Life Tutorial
PPTX
Seven steps to great PC health (Windows)
PPTX
How to make your website IPv6 ready (quickly)
PPT
Simple Site Speed Improvements (SMX 2010)
PPT
Hosting Issues and SEO
PPT
Pubcon 2012 Blog and Site performance
Pagespeed SEO 2018: Google Mobile Index Optimization
APIconference London 2018: Turning code into wine
German: Softwareprodukte aus einem Source Code mit Javascript
Mobile Convergence: Trends for Online Marketeers
Technologie und SEO: Cloud, Big Data und Mobile First angeschaut
Mastering On-Site Search / Custom Site Search
German: SMX Munich - Twitter Marketing
German Online Roundtable Frankfurt (OSF)
International and European SEO - Pubcon 2008
SEOkomm 2012: Beyond SEO in German - Mehr Traffic ohne Google
German Intro: Strategische Markenberatung
German: Frankfurt im Überblick für Buchmesse-Besucher
MySQL Install for Replication - Real Life Tutorial
Seven steps to great PC health (Windows)
How to make your website IPv6 ready (quickly)
Simple Site Speed Improvements (SMX 2010)
Hosting Issues and SEO
Pubcon 2012 Blog and Site performance

Recently uploaded (20)

PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PDF
MIND Revenue Release Quarter 2 2025 Press Release
PPTX
Spectroscopy.pptx food analysis technology
PPT
Teaching material agriculture food technology
PDF
Encapsulation_ Review paper, used for researhc scholars
PDF
Electronic commerce courselecture one. Pdf
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PDF
gpt5_lecture_notes_comprehensive_20250812015547.pdf
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
PDF
Assigned Numbers - 2025 - Bluetooth® Document
PDF
Approach and Philosophy of On baking technology
PDF
Empathic Computing: Creating Shared Understanding
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PPTX
MYSQL Presentation for SQL database connectivity
PPTX
Cloud computing and distributed systems.
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PDF
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
Dropbox Q2 2025 Financial Results & Investor Presentation
MIND Revenue Release Quarter 2 2025 Press Release
Spectroscopy.pptx food analysis technology
Teaching material agriculture food technology
Encapsulation_ Review paper, used for researhc scholars
Electronic commerce courselecture one. Pdf
The Rise and Fall of 3GPP – Time for a Sabbatical?
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
gpt5_lecture_notes_comprehensive_20250812015547.pdf
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
Assigned Numbers - 2025 - Bluetooth® Document
Approach and Philosophy of On baking technology
Empathic Computing: Creating Shared Understanding
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
MYSQL Presentation for SQL database connectivity
Cloud computing and distributed systems.
Building Integrated photovoltaic BIPV_UPV.pdf
Digital-Transformation-Roadmap-for-Companies.pptx
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton

Updated: NW.js - Desktop Apps with Javascript

  • 1. Desktop App with NWJS.io Creating a commercial product with Javascript (and Node-Webkit) by Ralf Schwoebel rs@orga.zone April, 20th 2015 - Berlin
  • 2. Hi, this is Ralf... 1995: 1st German shopping mall on the web (Perl) 1997: VShop (C++), distributed by SuSE 2001: SEO for affili.net merchants (Perl) 2005: Tradebit.com – download marketplace (PHP+JS) 2015: crypted.company – Open Source encryption (JS) & orga.zone AG, business app hosting (PHP+JS) 4/21/2015 2
  • 3. Creating a commercial JS product One source to rule them all? • Planning and coding • Release • Distribution (aka: how can we sell it?) 4/21/2015 3
  • 4. Choosing the frameworks After 2 years “fiddeling“ in that market: There is no simple single source approach to deliver more complicated apps (file management, data manipulation) out of 1 code base! if($code == “javascript“) { $desktop = ; $phablet = ; } 4/21/2015 4
  • 5. Going NW.js NW.js (http://nwjs.io/ - previously know as Node-Webkit) from a business point of view: • gives you the power of NodeJS (full system control) • lets you create a .pgk, .dmg, .exe, .rpm to distribute • is stable enough for professional use • comes basically with a Chrome browser (think “customer reach”) 4/21/2015 5
  • 6. NW.js 4/21/2015 6 Live Demo, if network is available We tried to put all none-CommonJS methods in extra classes!
  • 7. First steps: asynchronous is hard Asynchronous may result in bad looking code – aka “Pyramid of Doom”… (promises may help) or you can: … fileTimestamp: function( strFilename, arrParams, successFunction ) { try { var n = Bz.fileTimestampSync( strFilename ); if ( successFunction ) { if ( arrParams ) arrParams['return'] = n; (successFunction)( arrParams ); } } catch ( e ) { Bz.alert( e ); } }, … 4/21/2015 7
  • 8. From 0 to Version 1.0 Our product creation process took 5 months without the initial learning curve 4/21/2015 8 Learning Asynchronous JS Learning Node-Webkit & nodeJS Planning the product Coding & Designing the product Learning about App Stores & pitfalls Release Nov Dec Jan Feb Mar Apr May Jun 2014 C&D letter October
  • 9. The result - Today The source is on GitHub - https://crypted.company/ 4/21/2015 9
  • 10. But now the commercial part? Submission of NW.js packages (.pkg) to the OS X App Store: Windows: no problem! 4/21/2015 10
  • 11. But now the commercial part? Direct sales via redistribution partners: works much better! 4/21/2015 11
  • 12. Commercial Release - Basics The extras around a professional software release costs you days to weeks to make right: 4/21/2015 12 • Signed packages for install (certificates, etc.): OS X, Windows: only with valid certs • Without extra efforts: your source code is always available in the package • OS X App store can be a real revenue stream (we have managed to put a “light” version there) • PAD is your friend: 25,000 downloads in 3 months
  • 13. Commercial Software: PAD http://pad.asp-software.org/ 4/21/2015 13 • XML format to describe your software packages • Directory submission
  • 14. Summary 4/21/2015 14 • Node-Webkit is good for production, commercial releases • Do not underestimate the administrative workload around publication • Targetting Desktop & Smartphones out of one code base: almost as much work as coding it twice. • For complex tasks (file operations): Javascript can be slow! • Don‘t forget to register your work: https://apps.orga.zone/
  • 15. Thanks a bunch 4/21/2015 15 Thanks & make it so Ralf Schwoebel rs@orga.zone twitter: @orgaralf