MeetOS · the whole day
A meet day on Attempt
A hall, from above. Point at any screen in it — the wall above the platform, the warm-up room, the lights box, the lobby TV, the scorer’s table, the referees’ phones, the announcer, the camera — and that screen runs here, live, on one simulated meet. They are the components the venue runs, not pictures of them, and they are all on the same second: press play and watch a lifter get called, the minute run, three cards land and the placings move, on every screen at once.
Now Squat, round 1 · Tobias Lindqvist 205 kg
Audience wall TV
What the room watches all day.
Before the meet
The listing takes entries, weigh-in takes bodyweights, rack heights and openers, and the flights fall out of the sessions.
Replaces A registration form, a spreadsheet of entries, a printed weigh-in sheet, and an evening spent typing them into the scoring software.
1 of 6Free
A director lists the meet
Paste the announcement you already wrote. Attempt reads the name, date, venue, federation and fee out of it; you correct what it got wrong and the meet is in the directory lifters search.
The Attempt Demo Open is back on Saturday, November 14, 2026 at Attempt Demo Gym in Houston, TX. USAPL sanctioned, raw, full power. Entries are $95 and open October 1 through November 7, capped at 16 lifters on one platform. Weigh-ins from 7:30, lifting from 9.
Register sends lifters wherever you take entries: on Attempt, or on the site you already use.
What Attempt read
- Meet name
- Attempt Demo Open
- Date
- Saturday, November 14, 2026
- Venue
- Attempt Demo Gym · Houston, TX
- Federation
- USAPL
- Entry fee
- $95
- Entries
- October 1 – November 7 · cap 16
ListedIn the directory, with a page of its own.
2 of 6Free
Entries come in
A lifter registers with the identity they already have on Attempt, so the roster fills with names, classes and divisions that are right the first time. The cap closes the door on its own.
Full. Registration closed on its own; the waitlist is open.
Scroll to fill the roster.
| # | Lifter | Class | Division | Entered |
|---|---|---|---|---|
| 1 | Jordan Vale | M83 | Open · Raw | Oct 1 |
| 2 | Priya Nandakumar | W63 | Open · Raw | Oct 1 |
| 3 | Theo Ashworth | M83 | Open · Raw | Oct 2 |
| 4 | Elena Marsh | W63 | Open · Raw | Oct 3 |
| 5 | Marcus Oyelaran | M83 | Open · Raw | Oct 4 |
| 6 | Callum Brandt | M93 | Open · Raw | Oct 6 |
| 7 | Tessa Okonjo | W72 | Open · Raw | Oct 7 |
| 8 | Daniel Reyes-Kim | M83 | Open · Raw | Oct 9 |
| 9 | Maya Lindqvist | W63 | Open · Raw | Oct 11 |
| 10 | Noah Petrakis | M93 | Open · Raw | Oct 12 |
| 11 | Harper Quinlan | W72 | Open · Raw | Oct 14 |
| 12 | Ibrahim Farouk | M83 | Open · Raw | Oct 16 |
| 13 | Sofia Reinholt | W72 | Open · Raw | Oct 19 |
| 14 | Sam Whitlock | M83 | Open · Raw | Oct 23 |
| 15 | Amara Diallo | W72 | Open · Raw | Oct 27 |
| 16 | Lena Voss | W63 | Open · Raw | Oct 31 |
3 of 6Free
Weigh-in
One row per entry, one screen per lifter: bodyweight, lot, rack heights and the three openers, asked once. What the scale table writes here is what the score table, the announcer and the lifter's own page read afterwards.
Openers are declarations, not results: they seed attempt one as pending and decide nothing.
4 of 6Free
Flights and the order
Auto-build proposes the flights before it touches anything: balanced, by session and class, editable afterwards. Lots are drawn, and the running order is arithmetic — lightest declared bar first, ties on lot, nobody's second attempt before anybody's first.
Flight A
Platform 1 · 9:008 lifters- 1Marcus OyelaranM83
- 2Ibrahim FaroukM83
- 3Noah PetrakisM93
- 4Jordan ValeM83
- 5Sam WhitlockM83
- 6Callum BrandtM93
- 7Theo AshworthM83
- 8Daniel Reyes-KimM83
Flight B
Platform 1 · 11:308 lifters- 1Harper QuinlanW72
- 2Priya NandakumarW63
- 3Tessa OkonjoW72
- 4Amara DialloW72
- 5Elena MarshW63
- 6Lena VossW63
- 7Maya LindqvistW63
- 8Sofia ReinholtW72
Up now
Daniel Reyes-Kim
Squat 1 · lot 8
On deck
Sam Whitlock
Squat 1 · 180 kg · lot 5
In the hole
Jordan Vale
Squat 1 · 185 kg · lot 4
Meet day
One person calls the platform. Three referees press on their own phones. The four screens in the building all follow the same second.
Replaces A laptop wired to a light box, a second laptop for the display, and somebody shouting the order across the room.
The four screens above the plan are this part of the day, on the wall: go back up to the floor and click the warm-up room or the lights box. The console also holds the extended clock, the fourth attempt for a record, a flag when a weight cannot be loaded from the plates the meet owns, and a log every call and card is written to and replayed from.
5 of 6Free
The platform
Three referees, three phones, no app to install. Each one presses White or Red; nothing reaches the scoreboard until the third card lands. Then the lights show, the attempt goes good or no lift, and the next bar is called. The first attempt plays itself; after that the seats are yours.
Current lifter
Sam Whitlock
Squat 1 · lot 5
Clock
01:00
Running
Referee seats · 0 of 3 in
Waiting on the referees · 0 of 3 cards in
The three phones
Yours now
Left seat0/3
Centre seat0/3
Right seat0/3
Give Sam Whitlock their cards.
Flight A · Squat
The scoreboard the room sees
Up now
Sam Whitlock
Squat 1 · lot 5
On deck
Jordan Vale
Squat 1 · 185 kg · lot 4
In the hole
Marcus Oyelaran
Squat 1 · 190 kg · lot 1
The stream
One browser source per platform that directs itself off the meet: the call, the clock, the cards landing one seat at a time, the verdict and what it did to the placings.
Replaces An operator building scenes by hand, or a stream with no graphics on it at all.
The same overlay runs at /demo/broadcast, which is the page a streamer reads for the OBS browser-source settings and the per-widget URLs.
The dark frame is the camera: everything on it is the overlay, and it is on the same second as the screens above — scrub the meet up on the floor plan and this moves with them.
After
Placings, team standings and best lifter are already computed. Finalize writes the results to every lifter’s profile and hands you the export.
Replaces Re-keying the results into a federation spreadsheet, and lifters waiting a week to see them.
6 of 6Free
Results
Placings are recomputed from the attempts as they stand, checked six ways, and finalized. The day the meet finalizes the results land on every lifter's profile, and each one gets a card to post that night.
Women · Open · 63 kg · Raw
| # | Lifter | S | B | D | Total | DOTS | GL |
|---|---|---|---|---|---|---|---|
| 1 | Priya Nandakumar | 375 | 405.68 | ||||
| 2 | Lena Voss | 355 | 382.18 | ||||
| 3 | Elena Marsh | 337.5 | 370.27 | ||||
| 4 | Maya Lindqvist | 322.5 | 356.76 |
Women · Open · 72 kg · Raw
| # | Lifter | S | B | D | Total | DOTS | GL |
|---|---|---|---|---|---|---|---|
| 1 | Harper Quinlan | 427.5 | 426.59 | ||||
| 2 | Tessa Okonjo | 397.5 | 399.12 | ||||
| 3 | Amara Diallo | 380 | 380.66 | ||||
| 4 | Sofia Reinholt | 372.5 | 377.30 |
Men · Open · 83 kg · Raw
| # | Lifter | S | B | D | Total | DOTS | GL |
|---|---|---|---|---|---|---|---|
| 1 | Theo Ashworth | 615 | 417.75 | ||||
| 2 | Ibrahim Farouk | 602.5 | 407.02 | ||||
| 3 | Marcus Oyelaran | 577.5 | 393.65 | ||||
| 4 | Jordan Vale | 560.5 | 394.88 | ||||
| 5 | Sam Whitlock | 552.5 | 382.96 | ||||
| 6 | Daniel Reyes-Kim | 535 | 367.83 |
Men · Open · 93 kg · Raw
| # | Lifter | S | B | D | Total | DOTS | GL |
|---|---|---|---|---|---|---|---|
| 1 | Callum Brandt | 675 | 432.18 | ||||
| 2 | Noah Petrakis | 647.5 | 412.83 |
- Best lifter · DOTS
- 432.18Callum Brandt675 kg total
- Best lifter · GL
- 88.87Callum Brandt675 kg total

