Hacker News new | past | comments | ask | show | jobs | submit login
Show HN: EXT – an easy way to build cross-platform desktop software (ext.store)
63 points by Overhear_Diem on Jan 14, 2024 | hide | past | favorite | 32 comments
Hi HN!

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!




This post is way less informative than the FAQ on your website. I clicked the links thinking I'd get an alternative to JavaFX, Qt, or Electron, but instead I found this which does a better job of explaining what this actually is:

EXT 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.


Good point, thank you for bringing this up!

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


Personally while I liked it at outset, and still looks cool (just not for what I thought it was) I got quite annoyed looking it over that you don't differentiate clearly that it is cross-platform VIA browser. Your description/headline make as if it's an installable shell for building a program on various OS, which it is not.


TY. I didn't feel like hunting around- clicked the link to go to their store page and got an ad and no explanation. I closed it out.


The cynic in me says that it was only a matter of time until someone tried to wrap an app store around what's left of the open internet.

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.


> for configuring GitHub actions

You don't like having alternatives to GitHub?


Lovely how the in-browser community has appropriated 'cross platform'.

This is not cross platform, it runs on only one platform: Chrome.


I mostly agree with you, in that we shouldn't conflate cross-browser support with cross-platform support.

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'.


1. I launched on Mac, it immediately put itself in the "Open at Login" items, almost deleted right away. I know that making this default is getting popular, I still always feel like uninstalling when that happens. Turn it off by default or at least ASK, don't make the assumption that users want this.

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.


I think this bit from the FAQ is the info everyone on here is looking for

> 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


Thank you for this!

Also, yikes.


Runtime model is not clear.

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?


Was going to try it out, went to the docs, told me to go to the homepage with an alpha invite key and left the page. Maybe it's cool, but I'll never know.


Good catch, thank you! We created this for a hackathon we hosted and just updated it! No password needed anymore to use EXT :)


Just installed it via .deb (on Pop_OS!) and tried to install Vapor Trails, but it crashes. The error is `Endpoint /v1/launch/version-current timed out`, which it spams via popups about a dozen times before I can close it properly.


What is the product here? Do you need a licence to commercialise applications built with the framework or is your business plan taking a percentage of store sales?


The product is both the store and the extensions! Without the extensions, the store isn’t interesting. Users want to install only useful / interesting software, and developers want to see what’s possible to create. For now, this is just a fun project for us to work on, that’s why the extensions are free, but in the future, we may take a percentage of store sales if a developer uses our payments API.


Given that it appears to be Javascript based, and Ext JS is already well established ( https://www.sencha.com/products/extjs/ ), I was initially thinking that this might be some kind of store front from Sencha. That doesn't appear to be the case though?


Actually was building a program right now I'm looking at some of these challenges but I would make it a little more clear on the website that the games is just an example utilization of what you've built. From Reading here I thought it was exactly what it was and then confusion hit when I was looking at the website that it might be specific to gaming


"Sample game" from the "Example gallery" contains details for the "Google" app, not the game.

https://docs.ext.store/html5-game-choch-84329355ac6d454fbf8a...


How ext differs from a browser? Browsers already run js. I assume there is something to gain.


We offer some additional modules (https://docs.ext.store/) that allow you to leverage desktop features (like customizing the window design, etc.), that aren't currently available in browsers.


so it's like capcitor.js/cordova but for desktop. Still fail to see the advantage over Electron, NWJS or tauri.


> Still fail to see the advantage over Electron, NWJS or tauri.

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.


What is your business model? I'm asking because it's on product hunt.


I like the idea too, it feels like a browser able to run the same software/website/tool in html/css/javascript on many different platforms, with monetization based on paying users and not ads.


i have my entire user interface built or almost built using html,css, javascript, can i just port over my existing to you guys? im building mainly for electron but never have gone through its entire pipeline or problems it brings. my app is planned to be fully offline and store data on users drives


You should publish to Flathub so I can give this a try on my Steam Deck ;)


Many familiar games from js13k, that's nice to see.


I like the idea of a JS based app-store. Interesting. It may be difficult to get normies to install the app but I like the idea.


Based on our research, people care about what’s in the store, rather than the store itself. If there are interesting extensions in the store, our theory is that people are more likely to install the app (because they want the functionality of the extension).


Seems to be yet another variant of packaging Web stuff alongside the application.




Consider applying for YC's Fall 2025 batch! Applications are open till Aug 4

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: