BUILD A
PASS
MAKER
Design and develop a mobile-first app that creates real Apple Wallet passes (.pkpass). Templates, live preview, server-signed passes. One week. One winner. $100.
Real pass.
Real wallet.
This is what your app needs to produce — a valid signed .pkpass file that downloads and adds directly into Apple Wallet. No mockups. No fakes. The real thing.
Build This →How to Enter
Like the Post
Find the PASSHACK announcement post in the Skool group and hit like. This registers your interest.
Drop a Comment
Comment on the post. Tell us your stack, hype yourself up, or just say "I'm in." Anything counts.
Invite 2 Developers
Share the group link with at least 2 developer friends. We grow together — more devs, better competition.
When Does It Start?
The hackathon officially begins once we hit 50 enrolled members in the Skool group — and the deadline to hit that number is Monday, March 9th, 2026.
Once the threshold is met, you'll have one full week to build and submit your app. The clock starts immediately, so be ready.
Spread the word. Invite your friends. Let's make this happen.
The Challenge
Build a mobile-first web app that lets users create real Apple Wallet passes (.pkpass) from customizable templates.
Users pick a template from a store, fill in their data through a dynamic form, see a live preview of the pass, and when they're ready — press "Add to Wallet" to sign it through our API and download the real .pkpass file.
The passes must be signed using the MoreThanCoder signing API. Submissions that don't produce downloadable, valid .pkpass files from the API will be automatically rejected.
Full Requirements
Every requirement marked REQUIRED must be implemented. Items marked BONUS earn extra points.
Authentication
- Gmail / Google sign-in is required. No email+password fallback needed. Required
- Sign out, sign in, and delete account must be available in Settings. Required
- All app routes must be protected behind auth. Required
- Guest sign-in — guests can only create cards from the default template. They must sign in to purchase templates or use "Add to Wallet." Bonus
Template Store
- Templates are fetched from a database (Firebase, Supabase, or your choice). Required
- Each template includes: category, fields array, and metadata. Each field has: field name, type, and default value. Required
- Users "buy" templates via a mocked purchase flow (no real payment). Purchased templates appear in the user's library. Required
Create Pass Page
- Displays the user's purchased templates, grouped by category. Required
- Selecting a template generates a dynamic form based on that template's fields. Each form input must match the field's declared type. Required
- Supported field input types: Text, Number, Date, Date+Time, URL, Phone, Email, Image/Thumbnail, Barcode/QR, Color, Location, Currency. Required
- The create page must show a live preview of the pass as the user fills in the form. The preview must reflect the pass category layout. Required
- After creating a card, it is saved to the user's cards and displayed in an Apple Wallet-style card view with an "Add to Wallet" button. Required
Apple Wallet Integration
- When user presses "Add to Wallet", the app sends pass data to the MoreThanCoder signing API. Required
- The API signs the data into a valid .pkpass file and returns the binary. The user downloads it. Required
- Do NOT send signing requests for cards the user has only created/saved but hasn't pressed "Add to Wallet" for. Signing only on explicit user action. Required
- Submissions will be automatically rejected if the pass is not downloadable from the API. Required
Signing API Reference
Base URL:
http://signpkpass.api.morethancoder.com
| Method | Endpoint | Description |
|---|---|---|
| GET | /health | Health check (no auth) |
| POST | /passes/generic | Generic / loyalty / membership pass |
| POST | /passes/coupon | Coupon / discount pass |
| POST | /passes/event-ticket | Event ticket pass |
| POST | /passes/boarding-pass | Boarding pass (requires transitType) |
| POST | /passes/store-card | Store card / retail loyalty pass |
| POST | /passes/business-card | Business card (generic style) |
| POST | /passes/document | Document pass (generic style) |
The API is protected by JWT. The JWT secret will be provided to participants in the Skool group resources.
All pass endpoints accept multipart/form-data with a pass_data JSON field and optional image files.
Response is application/vnd.apple.pkpass binary (ZIP archive).
Refer to the full API documentation provided in the group resources for pass data format, field definitions, barcode formats, and example requests.
Language & Localization
- Full Arabic language support with proper RTL layout. All UI elements, text, navigation, and icons must mirror correctly. Required
- English language support with i18n translations and seamless language switching. Bonus
Settings Page
- Sign out, sign in (if signed out), delete account. Required
- Light / Dark mode toggle. Bonus
Bonus Points Summary
- Guest sign-in with limited access
- Custom fonts on Memo Card text
- Light / Dark mode toggle
- English language support with i18n
- Smooth animations and micro-interactions
- Offline support / PWA
- Additional pass categories beyond required
- Clean, well-documented code and README
- Responsive across multiple screen sizes
Tech Stack
No restrictions. Use any frontend framework or library you want — React, Next.js, Vue, Nuxt, Svelte, Flutter Web, or anything else. The only rule: it must be mobile-first.
For auth, database, hosting — your choice. Firebase, Supabase, PlanetScale, Vercel, Netlify — whatever you ship fastest with.
Rules
- Enrollment: You must like the announcement post, drop a comment, and invite 2 developers to the Skool group. All three actions are required to be enrolled.
- Start condition: The hackathon starts when the group hits 50 members, deadline is Monday, March 9th, 2026. Once triggered, you have one full week to submit.
- Solo or team: You may work solo or in a team of up to 2 people. If team, the $100 prize is split between members.
- Original work: Your submission must be original work built during the hackathon period. Using boilerplate, starter templates, or libraries is fine — copying an existing project is not.
- AI tools: You may use AI coding assistants (Copilot, ChatGPT, Claude, etc.). This is a shipping competition, not a purity test.
- Signing API: Your app must use the MoreThanCoder signing API at
signpkpass.api.morethancoder.com. Submissions that produce passes not signed by this API will be automatically rejected. - JWT Secret: The API is protected by JWT. The secret key will be shared in the group resources. Do NOT hard-code the JWT secret in your frontend code — use environment variables or a backend proxy.
- Mobile-first: The app must be designed and built mobile-first. It should work beautifully on mobile screens. Desktop support is a plus, but mobile is the priority.
- Submission format: Submit a public GitHub repository link + screenshots or a video demo. No live deployment required. Post your submission in the Skool group with the [SUBMISSION] tag.
- Deadline: Submissions must be posted before the deadline. Late submissions will not be judged. The exact deadline will be announced when the hackathon starts.
- Code quality: Clean, well-structured, readable code earns bonus points. Spaghetti code won't disqualify you, but it won't win you any favors either.
- Respect: Be respectful to other participants. Help each other. Ask questions in the group. This is a community event — compete hard, but keep it friendly.
Judging Criteria
Submissions will be evaluated across the following criteria. The winner is the submission with the highest total weighted score.
| Criteria | Weight | What We're Looking For |
|---|---|---|
| Functionality | 35% | Does the app work? Are all required features implemented? Can passes be signed and downloaded? |
| UI / UX | 25% | Is the mobile experience smooth and beautiful? Does the live preview feel polished? |
| Code Quality | 15% | Clean code, good file structure, no spaghetti. Well-documented README. |
| Live Preview | 10% | How good is the real-time pass preview? Does it update dynamically as users fill in the form? |
| Bonus Features | 10% | Guest mode, i18n, dark mode, custom fonts, extra pass types, PWA, animations. |
| Creativity | 5% | Surprise us. Delight us. Do something unexpected. |
Note: The judging will be done by Ali Tahseen (MoreThanCoder). Results will be announced in the Skool group within 3 days after the submission deadline.