Top
Best
New

Posted by alentodorov 12/21/2025

Show HN: WalletWallet – create Apple passes from anything(walletwallet.alen.ro)
I got my Apple developer certificate and built a simple app to solve a problem I had. One shop I buy from doesn't have Apple Wallet passes. Since you need signed certificates to build these very simple things, I created a minimal app that signs them. It's available if you need it too. It won't scan cards with AI - you manually enter the barcode, which I think makes it less prone to error.
448 points | 115 comments
thwarted 12/21/2025|
> It won't scan cards with AI - you manually enter the barcode, which I think makes it less prone to error.

This is a very interesting sentence.

I interpret this sentence as saying that manually entering a barcode is less error prone than letting AI do it, that AI would have an unacceptable margin of error (and this is probably an accurate assessment).

But you don't need AI to find or read barcodes. Finding and reading barcodes is a reasonably mature technology that has existed long before AI.

Barcodes exist as a fast, machine readable data transfer format meant to avoid data entry errors by avoiding manual data entry, and yet you've implemented manual entry in order to avoid errors?

Now, if one of the constraints you've put on your implementation is that it work only in the browser and you don't want to have to download a large barcode scanning library to the browser, then it makes sense to implement manual entry. But that has nothing to do with AI.

That being said, there are some barcode reading apps that can be used to prompt for a scan from a web page, and you get the barcode payload back. I've used an app called "bineye" on Android (source on GitHub) that works like this. This helps avoid error prone manual entry and gets the full barcode payload (many barcodes store/encode more information than the human readable text printed next to them).

alentodorov 12/21/2025||
i should've been clearer: while browsing i found multiple apps that do this. most use AI to extract data from images and are much more feature-rich - you can photo your boarding pass and it goes straight to wallet. however, i noticed that AI sometimes gets details wrong. for example, when i uploaded just a barcode image, it couldn't create the pass because the model also wanted a "name" field.
Moto7451 12/21/2025|||
When I’ve done similar things in the past I found there was always a library for barcode/QR use cases before such things ended up being built into the OS/Framework I’m in.

https://serratus.github.io/quaggaJS/ seems browser friendly?

Generally I agree with your point on AI fuzziness here not being useful.

carlosjobim 12/22/2025||||
Millions of barcodes are scanned every second, and has been for the past few decades. So it seems very strange that there aren't any solution readily able for your app, which isn't AI.

I have to scan bar codes every once in a while with an app on my iPhone, which definitely doesn't use AI. It will instantly recognize a bar code before I've had a chance to line up the camera properly, and the error rate is zero.

paulirish 12/22/2025||||
https://developer.mozilla.org/en-US/docs/Web/API/Barcode_Det... Chromium browsers have native support for reading many barcode types!
dmd 12/21/2025|||
Could you add Codabar?

edit: oh, I guess you can't, because Apple Wallet doesn't support it.

alentodorov 12/21/2025||
i think there's a way but it's hacky. instead of using the barcode property it would add an image based on your inputted codabar.
dmd 12/21/2025|||
That would be pretty great. I have half a dozen codabar-based cards.
Daneel_ 12/22/2025||
Try Pass4Wallet from the app store. It's free and supports a huge array of barcode types, including codabar. It's been my go-to custom card app for a number of years.
old4ever 12/21/2025|||
[dead]
mcintyre1994 12/21/2025|||
Ironically if I needed to manually copy the text from a barcode on my phone, I'd take a photo and use Apple's AI to select and copy the text from it.
mattmaroon 12/22/2025||
I guess we found the inverse of the trend to shove “AI” in everything, deliberately leaving AI out of something that wouldn’t have even thought to involve it in the first place
Jeremy1026 12/22/2025||
It'd be awesome if you could add a location to the pass. Apple allows a pass to automatically pop up on the screen based on the device location[1]. If you make it so the user could pick the point on a map for the pass to pop up at it'd be great. That way for example, if you're at the grocery store, your custom pass could be on your lock screen ready for you.

[1] https://developer.apple.com/documentation/walletpasses/pass/...

rovr138 12/22/2025||
Very interesting, and you can define multiple already,

https://developer.apple.com/documentation/walletpasses/showi...,

    {
    ...

    
    "locations" : [
        {"latitude" : 37.3229, "longitude" : -122.0323},
        {"latitude" : 37.3286, "longitude" : -122.0143},
        {
            "altitude" : 10.0,
            "latitude" : 37.331,
            "longitude" : -122.029,
            "relevantText" : "Store nearby on 3rd and Main."
        }
    ],
    "relevantDate" : "2014-12-05T09:00-08:00"
    }
ccorcos 12/29/2025||
This is awesome. Can I do this myself? Or does this need to be implemented in their backend?
loremm 12/22/2025||
ooh so nice
yoan9224 12/21/2025||
This is genuinely useful. I have so many loyalty cards that exist only as physical barcodes that stores refuse to look up by phone number.

