-
-
Chapadão app icon
-
Tomorrow at Amor: it's on — the verdict, painted for the hour
-
Vilarejo Grego: a Pipa place card you can stamp
-
Surf, read like a local
-
Tonight in Pipa: live cards for every night out
-
Know why it's on: swell and wind at a glance
-
Stand there, get the stamp: the Pipa passport
-
Fredinho's Pipa: where a local eats
-
Pipa on your home screen
Inspiration
I bought a surfboard drunk one night in Pipa. The next morning I wanted an app that answered one question: should I paddle out right now, and where? Not a wall of numbers. A verdict. I found out about the Shipaton about a week later.
The conditions come from paid meteorological data — I bought the commercial subscription, because if the app is going to tell you to paddle out, it had better be right. But the part I care about is what happens after. The app gives you a score; you come back in and say whether you actually got in the water, and rate the session one to five stars. After five sessions at a beach, it recalibrates to you. If you're new and everything feels like five stars, it learns that. If you're good and a five felt like a four, it learns that too. Same ocean, different verdict per surfer, per beach.
Then life got heavy. For a big part of those two months the app barely moved, because I was dealing with things I had been avoiding for a long time. The contest kept running. I didn't.
In the last two or three weeks I came out of it, and everything I built into this app came from those weeks. Somewhere in there it stopped being a surf app and became Fredinho's Pipa: the places I actually go, the ones I'd stood in front of, eaten at, checked. Every card in the app is a photo I took myself and then animated by hand, because a photo couldn't hold what a place feels like. I drew the club from inside the club. I photographed the menus. I checked the sunset with a timer on the beach. I sat on the steps to fix a distance that lied to me. Google Maps is still there if you want it, but this is the town as I know it.
There's a passport you stamp by showing up, eight levels of it: you start as perdido, completely lost, and work your way to pitense, a local. There's one level after that, but you have to come here and finish it to find out. And running alongside it there's the Enigma, a sticker hunt — you scan one, you get a riddle, it sends you to the next place. That one's for people who want the rabbit hole. I've lived here five months and I'm halfway through my own passport. The app can't be finished in a weekend, because the town can't be.
So Chapadão isn't a hackathon app. It's a town I live in, verified by walking it, built by someone getting his head back. The Shipaton and the comeback ran on the same clock.
I still haven't surfed much. That's the next thing, once this is submitted.
What it does
- Scores Praia do Amor, Praia do Centro and Praia do Madeiro on live swell, wind and tide, and answers in big letters. "FICA NA CAMA, 17/100" means stay in bed.
- Takes the median of three wave models, with per-spot tide rules checked with local surf teachers.
- Lets you log your sessions and calibrates each break to what you felt in the water, with an accuracy report that tells you how many points off it was.
- Plano B for flat days: dolphins, tide pools, dunes, food and nights out. Every place was checked in person.
- Pipa Passport: stamps for places you actually visit (GPS plus a dwell check), and a riddle hunt around town.
- Hand-painted skies with real sun and moon positions for each break, plus a home-screen widget.
- English, Portuguese and Spanish. No account and no tracking.
How it makes money
Forecasts, verdicts, logging, the accuracy report, the passport and the first calibration tune are free forever. Every new user gets 48 hours of full Pro from first launch. Chapadão Pro is a one-time lifetime purchase through RevenueCat. It unlocks further calibration tunes and the full "Pipa as a local" lists (free users see the top three). An applied tune never reverts.
The field test
I took the app to Praia do Amor on a big spring tide morning (high 4:31 AM at 2.35m, low 10:45 AM at 0.09m — draining fast through the whole session) specifically to stress-test whether it modeled a fast-draining tide correctly, not just a lazy one. That session is where the calibration idea was born: my honest verdict was "I wouldn't pay for this yet — accuracy is the gate." So the paywall was built to charge for proven personal accuracy, never for access.
How I built it
SwiftUI, Open-Meteo on a paid plan, a small Cloudflare Worker for venue data, and RevenueCat's purchases-ios SDK. 488 commits since the 8 Aug launch, built solo around two day jobs, alongside Kasure and Bichinho, my other two Shipaton entries. The test suite is the beach: I walk Pipa with the phone and fix what's wrong on the spot.
Challenges
- The paywall that couldn't charge anyone. RevenueCat was in the Xcode project, but the import evaluated false. Later the IAPs were missing from the review submission, so production threw a configuration error. Both fixed.
- A surf teacher told me the app was wrong. The fix was the median of three wave models.
- The app rated Madeiro 64 at high tide. A local teacher said it's a low-tide beach, so there's now a per-spot tide rule that tuning can't override.
- Map data put the tide pools 1 km inland. Now Google and Apple must agree, and walking is the ground truth.
What I learned
An eyewitness beats a directory. A verdict is harder to build than a chart, but it's the part people use. And sharing every bug publicly got me better fixes than I'd have found alone.
What's next
- Any surf town. Nothing in the verdict or the calibration is Pipa-only. Add a town's breaks, the tide rules from its local surf teachers and the places someone actually walked, and the same engine works there. Pipa is the template.
- Android is built and will be released in the near future.
- QR codes at guesthouses and surf schools, so visitors get Chapadão the day they arrive.
- The goal stays the same: help people who have no idea about the country or the place have a great time, like I needed when I got here.
Built With
- cloudflare
- core-location
- icloud
- mapkit
- open-meteo
- revenuecat
- revenuecatui
- storekit
- swift
- swiftui
- widgetkit
Log in or sign up for Devpost to join the conversation.