Coryo is the one place a dancer sees who is teaching, where, and when. It is a shared catalog of Los Angeles dance classes, read by a native iPhone app, and it is built from schedules studios already publish. The booking platforms that hold this data hold it well, but each holds only its own slice, so a dancer deciding on tonight's class still checks eight studio websites, three booking widgets, and an Instagram story that expires in an hour.
We aggregate discovery and only discovery. Every class in the app links straight to the studio's own booking page, so the studio keeps the customer and the sale. The catalog today carries 675 classes across 14 LA studios, read from six different booking platforms, with provenance (a record of exactly where each fact came from and when we last checked it) attached to every row.
1Finding tonight's class should take five seconds. It takes fifteen apps.
A dancer is in her car. She has two hours free tonight. She wants to know who is teaching, where, and when, and she wants it in under five seconds. Today she answers that question by checking fifteen Instagram stories and eight studio websites.
The people this describes are specific: the LA commercial and hip-hop scene. These dancers take three to six classes a week, follow specific choreographers rather than venues, and will drive forty minutes for the right teacher. For them the schedule is not a nice-to-have. It is the daily logistical problem of their training life, and the information they need is scattered across more places than anyone can reasonably check.
The scattering has a shape. A guest masterclass or a last-minute substitute teacher gets announced in an Instagram story and vanishes in 24 hours. That expiration is exactly why dancers miss classes. Studio websites publish through whatever booking widget the studio happens to rent, in whatever format that vendor chooses. And the directories that claim to cover the scene rot in public: EDGE Performing Arts Center closed permanently in 2020 after 29 years and still ranks first in several "best LA studios" listicles. Any list that includes EDGE is at least six years stale.

Meanwhile, every neighboring culture got its aggregator. Live music got Bandsintown, which grew to 100 million users and 700,000 artists answering the same "who is playing near me" question. Fitness got ClassPass, which fills classes at over 8,000 studios. Dance, a roughly $5 billion US studio market across some 14,600 studios, of which Los Angeles is the largest metro at around 785, got nothing. Our founder danced for 13 years and puts it plainly: in that time the industry got zero infrastructure. There is no Bandsintown for dance.
That is the question this document answers: what does it take to build one, and why has nobody done it.
Who is building this
Aayush is 22, has been dancing for 13 years, and has spent too many nights in his car cross-referencing flyers, stories, and half-updated schedules just to find one class worth driving across town for. He is an engineer, so he did what engineers do when something they love is harder than it should be: he built the tool he wished existed.
"I can tell you every venue my favorite band plays this year, but I had to dig through fifteen Instagram stories to find one hip-hop class on a Tuesday. There is no Bandsintown for dance, so I'm building it." Aayush, founder
2What exists today, and where it stops
The existing platforms are good at their jobs. The gaps are in the jobs nobody took.
Every platform holds only its own slice
Booking and billing are owned by Mindbody, Vagaro, and Jackrabbit, and they work. A studio on any of them can sell a class, run a roster, and take a card. But when we surveyed 143 evidence-graded LA County locations, we found their schedules published through more than 25 distinct systems: Wix Bookings, Jackrabbit, DanceStudio-Pro, Punchpass, Momence, Pike13, Setmore, Google Calendar embeds, plain web pages, PDFs, and six different Mindbody embed variants alone. Each vendor shows you one studio at a time. No dancer lives inside one vendor.
The real schedule lives in a story that expires
The commercial scene's true publishing channel is Instagram. A weekly schedule posted as an image, a sub announced in a story, a battle flyer in a feed. It reaches followers for a day and then it is gone, and no computer could read it in the first place. Some of the city's most important rooms publish nowhere else: Millennium Dance Complex publishes no schedule on the web at all and tells students to download its app, where instructors "are not confirmed until the day before class."
Nobody follows the teacher
In this scene the teacher is the draw and the studio is a venue. A dancer tracks one choreographer across three studios in a week. Mindbody and ClassPass are built for booking inventory at a location, not for following a person across locations, so the one map that matters to a dancer, the teacher map, exists nowhere. ClassPass itself is the instructive case: it began as a search engine for fitness classes, and studios did not care until it showed up with paying customers. Discovery alone did not move the studios. Ours moves without their permission, which is the next section.
3What we stand for
We believe dance should be easy to find and fun for everyone. Finding tonight's class should feel like the first eight-count of a song you love, not a scavenger hunt across screenshots and story highlights. So we hold ourselves to four commitments.
Speed. Five seconds from opening the app to knowing where the floor is tonight. That promise holds in a parking garage with zero bars, because the catalog lives on your phone, ready before the signal is.
Truth. Every fact in the catalog traces back to its source. When we say a class meets Tuesday at 8, we can show you where that came from and when we last checked. "Verified 2 days ago" is written right on the card, because honesty about freshness is part of the fact.
Openness. The catalog is useful from your very first tap. No account, no gatekeeping. A new dancer in a new city gets the same catalog as a fifteen-year veteran.
Respect. The studio stays the hero of every booking and keeps its customer. The teacher stays the star of the class. The dancer's training life stays hers alone.
This is a tool that serves the dancer, not an algorithm that serves itself.

