Javis OS
Javis OS is an Agentic AI that assists entrepreneurs in business tasks, helping them grow their work.
AI translation
PassFlow is an event platform for registration, QR tickets, digital passes, and live check-in. One account for attendees, one workspace for organizers.
BusinessTypeScript · JavaScriptGitHub @palcchiOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Loading the full README. The saved excerpt is shown below.
One event platform. One attendee identity. One QR across physical and digital experiences. PassFlow adalah platform event berbasis web untuk organizer yang menggabungkan event website, registration, attendee management, QR credential, digital pass, access control, scanner, activities, benefits, analytics, dan design workflow dalam satu sistem multi-event.Read the full README ↗
One event platform. One attendee identity. One QR across physical and digital experiences.
PassFlow adalah platform event berbasis web untuk organizer yang menggabungkan event website, registration, attendee management, QR credential, digital pass, access control, scanner, activities, benefits, analytics, dan design workflow dalam satu sistem multi-event.
Repository: palcchi/passflow
Checkpoint: 28 September 2026
Full execution roadmap: docs/PASSFLOW_ROADMAP.md
PassFlow sudah melewati tahap prototype awal dan sekarang mempunyai foundation aplikasi, database, authentication, organizer workspace, event management, participant management, QR/access system, scanner, experience tools, profile system, serta Figma integration awal.
Fokus berikutnya bukan menambah halaman sebanyak mungkin, tetapi membuat workflow event terasa seperti satu produk yang utuh, terutama:
PassFlow tidak boleh membuat Vercel preview atau production deployment secara otomatis sebagai bagian dari pekerjaan biasa.
Workflow yang digunakan:
edit
→ group changes
→ review source
→ explicit approval to deploy
→ one intended deployment
Preview atau production deployment hanya dilakukan setelah ada instruksi eksplisit untuk deploy.
PassFlow adalah multi-event platform.
Satu aplikasi dapat menangani banyak event:
PassFlow
├── Event A
├── Event B
├── Event C
└── ...
Setiap event memiliki data dan konfigurasi sendiri:
Data antar event harus tetap terisolasi melalui event_id, authorization, dan Row Level Security.
html5-qrcodeqrcodepassflow.my.id/
Main PassFlow homepage.
/e/[slug]
Published public event page.
/e/[slug]/claim
Attendee QR claim / digital pass flow.
/scan/[stationId]
Operational QR scanner.
/login
/register
/forgot-password
/account
/profile
Current account system includes:
User-facing application copy is intended to remain English-first.
/admin
/admin/events/new
/admin/events/[eventId]
Event management navigation currently uses:
Overview
People
Access
Experience
Appearance
Design
Settings
Desktop uses a persistent workspace navigation model. Event-level navigation uses a floating rounded dock with an animated active pill.
Page navigation is designed to feel app-like:
Organizer can work with real managed events from Supabase.
Event data includes:
Published events are separated from organizer-managed drafts.
Current People tools include:
Participant avatars are also surfaced in organizer event cards as compact presence previews.
Attendee photos use signed URLs from the private attendee-photos storage bucket rather than exposing private storage paths directly.
PassFlow supports two credential assignment strategies:
Registration
→ credential created/assigned
→ digital credential available
Best for:
Registration
→ attendee receives physical credential
→ attendee scans QR
→ QR bound to attendee
Best for:
Current Access workspace includes:
Scanner modes:
CHECK_IN
ZONE_ACCESS
ACTIVITY
CLAIM
PassFlow treats the QR as a credential, not merely a picture.
Core principle:
One credential can be represented physically and digitally without creating two attendee identities.
Example:
ATTENDEE
│
└── ACTIVE QR CREDENTIAL
├── physical wristband
└── digital pass
Important rules:
Operational flow:
QR detected
→ lock scanner
→ validate credential
→ resolve attendee
→ resolve station
→ evaluate station mode / access rule
→ write log
→ show result
→ return to camera
Possible results include:
ACCESS GRANTED
ACCESS DENIED
INVALID PASS
ALREADY CHECKED IN
ALREADY CLAIMED
PASS REVOKED
Scanner UI must remain:
Current event Experience tools include:
Examples:
Workshop check-in
Merchandise claim
VIP activation
Booth checkpoint
Session attendance
The same attendee credential should work across access, activity, and benefit flows.
Event Appearance remains responsible for basic PassFlow-level branding:
This is Quick Setup, not a replacement for a full visual website builder.
PassFlow should not grow into another drag-and-drop page builder when Figma already exists for that job.
The repository already contains an initial Figma integration.
Current implementation includes:
Current manual flow is approximately:
Connect Figma
→ paste Figma frame URL
→ sync
→ detect PassFlow markers
→ save design
This flow works as the existing foundation, but it is not the final intended Customize workflow.
Customize follows:
Template-first, freedom-second.
The default experience should not throw a normal organizer into an empty canvas and politely abandon them there.
Customize Event
→ Start with PassFlow
→ choose template/style
→ open existing Figma file
→ run PassFlow plugin
→ install starter template
→ edit
→ auto-sync Draft
→ Preview
→ Publish
Experienced designers can choose:
Advanced Mode
→ start blank
→ create custom layout
→ assign PassFlow elements manually
A starter template should contain a useful event website structure:
Hero
About
Tickets
Schedule
Speakers
Sponsors
Venue
FAQ
CTA
Footer
The user can then:
The template exists to provide structure, not to lock creativity.
Layer names may remain human-readable, for example:
PASSFLOW_EVENT_NAME
PASSFLOW_REGISTER
PASSFLOW_SCHEDULE
But layer names must not be the primary internal binding identity.
The intended system should use Figma plugin metadata / pluginData.
Conceptually:
Layer name:
Register Button
PassFlow metadata:
role = register
schema = passflow.website.v1
binding = action.register
This allows users to rename layers without destroying PassFlow integration.
The intended primary flow is:
Open Figma file
→ PassFlow Plugin
→ Pair Event
→ Edit
→ Auto-sync Draft
→ Preview
→ Publish
The old:
copy link
→ paste URL
→ press sync
should remain only as fallback/manual import rather than the main UX.
Pairing should use a temporary code.
Example:
PassFlow:
PF-82DK7
Figma Plugin:
Enter pairing code
→ Connected to Festival of Ideas 2026
After pairing, the Figma file remembers the PassFlow event association through plugin metadata.
No repeated copy-paste URL should be required.
Sync and Publish are different operations.
Figma changes
→ PassFlow Draft
→ Preview
→ Publish
→ Live website
Figma edits should never silently change a live event website.
Recommended states:
Synced
Changes detected
Syncing draft
Draft ready
Published
When the plugin is open, draft sync can use a short debounce after document changes.
Figma webhook events can later be used for background change detection, but should not be treated as the only real-time synchronization mechanism.
For ordinary organizers:
Festival of Ideas 2026
Connected
Draft synced
Preview Website
Publish
Open PassFlow
No marker management required.
For designers:
Selected layer
→ Assign as
Register
My Pass
Tickets
Schedule
Custom Link
The Figma plugin should eventually provide reusable blocks:
Hero
Register CTA
Ticket List
Schedule
Speaker Grid
Sponsor Grid
Venue
FAQ
Footer
This lets users add functional PassFlow components without rebuilding bindings manually.
Architecture:
FIGMA
visual/layout
↓
PASSFLOW DESIGN SCHEMA
↓
PASSFLOW ENGINE
data/actions/state
↓
EVENT WEBSITE
The final integration should not degrade into:
Figma
→ PNG
→ background image
The generated event website must remain functional and data-driven.
Recommended Figma frames:
Desktop 1440
Mobile 390
Tablet can be optional.
If a dedicated mobile frame is unavailable, PassFlow may attempt a responsive fallback but should surface a warning rather than pretending every desktop layout magically understands mobile design.
Long-term public event URLs should support:
discoveries.passflow.my.id
festival.passflow.my.id
conference.passflow.my.id
This does not require purchasing a domain for every event.
One owned domain:
passflow.my.id
can use wildcard DNS:
*.passflow.my.id
One PassFlow application can then resolve:
hostname
→ subdomain
→ event
→ published website
Example:
discoveries.passflow.my.id
→ subdomain: discoveries
→ Event: Discoveries
Reserved subdomains should include names such as:
www
app
admin
api
login
register
support
help
status
mail
Current /e/[slug] routing remains valid until the subdomain routing layer is implemented.
A later paid/advanced capability can allow organizers to use their own domain:
discoveriesfestival.com
tickets.brand.com
event.company.com
Proposed model:
Default
eventname.passflow.my.id
Advanced / Pro
custom organizer domain
This is not required for the initial wildcard-subdomain release.
PassFlow UI direction is:
Magic UI-style interactions are used selectively.
Suitable examples:
Avoid:
Organizer workspace remains primarily PassFlow-branded.
Inside event management, selected event identity may influence accents and previews, but readability must always win.
Public event pages should reflect the event's own visual identity.
Dark mode must preserve contrast and must not leave dark text on dark surfaces.
Important rules:
The application currently works with data areas including:
organizations
organization_members
events
event_members
ticket_types
attendees
attendee_profiles
qr_credentials
access_zones
access_rules
scanner_stations
scan_logs
activities
activity_logs
benefits
benefit_claims
event_assets
figma_connections
event_designs
Almost all operational event data should remain scoped by event_id.
See .env.example.
Current application configuration includes:
NEXT_PUBLIC_SUPABASE_URL=
NEXT_PUBLIC_SUPABASE_PUBLISHABLE_KEY=
# Optional legacy fallback
NEXT_PUBLIC_SUPABASE_ANON_KEY=
NEXT_PUBLIC_APP_URL=http://localhost:3000
FIGMA_CLIENT_ID=
FIGMA_CLIENT_SECRET=
FIGMA_TOKEN_ENCRYPTION_KEY=
Rules:
.env.local;NEXT_PUBLIC_*;git clone https://github.com/palcchi/passflow.git
cd passflow
npm install
npm run dev
Or, for deterministic dependency installation:
npm ci
npm run dev
Useful checks:
npm run lint
npm run typecheck
npm run build
Future candidates already considered:
Unless there is a strong reason to change them:
Project:
PassFlow
Repository:
palcchi/passflow
Core:
Multi-event event platform with registration, attendees,
QR credentials, digital passes, access control, scanners,
activities, benefits, event websites, and Figma-based design.
Current stack:
Next.js 16
React 19.2
TypeScript
Supabase
Tailwind CSS 4
Motion
Magic UI adaptations
html5-qrcode
qrcode
Vercel
Current organizer event sections:
Overview
People
Access
Experience
Appearance
Design
Settings
Customize direction:
Template-first.
PassFlow plugin inserts a starter template into an existing Figma file.
Blank canvas remains Advanced Mode.
Figma nodes use plugin metadata for PassFlow bindings.
Pair event using a temporary pairing code.
Plugin auto-syncs Draft.
Preview before Publish.
Publishing is explicit.
Event website direction:
Current /e/[slug] remains available.
Target default URL:
eventname.passflow.my.id
Longer term:
custom organizer domains.
Deployment rule:
Do not trigger preview or production deployments unless explicitly requested.