The boys state swimming championship in the VarsityApex demo came from a Hy-Tek Meet Manager text report. VarsityApex read the report, split times included, and published team scores for four schools and results for three events. At the foot of the page, a Source block names the file and states, "Nothing on this page was retyped."
Ron Bronson, Vloora's founder and CEO, built VarsityApex and explained its design in an August 9 post ↗. He has coached high school sports for more than 10 years and built oregontennis.org, a statewide ranking of high school team tennis. The demo at varsityapex.com ↗ and its guided tour ↗ run entirely on invented schools and athletes.
Track and swimming results usually end up in a PDF
Most results systems assume two teams with one score each. A basketball game fits that model and gets a web page. A track meet has athletes from many schools, each with a time, a distance, or a height, so track, swimming, wrestling, golf, and cross country results get posted as PDFs. Ron's own league posts nothing online, and the local papers that used to print results have shrunk or gone behind paywalls.
Imports start from the file the scoring software already produced
Coaches and meet directors already have results files: Hy-Tek meet printouts, swim exports, scorebook spreadsheets, and dual-match cards. Many sites accept these files as uploads, but pulling the results back out of them is hard. VarsityApex parses each file into structured results.
The tour's other two imports are a basketball box score from a scorebook export in comma-separated values (CSV) format and a boys tennis dual from a fixed-width match card.
Every imported page ends with a Source block. On the basketball game it lists the file name, scorebook-basketball-boxscore.csv, and the format and parser that read it, boxscore_csv via scorebook_csv v1. It also carries the scorebook's game ID, a SHA-256 hash of the file, and the import date. When a result is disputed, a league can hash the file the coach submitted and check whether this page came from it.
Three contest shapes cover every sport and activity
VarsityApex sorts each contest into one of three shapes. A GAME is two teams with a score each, such as football or basketball. A DUAL is a team match decided by individual lines, as in tennis and wrestling. A MEET ranks a larger field by mark, as in track, swimming, skiing, and golf. Each sport adds its own details on top of the shape.
The demo's girls tennis dual at Naomi Ward lists nine lines, six singles and three doubles, each with its own set scores. The Ashbury Invitational swim meet lists team points for seven schools and results for 12 events. With three shapes, one site carries all 45 sports and activities in the demo, including marching band, choir, and debate.
Each result keeps its own kind of score, whether that is a time, a judged score, or a debate placement. The demo's volleyball match shows a final of 0 to 3 in sets, with the points for each set in the linescore. The 3A-1A bowling title is decided at a single meet, so its championship page shows meet results where other titles show a bracket.
Because every result has a shape, one athlete page can hold several sports. Cecilia Ybarra, a sophomore at Naomi Ward, has girls tennis results at second singles and girls wrestling results in the 106 weight class on the same page.
VarsityApex records how it matched each school name
A parsed file still has to attach to the right schools. One school can appear with "High School" in one export, as an abbreviation in another, and cut off at the edge of a PDF column in a third. VarsityApex runs each imported name through a resolver that checks exact names, normalized forms, and known aliases, then tries progressively looser matches. It records which method made the match. A wrong match would put a result on another school's page and into its standings.
What happens when Copper Lak could mean three schools?
The demo directory has schools named Copper Lake, Copper Lake East, and Copper Lake West. If an export prints "Copper Lak," any of the three is a reasonable reading, and the resolver can decline to choose. It reports the ambiguity and leaves the name unresolved for someone to review and attach by hand. Ron's post calls this the most important thing the resolver does.
Validation flags a box score whose totals disagree
Each contest goes through validation before it becomes a lasting record. The tour's Sage Summit at Norview basketball game came from a file named scorebook-basketball-badtotals.csv. Norview's players add up to 53 points, which matches the final score. The file's team totals row and its quarter-by-quarter linescore both add up to 58. The page carries a Needs review flag that names the two fields in conflict, points and linescore, so the reviewer knows which numbers to check against the paper scorebook.
Each organization publishes from records the school owns
A school's results live in its own repository in an open format, outside any vendor's database. The school, its conference, and the state association can each run a separate site from those records, built by different companies, and the results still flow between them.
In the demo, Ashbrook Athletics has its own masthead with the Wolves name, its conference, and its classification, and the association shrinks to a link back in the navigation. The Admiralty League conference site works the same way.
AT Protocol lets a school move its records to another host
VarsityApex is built to publish results as standard.site records on the Authenticated Transfer Protocol (AT Protocol), the open protocol Bluesky runs on. Other services can then subscribe to the results as well as view them.
On AT Protocol, the school's repository sits on a personal data server (PDS). A school that changes providers moves its PDS to another host and keeps every historical result, including the ones someone once typed in by hand. It can also put a new site design on the same records or connect them to another system.
Ron's post says the idea works without AT Protocol. He chose school sports as a low-stakes place to test data portability, a problem that stalls many projects to modernize old records. The tour shows the published pages, and the post describes the AT Protocol publishing.
Every school and score in the demo is invented
The demo's state association, the JHSAA, is fictional, along with its classifications from 7A to 1A, its member schools, coaches, athletes, and the sponsors in the footer. Athletic department email addresses end in .example, a domain reserved for examples. Ron describes the data as highly synthetic, written to show what a site could look like at each level, from one school up to the state association.
Ron's post says the prototype is basically done and names the next step: a real version built with a school, a conference, or a state association. Schools and associations have little money for this, and leagues run on dues from member schools, so he expects a first real version would run as a volunteer civic brigade project or on a grant.
Related writing
Ron Bronson, Introducing ApexVarsity ↗, August 9, 2026, and the VarsityApex product tour ↗.