NativePHP in 2025 #497
Pinned
simonhamp
announced in
Announcements
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
You made it! Welcome to 2025.
Wow! 2024 was a year for NativePHP! Here are some of the highlights:
beta
)Child Processes
andPower Monitor
MenuBar
,Menus
,Windows
,Dock
,Deep Links
electron-plugin
, moving it intonativephp/electron
directly - this has improved release management and eased development immeasurably, resulting in more reliable updates to the packages and less spurious issues in your apps.We closed over 100 issues (and ~70% of those were opened in 2024) and merged over 100 PRs across all repos. I think these numbers are significant, whichever way you look at them.
It's great to see activity around this project increase, especially the volume and quality of the PRs coming from contributors (more on them later!)
It's also satisfying to see that the volume of issues hasn't been crazy high.
That seems to suggest that things are mostly working… or maybe it suggests that not a lot of folks are actively using the project 😂
Naaa, I don't believe that:
So onwards and upwards!
But first…
Broken promises
I have to acknowledge the fact that we didn’t really meet my goals for 2024.
I’m not overly concerned. I knew it was going to be a stretch, but it’s still a little disappointing from my point of view 😓
Still, it’s not like they were actual promises. But I did set my sights on a couple things for 2024 that it turned out I wasn't able to get to:
Tauri
I get questions almost every week around where we’re at with Tauri support. Straight up, I just haven’t had as much time to work on it as I’d planned.
I used a bit of downtime from client work at the beginning of 2024 to tackle some of the bigger challenges with NativePHP.
Out of that work, I managed to get Windows support and various other major fixes done that have improved the overall stability and usefulness of the project.
I started exploring various pieces of work on Tauri, but I was also aware that Tauri 2 was coming and this would be somewhat disruptive to the work I’d already done on NativePHP due to some major improvements there.
I was in touch with some core members of the Tauri team and together we put in some applications for funding. Sadly none of these came off and the Tauri team have gone very quiet since then.
It’s fine, they’re busy with growing their own projects. They’ve got more than enough on to also worry about our little PHP community.
Still, I was able to make some progress, and some of my explorations led me down a very interesting/distracting route (which I’ll come back to in a second).
Couple that distraction with Tauri 2’s imminent release and my need to pick up paid client work (you know, so I could pay the bills, dodge the rain and, well, eat and generally provide for my family), I really felt I needed to down tools on that project for a while.
I would like to say I can pick it up again in 2025, but honestly I just don’t know. If I’m able to buy my time away from client work and other priorities, then I’ll try.
Of course, if anyone else wants to pick up the mantle and is serious about contributing, please get in touch!
I know this will be a bit of a disappointment to many of you. If this situation changes, I will of course let you all know, but until then, consider this project paused… for now.
v1
With Tauri parked, I shifted almost all of my focus to getting this thing out of
alpha
.I dreamed of moving into
beta
for just a few weeks, proving stability and then releasingv1
in December as my gift to the world, but it wasn’t meant to be.Gah! Again, my overly optimistic estimates have come back to kick my ass.
But I’ve made my peace with it. There’s no real urgency needed. Steady progress is being made and the project is in much better shape overall, so I’m very happy with the direction and speed of travel right now.
This has largely been down to the excellent work of these awesome contributors and community members over the past few months:
@SRWieZ @gwleuverink @PeteBishwhip @XbNz @danjohnson95 @JustinLawrenceMS @labomatik @curtisblackwell @JulianaChiabai @miagg @danielpetrica @kondi3 @JCombee @LukeTowers @kritish-dhaubanjar @RobertWesner
Seriously folks, take a bow! 👏 Thank you!
All of this work has culminated in our
beta
releases announced a few weeks ago. 🎉That means that we’re in “bug-fixes, testing and documentation only” mode for the next few weeks as we work to get
v1
's general release ready.What to expect from
v1
It won’t be very different from what you can use today.
We’re working on improving the docs (both in style and content), especially around building and signing your apps.
We’re also finishing up how to build apps with a read-only, obfuscated PHP core. This will make it harder for attackers to do naughty things with your apps. More on this in just a moment.
Look out for the
v1
release in the next few weeks!Looking forwards
Beyond v1, what’s the plan?
We’ve got a lot that we could do.
I’ve had a few folks come to me asking about hardware integrations—basically giving your Laravel app access to the serial connections on the host machine, be that USB®, Bluetooth® or other. Which could be cool.
I think there are some opportunities to improve the build process and make it more flexible, allowing for custom build steps to be included at various points in the pipeline. This would add an extra level of power, but also simplicity and reliability, to the build process, which I’m sure some folks will benefit from.
Something I also feel I get quite a number of questions about is custom PHP binaries. With the
static-php-cli
library we use to build these being so easy to use and becoming more and more stable, it’s easier than ever for folks to build their own custom static binaries, configured just to their needs.So I’d like to figure out a path for NativePHP that enables you to reliably use binaries that you’ve configured in a way that makes sense without jeopardising the security or stability of your apps.
Of course, if you’ve got specific feature ideas, the best place to share them is in the GitHub Discussion forum. If it’s already been raised as an idea, give it an upvote!
Zephpyr
Obfuscation, securing and customising PHP binaries are each complicated and involved processes that are likely to only get more complicated as time moves on.
Zephpyr has been created to make all of these things (and more) easier than ever.
If you’ve been sponsoring me/NativePHP, you’ll be given early access to Zephpyr soon.
If you just want to know when it’s ready, please sign up for the waitlist via the website. You’ll get a nice discount at launch too.
More on Zephpyr very soon!
iOS
As many of you probably know by now, I’ve been working on integrating PHP into iOS. 🎉
This has been a dream of mine for a very long time—to run PHP on iOS. And quite a few of you have also expressed a desire for NativePHP to tackle the mobile platforms too.
While others seem to have tried, no one has really managed to pull it off in any serious or reliable way that has unlocked the ability for folks to build really rich applications with PHP.
As I mentioned earlier, I did a pretty big sprint of work adjacent to this problem at the beginning of 2024 (which was originally for Tauri).
I was able to prototype something which I felt worked reasonably well and it dawned on me that it could actually work under iOS.
Cue one major distraction from my work on the Tauri driver!
If you’ve seen my Laracon EU talk from two weeks ago (or my follow-up video on YouTube) you’ll know that I nailed it!
Apple are actively allowing apps built with PHP to be listed on the App Store.
(Of course, YMMV with the App Store review process: just because one app built with PHP was approved, doesn’t mean that all apps will be.)
This changes everything
This is an incredible turning point in PHP’s history. A truly pivotal moment.
We can now use PHP to build offline-first, mobile apps that run entirely on-device.
And it’s not just throwing Laravel into a web view and making it work… oh no! This is so much more!
We’ve built a custom PHP extension that can speak to iOS’s native APIs, allowing full, two-way communication between PHP and iOS.
What does that mean?
It means your PHP code can call native PHP functions that will trigger iOS APIs, like opening the camera, vibrating the phone, or triggering a Push Notification or an In-App Purchase… all this despite the fact that your app UI is rendered in the web view!
NativePHP for iOS is available right now as part of a premium Early Access Program.
And it’s under active development, with new releases planned every week.
What’s more, I’ve set a time limit on its license, so whilst it’s not open source right now, it will be open source within the next 4 years.
Android
This is always the first question 😂
Yes, it’s coming. I’m hoping to release Android support within the next few weeks.
Sign up for the NativePHP newsletter and join the Discord to stay on top of the latest developments.
Why use this instead of React Native, Flutter, [insert other]?
I recently went into some detail on my thoughts about this on my personal podcast. Please have a listen.
If you haven’t got 6 minutes (yeh, listen on 1.5x), the short version is:
Of course, right now, there’s a lot missing from NativePHP for mobile. But we’ll catch up.
Apps aren’t small or super efficient just yet. But they will be.
My vision for NativePHP for mobile is the clearest I think I’ve been on (almost) anything, ever.
We may even get beyond phones. Who knows.
The possibilities just keep on widening.
Thanks
We couldn’t have gotten to this place without the incredible support of the contributors I’ve mentioned above.
And of course all of our sponsors - but especially:
And this amazing set of Early Adopters who took a chance on what would become NativePHP for iOS before even knowing whether Apple would approve of apps built this way:
@CraftLogan @quantumwebco @AbdelElrafa @aurawindsurfing @MFFunmaker @jadden @YesImAaron @theoreaves @joelwmale @dylanmichaelryan @koernchen02 @CoopExchange @wonderne @prof-anderson-trindade @mhmtechgroup @GuavaCZ @artisan-build @mechawrench @harmonicdata @haztakki @timmydhooghe
Thank you all!
Bring it on, 2025 🔥
Beta Was this translation helpful? Give feedback.
All reactions