Capacitor: Cross-platform native runtime for web apps
capacitorjs.com
capacitorjs.com
If you aren't familiar with Capacitor, it's a way for web devs to build cross-platform apps using standard web technology and any popular web stack. For example, you can build mobile apps using popular stacks like Next.js + Tailwind as in this example: https://github.com/mlynch/nextjs-tailwind-ionic-capacitor-st....
We've got some exciting things in the pipeline like a Project API for automating configuration (whitelabling/CI/etc), E2E testing, easier native HTTP features, resource generation (splash/icon/etc).
Happy to answer any questions about Capacitor!
However, both can have a bug that exposes XSS and give direct access to all the nice APIs both add.
For example, adding a SQLite plugin gives the attacker full access to all local db data for the app. Or node APIs vs FileSystem APIs.
The solution to have have two threads and let the dev specify their own API to communicate.
Electron had bad solutions for a while but it’s gotten better these days and might offer some ideas
I’m a fan of your work improving the stalled Apache product and moving it forward as Capacitor. I use it! v2 though, as I haven’t upgraded to v3. Maybe I’ll try that this weekend.
eg my app needs to access a bluetooth module or uses opencv: would it be easy to plug in an existing Swift/Java libraries that has deps on these low-level stuff (without mingling too much with the build process like enabling or turning off some flags, hijacking some of Capacitor's own build processes, etc)
What advantages do you think Capacitor has over React Native?
Ultimately Capacitor is the most true to web development of the alternatives out there, so if that matters to you it’ll be better on that front.
It’s also a lot simpler than RN and feedback has been there’s a lot less upgrade hell with Capacitor
I tried going the TWA route for the Play Store but there isn't an IAP solution yet (and I can't use Stripe because...). I look forward to not needing Capacitor in the future, but for now it mostly stays out of the way.
That is exaclty how I feel about my RN app ;-)
I've been stung by ionic/drifty a couple of times, but I really hope this project survives. There are some great ideas here.
I was pleasantly surprised it basically built in one go on a fresh MacOS install with the latest Ionic and Cordova 6.5.
I didn't expect that.
Otherwise you could make a "App Director" app and then just have people use your web app. As native functionality is needed it will delegate to the "App Director" app. Perfect example being notifications and interfacing with things like the calendar and contacts.
This sort of app wouldn't be allowed on both stores.
Capacitor really is a beauty to work with. While I disagree on some design decisions (putting build platforms at the root of the directory for one) the overall ecosystem is quite healthy and strong, and while backwards compat with Cordova is hit or miss, its quite good for a tool thats a decade old.
While it’s great the enormous draw back is reliance on crappy community plugins and using old Cordova stuff to access native features.
They have nice premium stuff behind the enterprise paywall but they don’t offer prices and make it pretty clear that they’re not interested in speaking to a small indie dev.
I eventually abandoned my “big” project on Ionic due to this issue. This was about a year ago.
I looked at React Native and that seems to at least have more options but I’m not sure if it will be better.
With that revenue we are able to invest back into the OSS technology and we're also aligned with actual users of the stack. This isn't an internal project at a big tech company that we just happened to OSS for goodwill but only build for ourselves. At the end of the day our users are our #1 focus, not internal projects.
Capacitor is younger than RN but the ecosystem is growing around it and I've been excited seeing more 3rd party vendors officially support Capacitor (Sentry, for ex) and the quality of the first-class Capacitor plugins has gotten a lot better this year (and we've also chipped in to help where we can).
Capacitor has a huge addressable market since all web technologies work with it and I think that will help it become a pretty big force in mobile. People don't realize this but Cordova powers a lot more apps than both RN and Flutter today. There's just a ton of web devs in the world.
Either way, your enterprise stuff looks great but you give no indication of pricing and as a dev I’m not allergic to paying for things but I am allergic to companies who don’t have an “other than enterprise” story.
I would happily pay you a monthly fee to get access to plugins that are better than the community dross available but you’re not interested in my business.
I think Capacitor and Ionic are great, sadly Ionic the company leave much more to be desired.
I once asked a question somewhere in the forums about a good plugin for something and the response was “hey, we don’t offer that to none enterprise customers but feel free to make your own plugin and share with the community” - sure, I’ll get right on that - if I wanted to be a native dev I’d be a native dev
We've made our pricing more transparent recently and have added special plans for indies and startups that qualify as well. In particular we're trying to make more of our enterprise native plugins accessible for startups: https://ionic.io/pricing
I.e. all the comments were not posted at the same time just now, but over a longer time period hours ago.
To be fair, there's only 4 top-level comments from that same time. Given a big enough audience it's reasonable to think that this would happen from time to time.
There doesn't appear to be any particular bias / agenda from the posts (that I can see) so I'm guessing it's just coincidence.
That would make sense, as it popped up on the FP?
Personally,it's just Cordova in a different suit and isn't remotely related to what native means on mobile. The entire reason they are selling their framework so hard is under the enterprise tab in the menu.
And don't just take my word for it, the feedback from actual users is that the experience is dramatically better than Cordova. For example, see the 2020 State of JS survey results: https://2020.stateofjs.com/en-us/technologies/mobile-desktop...
Also on the Enterprise tab, the other way to look at this is we have a sustainable revenue and funding model for the project that is aligned with actual users of the project (as opposed to this being an internal project we just happened to OSS for goodwill/hiring benefits). I'm really proud of that and consider it a huge advantage of the project.