');-webkit-mask-repeat:no-repeat;-webkit-mask-position:50% 0;-webkit-mask-size:.5em 1em;-webkit-clip-path:inset(0 0 calc(1em - .5em) 0)padding-box;clip-path:inset(0 0 calc(1em - .5em) 0)padding-box;background-color:currentColor!important;margin-left:.125rem;padding:0 .25em;opacity:.84}.btn{display:inline-block;background-color:#055deb;color:#fff;font-size:16px;line-height:1.5;font-weight:700;text-align:center;text-decoration:none;padding:14px 24px;border-radius:28px;vertical-align:middle;border:2px solid transparent;will-change:background-color,color}@media screen and (max-width:640px){.btn{padding:14px 16px}}.icon-button{position:relative;width:48px;height:48px;border-radius:50%}.icon-button .icon{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:24px;color:#055deb}.arrow-link{display:inline-flex;align-items:center;text-decoration:none;font-size:16px;font-weight:700;line-height:1.2;margin:0;padding:0}.arrow-link span{color:inherit;border-bottom:1px solid transparent}.arrow-link svg{width:20px;height:20px}.arrow-link.prev span{margin-left:4px;padding-top:2px;order:2}#cookie-notice{display:none;position:fixed;background-color:rgba(35,37,38,.97);left:0;right:0;bottom:-200px;box-shadow:0 -1px 14px rgba(0,0,0,6%),0 -1px 2px rgba(0,0,0,4%),0 -5px 15px rgba(0,0,0,4%);transform:translateZ(0);animation:slideUpCookieNotice .6s 1s ease-in forwards;z-index:100}#cookie-notice .cookie-content{position:relative;display:flex;align-items:center;justify-content:center;padding-top:12px;padding-bottom:12px}#cookie-notice .cookie-text{color:rgba(255,255,255,.7);font-size:14px}#cookie-notice .cookie-text a{text-decoration:none;color:rgba(255,255,255,.7);border-bottom:1px solid rgba(255,255,255,.54)}@media screen and (max-width:576px){#cookie-notice .cookie-text{padding-right:146px}}#cookie-notice .agree-btn{margin:0 0 0 24px;padding:12px 24px}@media screen and (max-width:576px){#cookie-notice .agree-btn{position:absolute;display:flex;align-items:center;justify-content:center;top:0;right:0;bottom:0;border-radius:0}}@keyframes slideUpCookieNotice{100%{bottom:0}}input{font-family:pragmatica,Helvetica,Arial,sans-serif;font-size:16px;padding:12px 16px;border-radius:3px;border:1px solid #c6c6c6;margin-bottom:28px}form label{display:block;font-size:14px;color:#212121;font-weight:700;margin-bottom:4px}.loading-screen{display:none}.loading-screen .loading-screen-container{display:flex;flex-direction:column;justify-content:center;align-items:center;position:fixed;top:0;right:0;bottom:0;left:0;background-color:rgba(255,255,255,.95);z-index:1001;text-align:center}.loading-screen .sending .text{margin-top:12px;margin-left:10px}.loading-screen .error{display:none;max-width:640px;margin:0 auto}.loading-screen .error .title{font-weight:300}.loading-screen .error .btn-back .arrow-link{margin-top:40px;margin-left:-24px}.expandable-section .expandable-section-link .link-show-more [class*=text-]{border-bottom:2px solid transparent}.expandable-section .expandable-section-link .link-show-more .text-hide{display:none}.animated-arrow-icon.to-left{transform:scaleX(-1)}.animated-arrow-icon .arrow-container{transform:translateX(-4px)}.animated-arrow-icon .arrow-line{stroke-dasharray:13px;stroke-dashoffset:13px}body,html{height:100%;margin:0;padding:0;color:#212121;font-family:pragmatica,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased}html{scroll-padding-top:64px}.wrapper{min-height:100%;display:flex;flex-direction:column;align-items:stretch}.main{flex-grow:1}.content-holder{position:relative;max-width:1260px;margin-right:auto;margin-left:auto;padding-right:40px;padding-left:40px}@media screen and (max-width:768px){.content-holder{padding-right:32px;padding-left:32px}}@media screen and (max-width:480px){.content-holder{padding-right:20px;padding-left:20px}}.page-content{padding-top:calc(var(--navbar-height) + 40px);padding-bottom:80px}@media screen and (max-width:768px){.page-content{padding-top:calc(var(--navbar-height) + 24px);padding-bottom:56px}}#navbar{position:absolute;width:100%;height:var(--navbar-height);z-index:1000;background-color:var(--navbar-color)}#navbar .content-holder{height:100%}#navbar .nav-container{display:flex;height:100%;align-items:center}.navigation{height:100%}@media screen and (max-width:876px){.navigation{display:none}}.navigation .nav-list{display:flex;height:100%;list-style:none}#navbar{--navbar-item-bg:rgba(255, 255, 255, .12);--navbar-item-underline:rgba(255, 255, 255, .75)}.nav-item{display:flex;align-items:center;padding:0 22px;border-radius:0 0 8px 8px;-webkit-transform:translateZ(0)}@media screen and (max-width:1200px){.nav-item{padding:0 14px}}@media screen and (max-width:1024px){.nav-item{padding:0 10px}}.nav-item.opens-subnav{border-radius:0}.nav-item .nav-link{text-decoration:none;font-size:15px;color:var(--navbar-link-color);font-weight:700;line-height:20px;opacity:.75}@media screen and (min-width:961px){.nav-item .nav-link{font-size:16px}}.nav-item .nav-link span{padding-bottom:1px;border-bottom:1px solid transparent}.nav-item .nav-link.with-caret-icon:after{content:'';display:inline-block;vertical-align:middle;margin:-3px 0 0 6px;border-bottom:2px solid #fff;border-right:2px solid #fff;width:6px;height:6px;transform:rotate(45deg);transform-origin:66% 66%}.nav-item .nav-link.external-link{display:flex}.nav-item .nav-link.external-link span{margin-bottom:-2px}.products #navbar .navigation .nav-item .nav-link span{border-style:dotted}.mobile-subnav .subsection-holder .subsection-title,.subnav-topbar .title-holder .title{color:rgba(0,0,0,.38);font-size:20px;font-weight:300}.subnav{visibility:hidden;opacity:0;background-color:#fff;will-change:opacity}@media screen and (max-width:876px){.subnav{width:100%;overflow-x:hidden}}.subnav .desktop-subnav,.subnav .mobile-subnav{display:none;height:100%}@media screen and (min-width:877px){.subnav .desktop-subnav{display:block}}.subnav .desktop-subnav .subsection{display:none}@media screen and (max-width:876px){.subnav .mobile-subnav{display:block}}.subnav .content-holder{overflow:auto}@media screen and (min-width:877px){.subnav .content-holder{padding-top:32px}}.subnav .navigation{display:block;padding-bottom:32px;height:auto}@media screen and (min-width:877px){.subnav .navigation{border-bottom:1px dotted rgba(0,0,0,.16);margin-bottom:32px}}.subnav .navigation .nav-list .nav-item{padding:0 32px 0 0}.subnav .navigation .nav-list .nav-item .nav-link{font-size:16px;font-weight:400;color:#212121;opacity:1}.subnav .navigation .nav-list .nav-item .nav-link.with-caret-icon:after{display:none}.mobile-subnav .subnav-body{display:flex;width:200%;height:calc(var(--app-window-height) - var(--navbar-height) - 72px);will-change:transform}.mobile-subnav .nav-holder,.mobile-subnav .subsection-holder{width:100%}.mobile-subnav .subsection-holder{will-change:transform}.mobile-subnav .subsection-holder .subsection{display:none}.mobile-subnav .subsection-holder .subsection-title{margin:16px 0 12px}.mobile-subnav .navigation{padding:0 0 12px}.mobile-subnav .navigation .nav-list{flex-direction:column}.mobile-subnav .navigation .nav-list .nav-item{padding:0;margin:0 -16px}.mobile-subnav .navigation .nav-list .nav-item .nav-link{width:100%;padding:20px 16px;border-radius:3px}.subnav-topbar{position:relative;padding:12px 0}@media screen and (min-width:877px){.subnav-topbar{display:none}}.subnav-topbar .subnav-underline{position:absolute;left:0;bottom:0;width:100%;height:1px;background:linear-gradient(90deg,rgba(0,0,0,.12),rgba(0,0,0,.12) 50%,transparent 0,transparent);background-size:6px 1px}.subnav-topbar .topbar-holder{display:flex;align-items:center;justify-content:space-between}.subnav-topbar .title-holder{display:flex;align-items:center}.subnav-topbar .title-holder .arrow-link{display:none}.subnav-topbar .close-btn{margin-right:-6px}.subnav-topbar .close-btn .icon-button .icon{color:rgba(0,0,0,.26)}@media screen and (max-width:876px){.subnav-content{margin-top:16px}}@media screen and (min-width:877px){.subnav-content.services .category-products{flex-direction:row}.subnav-content.services .category-products .product-item:not(:first-child){margin-left:24px}}.subnav-content .section .heading{color:#055deb;font-size:24px;font-weight:300;padding-top:0;margin-bottom:24px}@media screen and (min-width:877px){.subnav-content .section .heading{display:none}}@media screen and (max-width:876px){.subnav-content .section .heading{color:#8f95a3;font-size:20px}}.subnav-content .section .heading+.category{margin-top:-16px}.subnav-content ul{list-style:none}.subnav-content .categories{display:flex;flex-direction:row;-moz-column-gap:32px;column-gap:32px}@media screen and (max-width:876px){.subnav-content .categories{flex-direction:column}}.subnav-content .category{padding:0 40px 40px 0}@media screen and (max-width:876px){.subnav-content .category{padding-bottom:24px;padding-right:0}}.subnav-content .category .subheading{color:#8f95a3;font-size:14px;margin-bottom:10px}@media screen and (min-width:877px){.subnav-content .category .subheading{font-size:16px}}.subnav-content .category-products{display:flex;flex-direction:column}@media screen and (min-width:877px){.product-item{margin-left:-16px}}@media screen and (max-width:876px){.product-item{margin-right:0}}.product-item .product-link{display:flex;flex-direction:row;align-items:center;padding:16px;border-radius:8px;min-width:100px;text-decoration:none}@media screen and (min-width:877px){.product-item .product-link{max-width:400px}}@media screen and (max-width:876px){.product-item .product-link{padding:14px 16px;margin-left:-16px;margin-right:-16px}}.product-item .product-link.with-description{align-items:flex-start}.product-item .product-link.active{background-color:rgba(200,221,255,.2)}.product-item .product-link.active span{color:#055deb;font-weight:700}@media screen and (min-width:877px){.product-item .product-link.active{background-color:var(--product-color)}.product-item .product-link.active span{color:#fff}.product-item .product-link.active .description{color:#fff}.product-item .product-link.active svg:not(.outline-logo) path{fill:#fff}}.product-item .product-link .external-link{display:flex}.product-item .product-link svg{flex-shrink:0;margin-right:12px;width:44px;height:44px}@media screen and (max-width:876px){.product-item .product-link svg{margin:0 16px 0 0;width:32px;height:32px}}.product-item .product-link span{font-size:15px;color:#212121}@media screen and (max-width:876px){.product-item .product-link span{font-size:16px}}.product-item .product-link .description{font-size:14px;color:#6a707f;margin-top:4px}#navbar{--logo-underline:white;--product-teamdev-logo:white;--menu-icon:white;--menu-icon-border:rgba(255, 255, 255, .54)}.logo .logo-nav-link .icon-menu{font-size:24px;color:var(--menu-icon)}.logo .logo-nav-link .icon-menu:before{display:flex;align-items:center;justify-content:center;height:40px;width:40px}.logo{height:100%;margin-right:auto}.logo .logo-nav-link{display:flex;align-items:center;text-decoration:none;height:100%;padding:0 20px;margin-left:-20px;will-change:width}@media screen and (max-width:876px){.logo .logo-nav-link{display:flex;align-items:center;height:100%}}.logo .logo-nav-link .teamdev-logo{height:30px}@media screen and (max-width:876px){.logo .logo-nav-link .teamdev-logo{height:24px}}@media screen and (min-width:877px){.logo .logo-nav-link .icon-menu{display:none}}.logo .logo-nav-link.product-logo{position:relative}.logo .logo-nav-link.product-logo .teamdev-logo{position:absolute;top:0;width:100px;transform-origin:left;transform:scale(.45)translateY(0)translateZ(0);will-change:transform}.logo .logo-nav-link.product-logo .teamdev-logo svg path{fill:var(--product-teamdev-logo)}.logo .logo-nav-link.product-logo .icon-menu{border:1px solid var(--menu-icon-border);margin:-1px}.logo .logo-nav-link.product-logo .product-sign{flex-shrink:0;display:inline-block;width:40px;height:40px;vertical-align:middle}.logo .logo-nav-link.product-logo .product-sign svg path{fill:#fff}.logo .logo-nav-link.product-logo .product-name{text-decoration:none;font-size:30px;font-weight:300;color:var(--navbar-logo-text-color);line-height:1;margin:3px 0 0 8px;vertical-align:middle;border-bottom:1px dotted transparent}@media screen and (max-width:1080px){.logo .logo-nav-link.product-logo .product-name{font-size:26px;margin-top:1px}}@media screen and (max-width:960px){.logo .logo-nav-link.product-logo .product-name{font-size:20px}}@media screen and (max-width:876px){.logo .logo-nav-link.product-logo .icon-menu,.logo .logo-nav-link.product-logo .teamdev-logo{display:none}}@media screen and (max-width:480px){.logo .logo-nav-link.product-logo{width:126px}.logo .logo-nav-link.product-logo .icon-menu{display:block;border-color:transparent}.logo .logo-nav-link.product-logo .product-sign{margin-left:6px}.logo .logo-nav-link.product-logo .product-name{display:none}}#navbar{--lang-select-arrow-color:rgba(255, 255, 255, .64);--lang-select-bg-color:rgba(255, 255, 255, .12)}@media screen and (min-width:877px){.mobile-arrow-nav-item{display:none}}.mobile-arrow-nav-item .nav-link{display:flex;align-items:center;flex-direction:row;justify-content:space-between;padding:22px 0;color:#212121;border-top:1px dotted rgba(0,0,0,.16)}.mobile-arrow-nav-item .icon{font-size:24px;color:rgba(0,0,0,.26);margin-right:6px}:root{--snackbar-bottom-position:20px}.cli{position:relative;display:flex;font-family:fira code,monospace;border-radius:10px;background-color:#f0f2f5;padding:18px 48px 18px 32px;text-align:left}@media screen and (max-width:576px){.cli{padding-left:12px;padding-right:32px}}@media screen and (max-width:420px){.cli{font-size:13px}}.cli .sign{color:#8f95a3;margin-right:10px}.cli #copy-cli-code{position:absolute;top:4px;right:6px;display:flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:24px}@media screen and (max-width:576px){.cli #copy-cli-code{right:0}}@media screen and (max-width:420px){.cli #copy-cli-code{top:2px}}.cli #copy-cli-code i{font-size:20px;color:#8f95a3}.thank-you-section{display:none}.thank-you-section .thank-you-holder{max-width:460px;margin:0 auto;text-align:center}.thank-you-section .icon{font-size:64px;color:#055deb}.thank-you-section .title{padding-top:8px;margin-bottom:8px}:root{--hero-overlay-color:black}.molybden #navbar .nav-item .nav-link{opacity:1}.molybden .hero{overflow:hidden}.molybden .hero .page-content{position:relative}.molybden .hero .page-content .image-blur-left,.molybden .hero .page-content .image-blur-right{position:absolute;z-index:-1}@media screen and (max-width:960px){.molybden .hero .page-content .image-blur-left,.molybden .hero .page-content .image-blur-right{display:none}}.molybden .hero .page-content .image-blur-left{top:-70px;left:-800px}.molybden .hero .page-content .image-blur-right{right:-840px;bottom:-130px;transform:rotate(300deg)scale(.6)}@media screen and (max-width:1440px){.molybden .hero .page-content .image-blur-right{display:none}}.molybden .hero .diagram{text-align:center}@media screen and (max-width:640px){.molybden .hero .diagram{display:none}}.molybden .hero .hero-text{display:flex;flex-direction:column;align-items:center;text-align:center}@media screen and (max-width:640px){.molybden .hero .hero-text{margin-top:40px}}.molybden .hero .title{position:relative;width:-moz-fit-content;width:fit-content;font-size:74px;color:#212121;line-height:1.2;font-weight:900;padding-top:0;margin-bottom:12px}@media screen and (max-width:640px){.molybden .hero .title{font-size:48px}}.molybden .hero .title .label{position:absolute;right:2px;top:-4px;padding:5px 8px 4px;color:#8f95a3;font-size:15px;font-weight:400;text-transform:uppercase;line-height:1;letter-spacing:1.3px;border:1px solid #b5bac7;border-radius:3px}@media screen and (max-width:640px){.molybden .hero .title .label{right:0;padding:3px 4px;font-size:10px}}.molybden .hero .subtitle{max-width:490px;font-size:24px;font-weight:400;line-height:1.5;padding-top:0;margin-bottom:0}.molybden .hero .cli{margin-top:34px;max-width:460px;width:100%}.molybden .how-it-works .step-supported-platforms .platform:first-child{grid-area:a}.molybden .how-it-works .step-supported-platforms .platform:nth-child(2){grid-area:b}.molybden .how-it-works .step-supported-platforms .platform:nth-child(3){grid-area:c}.molybden .how-it-works .step-supported-platforms .platform:nth-child(4){grid-area:d}.molybden .waiting-list .title{font-size:32px;font-weight:300;margin-bottom:16px}.molybden .waiting-list .waiting-list-form .form-elements-holder .input-container label{display:none}.molybden .waiting-list .waiting-list-form .form-elements-holder .input-container input{width:100%;padding:16px 24px;border-radius:28px}.molybden .waiting-list .thank-you-section .thank-you-holder{max-width:720px;margin-bottom:16px}.molybden .waiting-list .thank-you-section .icon{color:#055deb}.molybden .waiting-list .thank-you-section .subtitle{max-width:480px;margin:0 auto;font-size:18px}
Products
Browser integration
Java native integration
Domain-Driven Design
Molybden
Preview
Build cross-platform C++ desktop apps with HTML/CSS/JavaScript GUI $
npm create molybden-app@latest
Quick start guide
How it works
Generate a project with Molybden CLI Provide the project name The title of your final desktop app will match the given project name. Change the app title anytime.
Pick your favorite HTML/CSS/JavaScript GUI framework Molybden will download and install all the dependencies using npm.
Develop, debug, and preview Implement app business logic in C++ Molybden CLI generates a CMake project you can open in your favorite C++ IDE.
Develop, debug, and run your desktop app right from your IDE or using the command-line interface:
Use the power of the rich C++ ecosystem with a wide range of libraries, frameworks, and tools for building performant desktop apps.
Work with the operating system low-level native APIs and access hardware.
Build modern app UI with web technologies Use a wide range of web developer tools, frameworks, ready-to-use UI components for building modern, cross-platform, cost-effective, rich and interactive user interface for your desktop app.
Debug JavaScript and modify DOM/CSS with the built-in Chromium DevTools .
Spin up a dev server with Hot Module Replacement , reflect the UI changes in the app on the fly.
Invoke C++ from JavaScript and vice versa Calling C++ functions and objects from JavaScript has never been easier with the
automatic type conversion , high performance, and optimal memory usage.
Brand, build, and distribute Add branding to your app Customize your application title, icon, description, copyright, version, etc.
Sign & notarize your app Make your app trustworthy for the end users by signing and notarizing it.
Build a native executable Ship your app as a native executable for the best user experience on all major platforms.
Features An ample toolbox for your next desktop application
Cross-platform Run your app on Windows, macOS, and Linux with x64 and Apple Silicon architectures.
Learn more Frontend frameworks Build user interface with any JavaScript frontend framework: React, Vue, Angular, Vanilla, etc.
Learn more Performance Write your app business logic in C++ to get the best performance and optimal memory usage.
Learn more JavaScript ↔ C++ Invoke C++ code from JavaScript and vice versa with the automatic type conversion.
Learn more Native executable Ship your app in the native executable format for the best user experience.
Learn more Protection Write the proprietary business logic in C++ and ship it the native binary format to protect it from analysis and theft.
App branding Customize your app name, icon, description, copyright, etc.
Learn more Dark/light mode Easily adapt to the end user’s system-wide theme preferences.
File system dialogs Show the native Open File/Folder or Save File dialogs in your app.
Desktop notifications Use the native desktop notifications to let the users know of important events in your app.
Application menu Customize the main application menu on macOS with both the standard and custom menu items.
Learn more Context menu Create a context menu with both standard and custom menu items.
Learn more Standard commands Execute the standard built-in commands such as Print, Find, Zoom In/Out, Exit, etc.
Message dialogs Display the cross-platform native message dialogs.
Customizable windows Change the look and control the behavior of your app window.
Learn more Keyboard shortcuts Filter the keyboard and mouse events. Register your own shortcuts.
Touch screens Run your app on the touch devices with full support of touch gestures.
Drag & drop Let the end users drag and drop selected text, links, images, etc.
Localization Localize the message dialogs and the app UI controls in more than 50 languages.
Multiple windows Create and display multiple windows including popups.
Learn more DevTools Inspect DOM, debug JavaScript, optimize the HTML/CSS/JS frontend using the built-in Chrome DevTools.
Learn more Screen sharing Share the entire screen or a particular window right from your app.
Network Intercept network requests, modify HTTP headers, filter cookies, modify web form upload data, etc.
Learn more Cookies Access, create, delete, and filter session and persistent cookies.
Learn more Proxy Configure HTTP, HTTPS, FTP, and SOCKS proxy settings of your app.
Learn more User-agent Modify the user-agent string to let the loaded web page know who is displaying it.
Form autofill Save the end-users’ time by automatically filling out online forms with names, addresses, phone numbers, emails, and payment information.
Learn more Auth Handle the Basic, Digest, NTLM, proxy, and SSL Cert auth. Work with SuisseID and U2F devices.
Learn more Google sign-in Allow users to sign-in to your app using their Google account.
Full-screen Run your app in native full screen mode on Windows, macOS, and Linux. Perfect for kiosk apps.
Learn more Signatures & notarization Make your app trustworthy for the end users by signing and notarizing it with built-in SDK tools.
Learn more Downloads Manage file downloads and get notifications about download progress.
Learn more Printing Preview and print the displayed documents or just save them as PDF.
Video & audio codecs Play video and audio media content including DRM-protected content from Netflix or Amazon using the built-in codecs.
Spell checking Display and correct spelling mistakes while filling out your app’s web forms.
Custom protocols Emulate web server responses by registering custom protocols or intercepting the standard protocols.
PDF viewer Display PDF documents via the built-in PDF Viewer.
Profiles Add personalization or guest mode with the built-in Chromium profiles.
Learn more
Caring support Get response within one business day Rely on our strict SLAs to minimize downtime and receive meaningful feedback to your requests.
Talk directly to developers The product engineers themselves handle all technical support requests. Get as technical as you need, discussing ways to make Molybden work for you.
Communicate securely With private support communication channels, all sensitive information about your project is safe and strictly confidential.
Update your project on the fly We make new features, improved functionality, bug fixes, security enhancements, and performance optimizations available as soon as they are ready.
Contact us Use a simple web form to contact us quickly and privately to discuss your needs.
Log in to Help Center Submit support requests confidentially and track their statuses in your personal Help Center account.
Not available during public preview.
The team you can rely on More than 15 years of experience in developing and supporting the commercial libraries and tools.
Vladimir Ikryanov
Senior Software Engineer
Artem Trofimov
Lead Software Engineer
Vladyslav Lubenskyi
Software Engineer
Vitaly Eremenko
Software Engineer
Andrii Kazantsev
Software Engineer
Oleksandr Boliachyi
Software Engineer
Ivan Diachenko
Software Engineer
Kyrylo Pshenychnyi
Software Engineer
Denys Hrulov
Software Engineer
Proven expertise From the creators of
JxBrowser and
DotNetBrowser , trusted and used by 2,200+ enterprises worldwide. Vast experience in integrating with trending web engines on all major platforms and architectures.
Pricing How often do you want to pay?
Monthly
Yearly
Get 1 month for free
Sending…
Sorry, the sending was interrupted Please try again. If the issue persists, contact us at
info@teamdev.com .
Thank you! We will let you know when Molybden public preview ends and subscription becomes available.
For advanced needs such as customized agreement, supplier form registration,
wire transfers, or escrow, please contact Sales.
Contact sales teamdev.com
uses cookies to help operate the site and gather analytics data. You can read more about it in our Privacy statement . I agree