Lalabase
Tickets, Doku, Zeiterfassung und Kundengespräche an einem Ort, durchsuchbar per KI. Für Softwarefirmen mit Kundenprojekten. Open Source: auf deinem eigenen Server oder in unserer Cloud in Deutschland.
翻译准备中
尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证正在加载完整 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.查看完整 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.