The privacy concern about sending pass data to the server is valid though. Since .pkpass files need to be cryptographically signed with Apple's certificate, there's no way to generate them purely client-side.

Potential solution: open source the signing code and let users run it locally with their own Apple Developer account ($99/year). Power users would do this, casual users can use your hosted version.

Also works with Google Wallet apparently, which is great for Android users.

jbverschoor 12/21/2025||
For loyaltycards there was Stocard, but it got acquired by the toxic company Klarna.

SuperCards is very very similar, and in my opinion more useful than putting everything in Apple Wallet. You get to store a pictures, and everything is in one place. Apple Wallet is already cluttered with tons of creditcards, tickets, etc

jonathanlydall 12/22/2025|||
I’m so pissed off with Klarna obsoleting Stocard as the Klarna app is missing one of the best features of Stocard, that you could add loyalty cards to Apple Wallet.

To be honest though, a micro loans company engaging in this behaviour doesn’t surprise me at all.

jbverschoor 12/22/2025||
Use super cards, add them to the widgets on leftmost screen where weather is. Remove your Klara account
DrewADesign 12/21/2025|||
Weird thing from the pretty ho-hum super cards privacy policy:

> The Service Provider will retain User Provided data for as long as you use the Application and for a reasonable time thereafter. If you'd like them to delete User Provided Data that you have provided via the Application, please contact them at blub@blob.com and they will respond in a reasonable time.

That looks like a placeholder address to me? Not exactly confidence inspiring if so…

windmark 12/21/2025||
Looks like they were notified of this miss

> please contact them at support@supercardsapp.com and they will respond in a reasonable time.

https://supercardsapp.com/privacy-policy/privacy

DrewADesign 12/22/2025||
Well that turnaround is pretty confidence-inspiring.
monerozcash 12/22/2025|||
>Since .pkpass files need to be cryptographically signed with Apple's certificate, there's no way to generate them purely client-side.

Technically you could use blind signing, no?

jetofff 12/26/2025||
Google Wallet can do this natively
gorgoiler 12/21/2025||
Brilliant! Suggestion: most store cards get scanned as a bar code 99% of the time but when calling them they will want you to quote your membership number over the phone. It would be useful to have it printed below the barcode so I can quote it directly from my Apple wallet.
2dvisio 12/21/2025|
I solved this same problem adding a label with the number corresponding to the barcode number alongside
hn111 12/21/2025||
One CSS tip: make sure the input fields have a minimum font-size of 16px. That way iOS won’t zoom-in the page when focussing one.
ivanjermakov 12/21/2025||
I solved this issue with Wallet Creator: https://apps.apple.com/app/id1486573384

Didn't know it was this simple to just provide a download for prepared file. Is it open source?

hopelite 12/21/2025||
I don’t see it that way. I would rather have a browser based, one-off tool that can generate a .pkpass served up for local “installation”, not installing an app that is necessary to separately manage the passes separately and very well could be tracking its users.
mbirth 12/21/2025|||
MakePass is an app that creates independent/proper Wallet *.pkpass files. You can completely customise the pass appearance according to Apple’s specs.

(Not sure whether the current licensing offerings are worth it, though. I’ve got grandfathered in from before it had AI support.)

https://pvieito.com

kimos 12/21/2025||
This looks like it would work well, but it’s a subscription. It makes no sense to charge me a yearly fee to make one pass file for my library card.
Daneel_ 12/22/2025|||
Look at Pass4Wallet - free from the start.
kimos 12/22/2025||
Commented in another reply, this is the answer. Works great and supports a dozen barcode types.
jpalawaga 12/21/2025|||
absolutely ridiculous. $10 for a single pass. I'd pay 99c for this app, and no more. Oh well, $0 it is.
fragmede 12/21/2025|||
What happens when they website goes away? The app I can save and use locally after the website is defunct.
CamJN 12/21/2025|||
Well for this particular functionality whatever you use (website, app, etc) must have a valid apple developer certificate, so either the website must be up, the app's backend server must be up, or an offline app's bundled certificate must still be valid. All of these things will eventually stop being true regardless of the form the app/website takes.
nickthegreek 12/22/2025|||
I don’t believe the apps do it local either. They need to send to server to properly sign the pkpass. A server is being used regardless.
kimos 12/21/2025||
I tried using this. The camera didn’t work in several ways, it didn’t understand barcodes, and crashed a half dozen times before I just deleted it.
alessandropier 12/21/2025||
Love the idea, thanks for sharing!

One obvious concern here is data privacy, since the pass details are sent to the server. Any chance it would be possible to run everything in the browser, without sending data back to the server?

