Case Study
The Irish dance companion. Save feiseanna, follow live results, track a dancer's career over a whole season, and see how your school is doing — built for iPhone, iPad, and Android.
The problem
Irish dance feiseanna run all year, all over the country, and the information lives everywhere except one place. Event dates hide in registration portals. Results get posted hours after dancing — as a PDF, a photo of a printout, or a Facebook comment thread. Parents keep their own spreadsheets to remember where their dancer placed last spring.
There’s no shared view of a season. No easy way to see a dancer’s progress over time, to compare schools, or to know which feiseanna are worth the drive. The data exists; it’s just trapped in a dozen formats and never stitched together.
Feisly pulls the season into one app: the events you care about, the results as they post, and a dancer’s whole history in one timeline.
Our approach
Feisly is built for the people who actually live the feis circuit — parents, dancers, teachers, and school owners. Each device is shaped around how that audience uses it, rather than one layout stretched to fit.
Also from the studio
The Irish dance companion. Save feiseanna, follow live results, track a dancer’s career over a whole season, and see how the school is doing — on your phone for feis day, on a tablet for planning.
Under the hood
On Apple devices the app is SwiftUI, with two intentionally separate iPhone and iPad view trees over shared models, networking, and storage; the Android build shares that same backend and data model. Anything a person saves — followed dancers, saved feiseanna, preferences — is local-first and stays private (iCloud key-value sync on Apple devices), so the personal layer never touches our servers.
Client
SwiftUI on Apple devices
Platforms
iPhone · iPad · Android
Backend
Cloudflare Workers + D1
Data
Public feis corpus, ingested nightly
Sync
Local-first, private sync
Privacy
PII-minimized by design
The public side runs on a Cloudflare Worker with a D1 database that acts as a corpus builder. Scheduled jobs ingest feiseanna, results, and dancer histories from public sources into one normalized store, so the app can show broad coverage without every device hammering a dozen sites. Ingestion follows a strict PII-minimization rule: we don’t store dates of birth, score sheets, or any data we don’t need to show a placement.
What's next
Feisly is in active development, heading toward a launch on iPhone, iPad, and Android. After that, the focus is deeper school analytics, richer family and rivalry context, and expanding feis coverage across more of the circuit.
It shares a backbone with the rest of what we build: a Cloudflare-backed ingestion pipeline, a privacy-first sync model, and platform-specific layouts that respect each device. If that kind of thing is useful for what you’re building, we’re open to talking.
We’re taking on a small number of new projects this year. Drop a note.