[{"data":1,"prerenderedAt":594},["ShallowReactive",2],{"project-46345745":3},{"id":4,"name":5,"line":6,"line_source":7,"title":8,"url":9,"domain":10,"maker":11,"posted_at":12,"year":13,"points":14,"comments":15,"rank_in_year":16,"shown_in_year":17,"top":18,"tier":19,"category":20,"subcategory":21,"format":22,"keywords":23,"reception":29,"sentiment":30,"stance_mix":31,"scored_comments":36,"aspects":37,"strip":47,"post_text":49,"what":50,"said":98,"maker_in_thread":234,"shape":246,"grid":250,"attempts":556,"same_week":557,"maker_shows":34,"maker_hidden":586,"reader_version":587,"card":588},"46345745","WalletWallet","create Apple passes from anything","title","Show HN: WalletWallet – create Apple passes from anything","https:\u002F\u002Fwalletwallet.alen.ro\u002F","walletwallet.alen.ro","alentodorov",1766333045,2025,448,115,94,3837,3,"legend","productivity","digital wallet passes","web_app",[24,25,26,27,28],"apple wallet","pkpass","loyalty card","barcode","wallet pass","curious",-0.014,{"positive":32,"neutral":33,"mixed":34,"critical":35},14,33,2,16,65,{"execution":38,"idea":40,"privacy":43,"design":45,"docs":46},{"positive":34,"critical":39},5,{"positive":41,"critical":42},7,6,{"positive":44,"critical":18},0,{"positive":44,"critical":44},{"positive":44,"critical":34},[48,18,34,18,39,34,44,44,34,34,48,44,18,18,48,48,18,18,39,34,39,44,48,18,48,18,18,39,18,48,39,18,39,18,18,34,18,39,39,48],1,"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.",{"problem":51,"audience":60,"pricing":69,"motivation":77,"time_to_build":81,"stack":82,"openness":95,"stage":96,"team_size":97},{"value":52,"source":53,"evidence":54},"Apple Wallet cannot add custom passes without a signing certificate, so loyalty cards with only a barcode can't be stored there","maker",[55,57],{"id":56},"post",{"id":58,"by":11,"text":59},"46346810","my use case is a loyalty barcode for a major retailer here. they provided a digital version but you had to download their app or take a picture. apple wallet is convenient, u…",{"value":61,"source":62,"evidence":63},"iPhone users with physical loyalty or membership barcode cards","inferred",[64,65],{"id":58,"by":11,"text":59},{"id":66,"by":67,"text":68},"46346639","ms7m","A personal use case: my local gym that issues only physical barcode cards -- I used a different app (similar in this style) that allowed me keep it on my apple watch \u002F iPhone…",{"value":70,"source":71,"evidence":72},"Free","commenter",[73],{"id":74,"by":75,"text":76},"46346440","matrss","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)…",{"value":78,"source":53,"evidence":79},"Maker's shop had no Apple Wallet passes and signed certificates are required to make them",[80],{"id":56},null,[83,89],{"value":84,"source":53,"evidence":85},"Cloudflare Workers backend",[86],{"id":87,"by":11,"text":88},"46370236","Thanks. Decided on a CF worker to keep costs low.",{"value":90,"source":53,"evidence":91},"html5-qrcode JavaScript library for QR scanning",[92],{"id":93,"by":11,"text":94},"46346409","agree. implemented QR code scanning using the great html5-qrdecode package so scanning happens locally.","unknown","launched","solo",{"praise":99,"objections":122,"requests":153,"questions":182,"alternatives":202},[100,112],{"value":101,"source":71,"evidence":102},"Useful for loyalty and gym cards",[103,104,108],{"id":66,"by":67,"text":68},{"id":105,"by":106,"text":107},"46356666","cdong","Thanks for making this, I just used it for gym stuff",{"id":109,"by":110,"text":111},"46347014","listless","I have been looking for something like this for so long! All I wanna do is stop carrying this rec center card around. Perfect.",{"value":113,"source":71,"evidence":114},"Works with Google Wallet too",[115,119],{"id":116,"by":117,"text":118},"46348391","viiralvx","This is amazing, thank you! Works with Google Wallet too!",{"id":120,"by":117,"text":121},"46348398","I did! It worked just fine for my gym pass",[123,135,146],{"value":124,"source":71,"evidence":125},"Privacy: pass data is sent to the server for signing, and the site's browser-only claim was disputed",[126,130,131],{"id":127,"by":128,"text":129},"46346186","alessandropier","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…",{"id":74,"by":75,"text":76},{"id":132,"by":133,"text":134},"46347320","fragmede","\"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…",{"value":136,"source":71,"evidence":137},"Codabar and other barcode types not supported",[138,142],{"id":139,"by":140,"text":141},"46346917","dmd","Could you add Codabar? edit: oh, I guess you can't, because Apple Wallet doesn't support it.",{"id":143,"by":144,"text":145},"46348464","kimos","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…",{"value":147,"source":71,"evidence":148},"Relies on AI-generated code and reads as low effort",[149],{"id":150,"by":151,"text":152},"46359617","mythoughtsexact","I'm so confused, is HN now littered with nothing but Supported Bots and Crappy AI Generating supposedly a small developer Bots? Nothing about this app is unique or cool, just one…",[154,163,175],{"value":155,"source":53,"evidence":156},"Bring your own key, open source version",[157,160],{"id":158,"by":11,"text":159},"46346735","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.",{"id":161,"by":11,"text":162},"46349978","open-source BYOK coming right up. with your permission i'll ping you on you profile",{"value":164,"source":71,"evidence":165},"Support more barcode types such as Codabar, Code39, EAN-8",[166,167,171],{"id":139,"by":140,"text":141},{"id":168,"by":169,"text":170},"46346066","dickiedyce","Code39 would be really useful ;-)",{"id":172,"by":173,"text":174},"46347077","StrLght","That's very useful, thanks! One small-ish feature request: could you please add support for EAN-8?",{"value":176,"source":71,"evidence":177},"Add location-based lock screen display",[178],{"id":179,"by":180,"text":181},"46350638","Jeremy1026","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…",[183,191],{"value":184,"source":71,"evidence":185},"Is the signing done in the browser or on the server?",[186,190],{"id":187,"by":188,"text":189},"46351913","noja","How are you signing the pass in my browser?",{"id":127,"by":128,"text":129},{"value":192,"source":71,"evidence":193},"Does it violate Apple terms of service?",[194,198],{"id":195,"by":196,"text":197},"46345980","081guy","This is great! Are you sure you are not violating any ToS for that? I’d hate to see it go",{"id":199,"by":200,"text":201},"46346007","saxenaabhi","It probably is violating the ToS. But would like to know more.",[203,213,220,227],{"value":204,"source":71,"evidence":205},"Pass4Wallet (free, many barcode types)",[206,210],{"id":207,"by":208,"text":209},"46350193","Daneel_","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.",{"id":211,"by":144,"text":212},"46350730","Commented in another reply, this is the answer. Works great and supports a dozen barcode types.",{"value":214,"source":71,"evidence":215},"MakePass (subscription)",[216],{"id":217,"by":218,"text":219},"46346745","mbirth","MakePass is an app that creates independent\u002Fproper Wallet *.pkpass files. You can completely customise the pass appearance according to Apple’s specs. (Not sure whether the…",{"value":221,"source":71,"evidence":222},"Wallet Creator app",[223],{"id":224,"by":225,"text":226},"46346215","ivanjermakov","I solved this issue with Wallet Creator: https:\u002F\u002Fapps.apple.com\u002Fapp\u002Fid1486573384 Didn't know it was this simple to just provide a download for prepared file. Is it open source?",{"value":228,"source":71,"evidence":229},"Stocard and SuperCards",[230],{"id":231,"by":232,"text":233},"46347389","jbverschoor","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…",{"comments":235,"answered":41,"key":236},13,[237,240,243],{"id":238,"text":239},"46346572","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…",{"id":241,"text":242},"46347231","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.",{"id":244,"text":245},"46346198","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.",{"commenters":247,"max_depth":42,"maker_replies":235,"first_comment_mins":248,"lifespan_hours":249},77,26,198,[251,255,257,261,262,264,267,269,272,275,279,282,284,288,291,294,298,299,303,306,308,311,313,317,320,324,327,331,332,336,337,340,343,345,347,349,353,356,359,360,362,364,368,369,371,374,376,378,380,383,387,389,393,395,396,399,402,405,407,409,411,415,418,420,423,425,427,429,430,433,435,437,441,444,447,448,451,454,456,458,460,464,467,471,474,478,482,486,487,490,494,498,500,503,507,511,515,516,518,519,522,524,528,530,534,536,537,539,541,544,545,547,551,554],[252,44,48,253,254,44],"46346443","project\u002Fcritical\u002Fexecution","thwarted",[238,44,44,256,11,48],"maker\u002Fneutral\u002Fnone",[258,44,18,259,260,44],"46346877","project\u002Fneutral\u002Fexecution","Moto7451",[139,44,18,259,140,44],[241,44,44,263,11,48],"maker\u002Fneutral\u002Fexecution",[265,44,39,266,140,44],"46347245","project\u002Fpositive\u002Fexecution",[207,44,48,268,208,44],"project\u002Fcritical\u002Fidea",[270,44,48,253,271,44],"46350818","carlosjobim",[273,44,18,259,274,44],"46351985","paulirish",[276,44,44,277,278,44],"46349247","other\u002Fneutral\u002Fnone","mcintyre1994",[280,44,44,277,281,44],"46353751","mattmaroon",[179,48,18,283,180,44],"project\u002Fneutral\u002Fidea",[285,48,39,286,287,44],"46351089","project\u002Fpositive\u002Fidea","loremm",[289,48,39,286,290,44],"46351964","rovr138",[292,48,18,283,293,44],"46426398","ccorcos",[295,34,18,296,297,44],"46346677","project\u002Fmixed\u002Fprivacy","yoan9224",[231,34,48,268,232,44],[300,34,44,301,302,44],"46347813","other\u002Fneutral\u002Fprivacy","DrewADesign",[304,34,44,301,305,44],"46348371","windmark",[307,34,44,277,302,44],"46350693",[309,34,44,277,310,44],"46351746","jonathanlydall",[312,34,44,277,232,44],"46352226",[314,34,18,315,316,44],"46360609","project\u002Fneutral\u002Fprivacy","monerozcash",[318,34,48,268,319,44],"46390375","jetofff",[321,18,18,322,323,44],"46349187","project\u002Fneutral\u002Fdesign","gorgoiler",[325,18,18,322,326,44],"46349725","2dvisio",[328,329,18,322,330,44],"46348094",4,"hn111",[224,39,48,268,225,44],[333,39,48,334,335,44],"46346425","project\u002Fcritical\u002Fprivacy","hopelite",[217,39,44,277,218,44],[338,39,44,339,144,44],"46348299","other\u002Fneutral\u002Fpricing",[341,39,44,339,342,44],"46348787","jpalawaga",[344,39,44,339,208,44],"46350205",[211,39,44,346,144,44],"other\u002Fpositive\u002Fnone",[348,39,18,283,133,44],"46347262",[350,39,18,351,352,44],"46348953","project\u002Fneutral\u002Fnone","CamJN",[354,39,18,315,355,44],"46350203","nickthegreek",[357,39,44,358,144,44],"46348280","other\u002Fcritical\u002Fexecution",[127,42,18,296,128,44],[244,42,44,361,11,48],"maker\u002Fneutral\u002Fprivacy",[363,42,18,315,128,44],"46346205",[365,42,48,366,367,44],"46346343","project\u002Fcritical\u002Fdocs","zeckalpha",[74,42,48,366,75,44],[132,42,44,370,133,44],"commenter\u002Fneutral\u002Fdocs",[372,42,18,315,373,44],"46346430","gruez",[375,42,44,361,11,48],"46346526",[377,42,18,315,373,44],"46346601",[379,42,44,256,11,48],"46346626",[381,42,18,283,382,44],"46346611","saagarjha",[384,42,44,385,386,44],"46346690","commenter\u002Fneutral\u002Fnone","the_lucifer",[158,42,44,388,11,48],"maker\u002Fneutral\u002Fidea",[390,41,39,391,392,44],"46345994","project\u002Fpositive\u002Fnone","CraftThatBlock",[394,41,44,256,11,48],"46346224",[120,41,39,266,117,44],[397,41,18,351,398,44],"46348796","StrangeSound",[400,41,48,268,401,44],"46346287","subscribed",[403,41,18,283,404,44],"46346765","radicality",[406,41,39,286,355,44],"46350224",[408,41,44,277,401,44],"46384713",[410,41,44,277,401,44],"46384712",[412,413,44,277,414,44],"46346047",8,"amaccuish",[416,413,44,277,417,44],"46346328","Semaphor",[419,413,44,277,382,44],"46346637",[421,413,44,277,422,44],"46353304","jeroenhd",[143,424,48,253,144,44],9,[426,424,44,277,208,44],"46350212",[195,428,18,351,196,44],10,[199,428,18,351,200,44],[431,428,44,385,432,44],"46346105","jackdh",[434,428,44,385,382,44],"46346615",[150,436,48,268,151,44],11,[438,439,44,277,440,44],"46346729",12,"jacobajit",[442,439,18,351,443,44],"46347667","pimlottc",[445,439,44,277,446,44],"46347812","mcgrath_sh",[168,235,18,351,169,44],[449,235,44,385,450,44],"46346188","corprew",[452,235,44,385,453,44],"46346719","x3n0n",[455,235,44,256,11,48],"46346818",[457,32,39,286,386,44],"46346513",[459,32,44,277,218,44],"46346757",[461,462,44,277,463,44],"46346008",15,"artificialLimbs",[465,35,18,322,466,44],"46348352","below43",[468,469,18,283,470,44],"46350346",17,"maltalex",[472,469,44,385,473,44],"46351115","aareet",[475,476,48,334,477,44],"46349494",18,"Angostura",[479,480,39,286,481,44],"46346005",19,"pseudosavant",[483,484,18,315,485,44],"46349916",20,"hoistbypetard",[161,484,44,256,11,48],[488,484,39,489,485,44],"46350580","maker\u002Fpositive\u002Fnone",[491,492,48,253,493,44],"46353386",21,"cicko",[495,496,44,277,497,44],"46350597",22,"limagnolia",[109,499,39,286,110,44],23,[501,502,44,277,133,44],"46346131",24,[504,505,39,286,506,44],"46351764",25,"nc",[508,248,18,509,510,44],"46346837","project\u002Fneutral\u002Fdocs","wateralien",[512,513,18,283,514,44],"46346612",27,"emodendroket",[66,513,18,283,67,44],[517,513,44,385,514,44],"46346662",[58,513,44,256,11,48],[520,513,18,283,521,44],"46350030","wlonkly",[172,523,18,351,173,44],28,[525,526,48,253,527,44],"46349218",29,"toobulkeh",[529,526,44,277,208,44],"46350220",[531,532,18,351,533,44],"46346209",30,"jimkleiber",[535,532,44,385,335,44],"46346306",[93,532,44,263,11,48],[105,538,39,391,106,44],31,[116,540,39,391,117,44],32,[542,33,39,489,543,44],"46349656","exandr",[87,33,44,256,11,48],[187,546,18,315,188,44],34,[548,549,18,351,550,44],"46347601",35,"shantanulume",[552,553,44,256,11,48],"46350096",36,[555,553,48,334,151,44],"46359660",[],[558,563,568,572,577,582],{"id":559,"name":560,"points":561,"category":562},"46339600","Jmail",1557,"other",{"id":564,"name":565,"points":566,"category":567},"46345897","Books mentioned on Hacker News in 2025",613,"learning_science",{"id":569,"name":570,"points":571,"category":20},"46378554","textarea",468,{"id":573,"name":574,"points":575,"category":576},"46377597","Vibium",443,"dev_tools",{"id":578,"name":579,"points":580,"category":581},"46344573","Gaming Couch",437,"games",{"id":583,"name":584,"points":585,"category":576},"46362655","CineCLI",348,false,"v2",{"id":589,"name":5,"line":6,"ai":586,"cat":20,"year":13,"points":14,"comments":15,"rec":29,"s":590,"top":18,"kw":591,"maker":11,"domain":10,"tier":19,"attempts":44,"strip":592,"url":9,"mix":593,"praise":101,"objection":124,"sub":21},46345745,-0.01,[24,25,26,27,28],"1323520022103311335250131335315353323551",[32,33,34,35],1794036687882]