BikeControl (SwiftControl)
Zwift Click과 Shimano 컨트롤러를 MyWhoosh와 Rouvy와 Zwift에서 쓴다
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기Padel court booking website. Pick a day and time, see live courts, hold one for 15 min, pay a deposit or in full, get a QR ticket and check in at the venue. Unpaid holds free themselves and go to the waitlist. The front desk runs tonight from one dashboard, the owner tracks revenue, court use, prices and staff.
저장소 README에서 가져옴
README 전체를 불러오는 중입니다.
README 전문 보기 ↗Book a padel court in 60 seconds, without a WhatsApp chat.
A booking web app for a three-court padel venue in Kemang, South Jakarta. Players book and pay. The front desk and the owner run the day from one dashboard.
Features · Screens · How it works · Quick start · Docs
Padelion is a booking web app for a three-court padel venue in Kemang, South Jakarta. Players see live availability, hold a court for 15 minutes, pay a deposit or the full amount and get a ticket with a check-in QR. The front desk and the owner run the day from one dashboard.
Most padel venues in Jakarta still take bookings over WhatsApp. A player asks what is free, waits for a reply, sends a transfer screenshot and waits again. Unpaid holds block prime slots, rain on the outdoor court means a round of calls, and the desk chases balances by hand.
Players (no account)
Front desk
Owner
Automatic
| Book your court | Held for you, 15 minutes |
|---|---|
| Your ticket | Check-in at the venue |
| Owner, this week | Payments to check |
|---|---|
| Booking detail | Prices and staff |
More in the screen gallery.
flowchart LR
P[Player] -->|pick a time| H[Hold 15 min]
H -->|pay deposit or full| T[Ticket + QR]
H -->|time runs out| X[Released]
X -->|next in line| W[Waitlist offer]
T -->|scan at the venue| C[Checked in]
T -.->|balance, reschedule| T
D[Front desk] -->|timeline, payments, rain mode| DB[(Supabase)]
O[Owner] -->|week, prices, staff| DB
H --- DB
J[pg_cron every minute] -->|release holds, offers, reminders| DB
stateDiagram-v2
[*] --> hold: create_hold
hold --> deposit_paid: pay 50%
hold --> paid: pay in full
hold --> expired: 15 min pass
deposit_paid --> paid: pay balance
deposit_paid --> cancelled
paid --> played: checked in
paid --> no_show
expired --> [*]
played --> [*]
| Layer | Choice |
|---|---|
| App | TanStack Start, TanStack Router and Query, React 19, TypeScript, Vite |
| Data | Supabase: Postgres, row level security, Auth, Realtime, pg_cron |
| Styling | A custom CSS design system in src/design-system/padelion (no Tailwind) |
| Motion and 3D | GSAP ScrollTrigger, three.js with React Three Fiber and drei |
| Other | qrcode, jsQR, canvas-confetti, Recharts, date-fns, zod, Heroicons |
| Hosting | Vercel through the Nitro plugin (any host that runs TanStack Start works) |
src/
routes/ pages (player) and _staff/ (desk, owner)
components/ landing, player, staff
design-system/ Padelion tokens and base components
integrations/ Supabase clients and types
lib/ booking helpers, queries, formatting
supabase/migrations/ schema, RPCs, policies, scheduled jobs
docs/ product, architecture, database, design
bun install
cp .env.example .env # fill in your Supabase project
bun run dev
Then apply the database migrations in supabase/migrations to your Supabase project. Full steps in docs/setup-and-deployment.md.
bun run lint # ESLint
bun run typecheck # TypeScript
bun run test # unit tests for pricing, peak hours, overlaps and phone numbers
bun run build # production build
All four run on every push through GitHub Actions.
| Role | Password | |
|---|---|---|
| Front desk (Dewi) | [email protected] | Padelion2026 |
| Owner (Hendra Wijaya) | [email protected] | Padelion2026 |
These accounts are created by the app on first sign-in and only reach demo data. Change them before running a real venue. Open /demo for a five step tour.
| Doc | What is inside |
|---|---|
| Screens | Every page, player and venue |
| Product | Problem, users, flows, booking rules, scope |
| Architecture | How the app, database and jobs fit together |
| Routes | Every page, who uses it and what it does |
| Database | Tables, functions, access rules and scheduled jobs |
| Design system | Tokens, type, components, motion and copy rules |
| Setup and deployment | Local setup, environment, Supabase and hosting |
| Roadmap | Done and next |
This is a working demo. Payments use a sandbox and WhatsApp messages are written to a notifications table instead of being sent. See the roadmap for the production steps.
Designed and built by Yosep Rendi, product designer at Morae Studio.
MIT © 2026 Yosep Rendi