4Four mechanisms, each one earning the next
Each exists because the one before it leaves a problem open.

4.1 One protocol, many sources
Supply is the existential problem, not the app's interface. Every way a class can reach the catalog goes through an adapter (a small program that knows how to read one booking site's schedule), and every adapter follows one protocol (a shared contract that makes them all interchangeable). Nothing above that contract knows or cares where a class came from. Twenty-three adapters exist today, one per publishing system, and adding a booking platform means writing one new file.
Sources are ranked by how much we trust the result. A listing the studio claims itself outranks a partner API (a direct data feed a platform offers on purpose), which outranks structured data the site already publishes, which outranks a public widget, which outranks manual typing. Manual entry is the floor and it is never wasted work: it needs nobody's permission, it wins the cold start, and it is the accuracy baseline every automated adapter gets checked against. The two most important LA studios that publish nothing a computer can read cost one to two hours of typing each, once, and the recurrence model does the rest. We spent more effort trying to read one of them automatically than it would have taken to just type it in.
The scaling insight: the cost that matters is human hours per studio, not computing cost. So the system fingerprints the platform, not the studio. Fetch a candidate's page once, detect which booking system it embeds, and route it to that platform's adapter with the right site id. Onboarding studio 300 should be a lookup, not a morning of engineering.
4.2 A protocol solves where classes come from. It says nothing about whether they are true.
The catalog's only asset is being right, so correctness is built into the structure, not left to good intentions.
Recurrence is real recurrence. A class schedule is stored as templates holding recurrence rules (the standard calendar format, RFC 5545, that lets software say "every Tuesday at 7pm" precisely), then expanded ahead of time into concrete dated sessions 60 days forward. So the feed is one flat, fast lookup with no calendar math when you open the app. Templates store the local wall-clock time plus an IANA time zone (the official named list of the world's zones, like America/Los_Angeles), never a bare universal timestamp, because a 7pm class stays 7pm across a daylight-saving switch even as its offset moves. Our test data includes 2026-03-08 and 2026-11-01, the two clock-change nights of the year, because the 2007 US daylight-saving change silently broke every calendar system from AdWords to BlackBerry.
Unknown is absent, never guessed. A widget that serves one week of classes says nothing about repetition, so widget sources record dates and never infer "weekly" from a single look. Difficulty levels are never translated between studios: a studio that writes "Pre Intermediate" means a level below intermediate, and remapping it would tell a dancer a class is harder than the studio said. Levels we cannot map stay empty, forever, with a test that fails if anyone wires the shortcut.
Failure preserves the catalog. If a data run would cancel more than three of a studio's classes and more than 40 percent of them, a circuit breaker (a safety switch that halts a process when its behavior looks wrong) refuses the update and reports it. A studio does not cancel most of a week at once; that pattern means our reader broke, not that news happened. An empty fetch never deletes existing sessions.
Every row carries provenance: its source, fetch time, verification time, and trust level, with the raw upstream response kept for tracing. It is what lets the feed degrade honestly, saying "verified 2 days ago," instead of quietly serving something wrong.
4.3 Correct rows still need correct identities
The teacher is the product. If one choreographer teaching at two studios becomes two profiles, the follow graph splits and the core value dies. So teachers get stable internal ids, with display names kept as changeable attributes. Matching duplicate teachers is entity resolution (deciding when two records describe the same real person), and the most reliable real-world identifier in this scene is the Instagram handle. It is stronger than a legal name. Ambiguous matches go to a human review queue and are never merged automatically, because a wrong merge is far harder to detect and undo than a duplicate. Merges are soft and reversible.
The identity layer is also where restraint is a feature. A dancer favorites a teacher and it stays private: no count is shown to the teacher, to other dancers, or anywhere. The mechanic is a follow; the word is what decides whether a scene starts keeping score, and this one will not.
The catalog itself is kept separate from everything personal. The class catalog is a shared public good, byte-identical for every dancer, owned by the server. Follows, plans, and the training log live on the phone, with no account. The raw fetched data lives in a third, write-only store. Mixing these three is the mistake that forces a rewrite later, so the separation is enforced in the architecture, not suggested in a document.
4.4 An honest catalog knows its own denominator
Most aggregators claim coverage. This one measures it. Our August 2026 LA County census graded 143 locations on first-party evidence and declares itself non-exhaustive, in writing, with the gaps named:
Each stage of that funnel is a file in the repository. The audit rule is strict: a studio name or a platform logo is not a working source. Only first-party schedule evidence promotes a lead, and a source counts as live-readable only after its actual adapter returns at least one row with a recognized dance style.
The same honesty applies to individual rows. A studio can be accepted into the catalog on one read, because a human confirms it, but it is never rejected on one. The same studio page, probed three times in one evening, gave us three wrong rows, then three real classes, then six plus a youth program. No run invented a class, and no run was complete. Six is a floor, not a count.
5Why it works: the arithmetic
The whole read side is cheap. A thousand sources polled hourly is 720,000 requests a month, which is 0.28 requests per second, and it runs on rented serverless computing for under seven dollars a month. The cost curve bends only at the browser: doing that same polling through an automated Chrome browser costs roughly thirty times more. So a browser is a discovery tool that finds a site's underlying data feed once, never the everyday path.
Verification is a habit, not a promise. The server carries 156 automated tests across the recurrence engine, the session expansion against a real Postgres database, the teacher-matching scoring, and every adapter. And the things tests cannot see get checked by hand: before any launch milestone, five random classes are spot-checked against the studio's live schedule. One such pass caught 133 stored sessions whose booking links carried a text-encoding bug that no test had flagged, because nothing had technically failed. Green tests are not verification of the world, so the world gets verified too.
Distribution compounds without the app. The server publishes public class, teacher, and studio pages that carry schema.org structured data, machine-readable labels embedded in each page (in a format called JSON-LD) that tell Google precisely what event the page describes. Google turns those labels into event listings in Search and Maps. That is the cheapest compounding distribution a discovery product can get, and a native app has no equivalent surface. The web pages are the front door; the app is the habit.
6What we chose not to build, and why
Scrape harder
Be a marketplace first
Web first instead of native iOS
7The road ahead
The heart of LA comes aboard. The commercial and hip-hop studios that make this city move publish their schedules on Instagram, and they join the catalog the way everything good in dance happens: through partnership and love, one conversation at a time. Bringing a studio in is priced in hours, not months.
The biggest booking platform is almost connected. The largest scheduling system in fitness is within reach, down the same path ClassPass already proved works. When it lands, whole studio schedules light up at once.
The scene names its own styles. The catalog learns the words dancers actually use in the studio, waacking, litefeet, whatever the scene invents next, so the vocabulary belongs to the community that created it.
Every number grows in public. The 675 classes and 14 LA studios in this paper are live counts, not projections. What we publish, we can prove, and the count climbs every week.
8Where this goes

The near-term plan is depth in Los Angeles: hand-enter the two studios that publish nothing, ship the generic structured-data adapter, and put the app in ten LA dancers' hands via TestFlight, Apple's beta-testing program. After that, the teacher dashboard becomes the growth engine: one form that turns a teacher's sixty seconds into a story graphic, a public page, a signup link, and a roster. Four jobs done once. Teachers will not post because they like us. They will post because it beats their current workflow, and every post is supply no scraper could ever reach. The full sequence, with what is explicitly not being done, lives on the Roadmap.
9Now there is a Bandsintown for dance

Picture her one more time: parked outside the studio, phone in hand, five minutes before the 8 o'clock. The information she needed always existed. It was just scattered across fifteen stories, three websites, and a flyer taped to a mirror. Now it lives in one catalog, 675 classes across 14 Los Angeles studios, every fact carrying a receipt, every schedule honest about when it was last checked, every tap landing on the studio's own booking page.
Merce Cunningham said, "You have to love dancing to stick to it," and the scene has loved it through every era of flyers and screenshots. That love deserved a home. Every dance class in the world, in one place. Starting with Los Angeles. Come dance.