What it costs the director
Attempt takes no cut of entries or sponsorship and processes neither: entry money goes where it already goes, and a sponsor pays you directly.
Replaces A per-lifter fee on every entry, and a platform between you and your sponsors.
- Entry money never touches Attempt. Take entries wherever you already take them; MeetOS reads the roster and runs the meet.
- A sponsor pays you, not us. A meet has 1 title placement and up to 6 supporting ones, and the sponsor sheet lists exactly where each mark appears — the wall screen’s corner, the lobby board, the stream, and every lifter’s result card — so what you sell is a placement you can count rather than “exposure”.
- MeetOS runs meets by invitation while it settles, and costs the director nothing today.
Coming from LiftingCast
Every row is what a director actually does on the day, and where it is in MeetOS. The rows MeetOS does not do yet say so in those words and name the entry that will do them.
| On the day | In MeetOS | Where |
|---|---|---|
| Set the meet up: federation, divisions, weight classes, platforms | A meet, a rules profile per federation, and the classes that come with it | /meetos/new, then Settings · Rules |
| Take entries online | The meet’s own public listing takes them; entries land on the roster | /meets/<slug>, then Registrations |
| Import a roster from a spreadsheet | CSV import that reads LiftingCast’s own column names | Registrations · Import |
| Weigh-in: bodyweight, rack heights, openers | The weigh-in panel, with the class check and the opener beside the scale | /meetos/<id>/weigh-in |
| Sessions, flights and lot numbers | Sessions and flights, with lots drawn and the flight sheet printable | /meetos/<id>/sessions |
| The lifting order | Computed, never typed: round, then weight, then lot | src/lib/lifting-order.ts |
| Run the platform: call the lifter, the clock, the bar | The platform console, one screen, one operator | /meetos/<id>/platform/<n> |
| Referee lights | Three phones on a code, or verdicts typed at the table when there are none | /referee/join |
| Red cards with the reason | The numbered IPF card for that lift, pressed on the phone | The referee seat |
| The loading chart the loaders read | The bar is drawn from the plates this meet owns, on every screen that shows a weight | Settings · Bar and plates |
| The audience display | Four screens, each its own URL: audience, warm-up, lights, lobby board | /meets/<slug>/display/<kind> |
| Live results for people at home | The meet’s public page follows the platform | /meets/<slug> |
| Graphics on the livestream | One OBS browser source per platform that directs itself | /meets/<slug>/broadcast/<n> |
| Scoring, team standings and best lifter | Recomputed as attempts are decided, on the federation’s own formula | /meetos/<id>/scoring |
| Export the results to the federation | A CSV in OpenPowerlifting’s column shape, and the results on every lifter’s profile | /meetos/<id>/finalize |
| Print the weigh-in, flight and score sheets | All three print from the screen they belong to | Weigh-in, Sessions and Scoring · Print |
| A record list, and a flag when an attempt would break one | Every declared weight over the standing mark is flagged at the table, on the wall and on the lobby board — all-time bests from OpenPowerlifting, quoted with the holder, not a federation’s record book | The console, the score table and the displays |
| The extended clock for a lifter who follows themselves | Worked out from the round and pointed at: four minutes following yourself, three last in the round, two last but one | The platform console · Extended clock |
| The thirty seconds a lifter has to clear the platform | A thirty-second clearing count beside the clock from the moment the verdict lands, per the meet’s rules profile | The platform console · Clock |
| Watch the weigh-in window close | A live countdown per flight from the scale opening, and every unweighed entry flagged once it closes | /meetos/<id>/weigh-in |
| Take back a mistake: a wrong call, the wrong lift, a verdict on the wrong row | One Undo that names what it undoes, Change this verdict on any judged row, Reinstate beside Disqualify — each written into the log as its own event | The platform console · Undo, and the score table |
Try it
The wall screen is a URL: put it on a TV in your venue and it runs all day. This one runs the same simulated meet as the floor above.
Run yours
Run a meet on MeetOS
Registration, weigh-in, flights, the platform, three referee phones, results to every profile. MeetOS is in development and runs meets by invitation, one at a time, while it settles.
To run one, write to meets@attemptpl.com with the meet, the date and the federation.
List your meet
Whatever you run registration on, the calendar lifters actually search is here. Paste the announcement, correct what Attempt reads, and the Register button sends lifters wherever you take entries.