Show HN: I hate adding updating to my apps, so I created Pakkly
pakkly.com
pakkly.com
Also, "free forever for open source" strikes me as problematic because of the above point: Isn't an open source product likely to prefer open source updating? Open source communities tend to get really sticky about apps installing things themselves and such, so this seems like a really iffy place to add a proprietary component.
That aside, I totally see a lot of room for more/better updating mechanics. There's two major culprits I find in a lot of large-scale apps, and I don't really like either of them. But then again... without knowing how Pakkly works, especially OS-specific install details, I'm not sure I'll like it either. ;)
They could rectify this easily with a dual license though.
Realistically, are you able to make that promise? In practice that would mean you could never sell the company, because current promises go out the window in that scenario (see every company acquired by Facebook).
Your whole service could end up being one giant backdoor for every application that uses it, putting millions, even billions, of people at risk. Imagine hospitals using software from your system that was never signed. Nuclear facilities, oil pipelines, water treatment plants. If you think 'nobody would be that stupid to use unsigned software there', think again. Some organizations would probably ban the use of apps packaged by your service if it wasn't clear that they had been signed by the authors.
If you make the process seamless enough, people will be fine with signing their builds. And there's plenty of examples of supply chain attacks you can wave around for encouragement. You can even promote this as a core reason to use your service, as you can make it easy for them to securely distribute their software.
Currently the roadmap looks like:
Add macOS/Linux support with full signing on macOS and Windows. Add hosted binaries and private repos. Add cryptographic signatures both on the developer side and on our side. These are obviously not enough for total opsec, but should mitigate common attack vectors.
But as you said, the intention is to make the process as seamless as possible, that takes some design time though.
How does the latter half of this work? Specifically, if I haven't modified my app to incorporate your service, how does running it trigger the updater? I assume some sort of wrapper executable?
If the above is correct, how much overhead does that wrapper add? What happens if an update is available, but the user's internet connection is slow/down? Will my app be allowed to run while updates are checked for in the background, and if so, do you fire a message telling the user once an update is known to be available? Or just silently restart it?
Update checking only happens on startup, currently. Your app performance will not be affected. In case the server is not responding during startup Pakkly will continue, after a brief delay, executing your app. The startup update check will fire at most once every 60 seconds (In case someone starts your app in quick succession).
Update notifications are planned, but these will be optional, and will never stop your app for you.
(Long-time emacs user here)
Don't downplay the resource wastes on nothing of value.
Don't be clever about it, don't be per request about it, just give me a number and an invoice.
You're talking fair while I'm talking about the only legitimate way I can pay you for your time as an open source dev.
It would be nice if I could have my client retroactively pay you for your dev time in full but I like working with the client and don't fancy being laughed out of the room
In case you missed the subtext I rarely if ever actually use the support, I can just justify it to bigcorp's beancounters. Chances are you already provide the support for free in Issues anyway but I have a way to pay. I just want people paid at all mate. We can work on fair later
An OSS developer who wants to be paid needs to think like a business. They are more a business that happens to OSS. That would preclude certain OSS products while making others more viable. It is good to strategic. Best for most is to find a company to pay a salary for them to maintain it.
"addressed" may be different from "resolved", and the more people are paying money for things, the more they will want 'resolved' to be in the direction they want. they will be less happy to have their 'resolution' be 'wontfix', even if that technically is 'addressing' the support request.
Maybe people will be willing to pay if the cost was lower? Maybe when you file a ticket, you can include a $10 fee to make sure it gets 10 minutes of the developer's time. (Or maybe you can attach $10 to any ticket, not just yours.)
To reduce the kinds of disputes that come up, there would be no guaranteed result other than that the developer spends 10 minutes doing their best to address the ticket and that they leave a reply. If people feel like the devs are just wasting their 10 minutes, they can simply not pay next time.
Actually, the more I think about it, the more I think this is a good idea, even just for the sake of optics: simply having the "paid ticket" there, even if no one uses it, might make people more thankful of the non-paid tickets the devs are addressing. And it offers a great retort/actionable step for those who complain that tickets aren't being addressed.
I use Sparkle + Github Releases to update my apps (you can test the update process at https://fadel.io), and I’ve been looking to automate the process as it’s becoming a hassle. Your landing page’s value proposition isn’t clear to me. Yes updating is a hassle. The leading framework on macOS is arguably Sparkle. How does it do the job better than Sparkle?
I want my process to be fire and forget, as in: notarize the app, generate the appcast.xml, upload the binaries and update the remote appcast.xml after being asked for the changelog, and ideally also test that the update works correctly.
I’m not sure how Pakky solves that, if at all.
FYI I’m currently looking to automate the whole process with a script.
It's two whole letters away.
-1 for name change.
Also, it’s cross platform, if you ever decide to branch out :)
Often limited to one OS => Supports all desktop platforms
Infrastructure setup takes valuable time away from actually developing your app => Spent time building your app, not update infrastructure.
I feel instead of speaking negatively about other solutions, speaking positively about Pakkly makes me want to try it out more.
It would be a bit more enterprise friendly if you let customers self host? Then again, I'm not sure if enterprises are even the target audience. I wonder how much infosec would like the idea of building the artifacts externally.
How does it work? What network protocols does it use? What are configuration options? Is this vendor lock-in or I can go self-hosted?
Completely self-hosted solutions aren't currently planned.
Header: why do the Sign In and Get Started links point to the same URL? Do you need a Home link for what's essentially a single page site?
The Steps section: could probably be better presented by a video above fold in the future to take far less space.
The Newsletter section: the white background and wide margins makes the section seem like it belongs to the previous section (Step 3).
I think you could use a WP performance/caching plugin to easily improve site performance. My favorite combo right now is Breeze and Cloudflare.
The mobile design: I absolutely agree, I didn’t expect so many of our users to come from mobile as the target demographic is desktop developers. I see now that I may have misjudged things a bit. Future plans definitely include a nicer website with better mobile support.
Header: They won’t very soon, Pakkly’s still in Beta, some things are placeholders for future functionality.
The Steps section: Absolutely agreed, we are already working on a video explainer.
The Newsletter section: I thought it fitting into 100% of the viewport height made it distinct.
In regard to caching, we had a caching plugin but it caused some strange layout bugs so we disabled it, I’ll look into those, thanks!
This looks like a very cool project. I wish it was around before I glued together my current hellish multi-platform release system. I will dig into it before I require it again.
FYI, “it’s” should be “its”.
I’m developing a CLI tool to allow signing and notarizing your apps and the installer itself. Hopefully that will alleviate some of the concerns you have.
The third-party service angle is understandable, but I’m not certain how it’s any different from any other third-party service.
Also consider that "stores" like ms/windows store, apple's app store, steam, google play store... are all mere glorified package managers which can update packages. Most used operating systems' these days offer such functionality. And yes, time has proven they are practical.
For example, say Firefox is the only package you want to automatically update itself (because I do want those updates), via the package manager. AFAIK, there is no simple generic UI to configure this. You have to be a computer nerd that's familiar with shell scripting and consoles to configure such functionality, or hope that your one package manager has a UI that's both friendly and functional enough to easily configure this. Versus Firefox doing it itself, which is more user-friendly.
On top of that, if you have to wait for a package update, this means new security fixes + functionality have to wait for all distributions to update their packages and push updates, and then for users to adopt the updates. If you need to patch a 0day, it's much faster to simply push the update to the users. And new functionality can be tested and rolled out much faster if you don't have to wait for all systems to get an updated package. One of the most annoying things about Debian is how old their software is, unless you're on -testing, where you basically expect your system to break often.
Package managers were designed with update in mind. Which apt version has no "apt update"?
>For example, say Firefox is the only package you want to automatically update itself (because I do want those updates), via the package manager. AFAIK, there is no simple generic UI to configure this. You have to be a computer nerd that's familiar with shell scripting and consoles to configure such functionality, or hope that your one package manager has a UI that's both friendly and functional enough to easily configure this. Versus Firefox doing it itself, which is more user-friendly.
Gnome software allows me to update a single package. It comes installed by default on most current major linux distros. It has a very simple and intuitive UI.
>On top of that, if you have to wait for a package update, this means new security fixes + functionality have to wait for all distributions to update their packages and push updates, and then for users to adopt the updates. If you need to patch a 0day, it's much faster to simply push the update to the users. And new functionality can be tested and rolled out much faster if you don't have to wait for all systems to get an updated package. One of the most annoying things about Debian is how old their software is, unless you're on -testing, where you basically expect your system to break often.
Not if you're using flatpaks or snaps. Even if you are only using your distros' repos, Ubuntu is now maintained for a reasonably long time, 0days on a browser will reach you very soon. It is nowhere near as long as microsoft does with windows support, but long enough that at least 2 other LTS releases are available before support is dropped.
It seems, from your comment, that you have not used any linux desktop distro for a long time.
Is it something similar to testflight?
Is is an auto-update service? If so, please stop, and just use the platform mechanics (App Store).
So this means it'll provide repositories for apt-get, pacman, etc.?
If so, how does it handle things like installing Windows services, custom actions etc?
You can always change it later. Call it introductory pricing or something.