alentodorov 12/21/2025|
not really. the .pkpass needs to be signed. you can build the file locally but you won't be able to load it in apple wallet.
zeckalpha 12/21/2025|||
Please be clearer about this on the site!
matrss 12/21/2025||
The site is pretty clear: "Free and works in browser", "Processed locally", "Private". But apparently the site (sorry for the harsh word, but I can't interpret it any other way) lies.
fragmede 12/21/2025||
"is incorrect" is slightly less harsh, but in this case, I'd call it a lie. It's a rather subtle but important implementation detail. I don't think the author (who is here in this thread) is necessarily malicious because of this, but, well, it's a lie.
gruez 12/21/2025||||
I'm not exactly sure how passes are signed, but in most digital signature schemes, you only sign the hash of the message, not the actual contents. Therefore you could conceivably do this in a privacy preserving way by only passing in the hash to be signed, which would allow the server to generate a valid signature without knowing the contents.
alentodorov 12/21/2025||
Apple Wallet passes use CMS signatures. you're right that only hashes are signed. but Apple requires an official Developer certificate ($99/year) with a private key that can't be exposed to browsers. for true privacy, each user would need their own cert. and defeats the "free" goal. and if you have a dev certificate it's trivial to generate one on your own machine.
gruez 12/21/2025|||
>Apple Wallet passes use CMS signatures. you're right that only hashes are signed. but Apple requires an official Developer certificate ($99/year) with a private key that can't be exposed to browsers.

Why can't the browser send the hash to the server for signing?

alentodorov 12/21/2025||
let me look into it.
tushev 12/22/2025||
[dead]
saagarjha 12/21/2025|||
Any chance of allowing me to upload my own keys and doing the signing in the browser? I am sure this is a niche use case but I know how to generate the certificate for this but have been too lazy to make a thing like this for (checks to-do list) something like six years and I'd much rather just use your thing lol
alentodorov 12/21/2025|||
that's a good idea. i'll release a BYOK version but don't plan to host it myself. will include a quick run script to run it locally.
the_lucifer 12/21/2025|||
Haha, I just made a comment above that I've been sitting on a half done project to do this for around 8 years now.
alessandropier 12/21/2025|||
yeah was expecting that, thanks! do not use my gym pass pls
CraftThatBlock 12/21/2025||
This also works for Google Wallet, you could change the messaging around it to indicate that.
subscribed 12/21/2025||
OK, stupid question, what is the thing this utility does that can't be achieved with scanning a physical pass with barcode or entering the details manually into a Google Wallet?

Because I don't see the.... utility if it?

Unless this achieves something specific I don't know.

radicality 12/21/2025||
I don’t know about Google Wallet, but for iOS Wallet, it is not possible to create a new entry there yourself as a normal user. It has to be signed with a $99/yr certificate, so this thing does the signing for you. The utility is that whatever you created now lives with the rest of the passes in one place.
subscribed 12/25/2025|||
Oh, okay, thanks.

So yeah, in Google Wallet you can just add the loyalty card like that (scan the qr/bat ode or type the number), and then have it synchronised to your account (to have it available on your other phone for example).

Sure, not every kind of the pass can be added like this (not movie tickets or boarding passes), but all that matters.

nickthegreek 12/22/2025|||
and they are accessible without unlocking your device.
subscribed 12/25/2025||
Yep, same with Google wallet. Display boarding pass, lock the device, wake up the phone without unlocking, and it's right there.
alentodorov 12/21/2025||
nice! don't have an android device to test - did u download it and it worked?
StrangeSound 12/21/2025|||
I wouldn't worry too much about android - you can very easily add cards manually.
viiralvx 12/21/2025|||
I did! It worked just fine for my gym pass
amaccuish 12/21/2025||
As an aside, I find it really sad that, having a de-Googled Anroid phone, it's actually easier for me to download the Apple Wallet .pkpass files

Anything to do with Google Wallet passes just forwards me to a Google login page.

jeroenhd 12/22/2025|||
The Google Wallet app will let you import any pkpass file. The trouble is that most websites that support the format will only offer them for download of you're coming from an iPhone.

Google's format also has a download option but that format doesn't work well for desktop users, so Google prefers to import via the web.

One annoyance I've faced is that Apple Wallet will not accept a downloaded file, or a file transferred from another app. You must click a link in Safari or it will refuse to load the damn pass.

I'm surprised how terrible all of these major wallet apps are at handling the slightest of edge cases.

Semaphor 12/21/2025|||
Condor airlines has an "open with Google wallet" link, that doesn't work because I don't have that app. .pkpass files just work with my foss wallet
saagarjha 12/21/2025||
A curious example of a compatibility feature ending up having a much better experience than the thing that they clearly want you to do. Hopefully some Google PM doesn't see this comment and ruin things…
kimos 12/21/2025|
This is great. And it send me down the path of trying to get my library card to work.

Turns out it uses a format called Codebar which is from 1972 and not supported by Apple wallet passes. This tool and most of the other linked ones in this thread did not work. (And also tried to charge me a recurring subscription to use once, but that’s another issue)

I found this one which generates many other barcode formats and generates them as images as a workaround. That seems to work.

https://apps.apple.com/app/id1423106610

Daneel_ 12/22/2025|
I've been using Pass4Wallet (the app you linked) for a number of years and it's been fantastic. I'd recommend it.
More comments...