Show HN: EXT – an easy way to build cross-platform desktop software (ext.store)
If you've ever tried to build a desktop app, you probably understand our frustrations with how challenging it is to build one and make it available on Mac, Windows, and Linux.
Even with Electron, you still have to set up your own build pipelines, updating mechanisms, code-signing, deployments, and deal with cross-platform compatibility issues.
We built EXT to make building cross-platform desktop software easier!
Dog-fooding our own APIs, we ported 36 initial games and utilities to the EXT store (all free), and we've open-sourced all of them: https://github.com/extpkg
If you're into casual web games or want to check out some fun and useful utilities like JS Paint (inspired by '95 MS Paint), you can check it out here: https://ext.store
-- Features of EXT --
- All extensions work offline (we call apps on the platform "EXTensions" :drum_with_drumsticks:). - Once installed, extensions load instantly. - All extensions are available on Mac, Windows and Linux. - There are a variety of games including platformers, strategy games, puzzle games, and more… - All the extensions currently available are free!
-- What's Currently Available on EXT? --
Utilities
- JS Paint - Inspired by 95 MS Paint - Excalidraw - whiteboarding tool - EXTDraw - whiteboarding tool
Games
- 2001: a Space Opera - Backcountry - Bounce Back - Break Lock - CHOCH - Diver Down - Evil Glitch - Fire & Fondness 2 - Gods Gambit - Klondike Solitaire - Little Spy - Memory Override - Null Dagger - Only - Planet Waves - Planetfall - Radius Raid - Resistor - Retrohaunt - ROTA - Shifty Dungeon - Space Garden - Space Huggers - SpacePi - Starcatcher - Techmaniac - The Adventures of Captain Callisto - The Chroma Incident - The March of the White King - Tiny Crate - Totem Storm - Triangle: Back to Home - Vapor Trails
-- Interested in building your own extension? --
Our API docs can be found here - https://docs.ext.store/
Open-source example apps (all the extensions above) can be found here - https://github.com/extpkg
- Thanks for checking out EXT! -
We're grateful that you decided to check out EXT!
If you're looking for a few games to get started, we personally love Vapor Trails, ROTA, Techmaniac, and Breaklock.
Let us know what you think!
35 comments
[ 14.5 ms ] story [ 78.4 ms ] threadEXT Technical FAQ
What is EXT?
EXT is a platform that allows third party developers to install, load, run, publish and monetize JavaScript-based extensions and native modules, while giving end-users complete control over each extension’s permissions. EXT also includes a store where end-users can find and purchase approved extensions (though the platform also allows side-loading private extensions and modules).
How do extensions work?
Internally, EXT uses the V8 engine to run extensions, which makes their execution extremely fast. Our build pipeline allows us to integrate the latest V8 engine versions automatically, which means you are always going to be up to date with the latest security updates when using EXT. The V8 engine itself does not provide any APIs to extensions, all it can do is run JavaScript code. This is why we allow developers to load EXT modules (which provide functionality) into their extensions. If an extension wants to use an API, it must do so via a module.
Our landing page is tailored more for end users, and our API docs are linked at the bottom of the website.
In case anyone else is looking, technical details can be found at http://docs.ext.store and the technical FAQ can be found at https://docs.ext.store/ext-technical-faq
not sure either, but presumably the intention is to alleviate the platform specific build processes, apis and modules for developers so that they are "unified" under this framework.
Like my Sciter is an embeddable multiplatform HTML/CSS/JS UI engine. You create your native app using PL of your choice and create HTML/CSS/JS window[s] using Sciter API calls. So it is HTML/CSS/JS UI layer for native applications. And then you put that app in app stores...
And now about EXT ...
What does it mean "desktop software" in EXT context?
Am I right that this is about creating Google Chrome Webviews in detached (non-tabs) windows? So the desktop software require Chrome to work, right?
And the programmer in me feels confused that the 5 minutes of copy&paste for configuring GitHub actions to build and host your cross-platform app bothered anyone strongly enough to invest time into developing a replacement. My experience with Electron was that it already is batteries included and has great documentation and tutorials. That's a high bar to exceed.
But then the cynic chimes in again to point out that easy initial setup would be crucial if your goal was to spam app stores with extremely low effort wrappers around web content ... like what all those "get rich with iOS apps" courses were shilling 5 years ago.
You don't like having alternatives to GitHub?
https://docs.ext.store/html5-game-choch-84329355ac6d454fbf8a...
This is not cross platform, it runs on only one platform: Chrome.
That said (at least in the general web dev sense; can't speak for this specific project), it would be more accurate to say that it runs on three 'platforms': blink, gecko, and webkit (sometimes even trident!).
Again, that's a confusing way to put it, given the general understanding of 'platform' in most contexts as 'operating system', or 'environment'. But it describes the functionality more comprehensively than saying it only runs on one 'platform'.
> Internally, the EXT platform is split into two parts. The first part is the frontend, which is built using Electron; the second is the control application, which is shipped as a separate executable file. When the frontend is launched, it runs the control application as a child process.
So basically EXT is an electron app which wraps around small web apps offered through ext.store
Also, yikes.
2. I am trying to install "JS Paint", it says "Installing" and the wheel has been turning for a minute, I have no idea what the progress is, what the download speed is, anything. Is this intended? I also cannot cancel the installation once running.
3. "JS Paint" installed eventually, I cannot launch it, nothing happens when I click "Open", other than the "Open" button animating on mouseover. Restarted EXT, still cannot open it.