Case study
Members, donations, an online store, international pilgrimages and content, in a single web platform with a mobile app, payments from Portugal and Brazil and automatic invoicing.
- Client
- Apostolado de Garabandal
- Role
- Product, design and engineering
- Platforms
- Web, iOS, Android
- Period
- 2026 to present

pages
admin screens
languages
scheduled background jobs
Context
Each of these had its own tools and its own manual work.
Problem
With members on both sides of the Atlantic, the platform had to accept each country’s payment methods without making anyone’s life harder.
The clearest way to show the system is to follow a payment. Everything after the click is automatic.
- 01
Checkout
The member picks PIX, MB WAY, Multibanco or card.
One checkout for everything
- 02
Payment
The payment is processed in the chosen method.
Several providers, one interface
- 03
Confirmation
Confirmation arrives asynchronously and updates the status.
Idempotent processing
- 04
Reconciliation
A scheduled process checks anything left pending and settles it.
Nothing depends on a single event
- 05
Invoice
The tax document is issued with no manual step.
Certified invoicing
- 06
Email
The member receives the receipt and confirmation in their language.
Five languages
- 07
Marketing
The contact’s profile is updated and communication adjusts.
Automatic segmentation
What I built
PIX, MB WAY, Multibanco and card, with fallback options. Membership fees, donations, orders and pilgrimage instalments all go through the same engine.

Every payment produces the right tax document with no manual step, with separate control per revenue type.

Catalogue of physical and digital products, cart, checkout, order and shipping management, and a product feed for Google.

Sign-ups, instalment payments, automatic reminders and QR check-in, with a logistics area to manage accommodation, suppliers and costs for each trip.

A custom engine merges every source into a single contact, computes segments and sends email sequences based on each person’s journey, with dozens of templates in several languages.

A CMS with a visual editor, media library, navigation and categories. Pages publish in Portuguese, English, Spanish, French and Italian, with machine translation to review.

Dozens of admin screens for a small team: members, orders, transactions, invoicing, marketing, content and reports, with alerts where something needs attention.

An assistant that answers questions about pilgrimages from curated knowledge and live data, and guides each person to the next step.

iOS and Android app with prayer, novenas, library, calendar, pilgrimages and push notifications. It shares the backend with the website: one member, one account, the same data.



Technical decisions
- 01
One core, many channels
Website, app and admin share the same backend and a single source of truth. The app reads and the website writes: there is one place where money comes in and where business rules live.
- 02
The AI proposes, the interface decides
The assistant is orchestrated in layers: curated knowledge, live pilgrimage context and conversation rules. Instead of inventing actions, it returns structured intents that the interface turns into real buttons.
- 03
Evaluated on real usage
Every conversation is logged and reviewed. The assistant’s knowledge and instructions evolve from real cases, not assumptions.
- 04
Automation that can run twice
Payments, invoices and emails are idempotent, observable processes: they can run twice without duplicating anything, and everything is logged so you can see what happened.
- 05
Automation with limits
Automated communication follows rules of respect: capped frequency, priorities between sequences and automatic exit once the person has done what the sequence was for.
- 06
Designed for the people who run it
The dashboard was built for a small team: everything in one place, few clicks per task and alerts only where something needs attention.
Results
contacts in a single CRM
members
transactions invoiced in a single month
pilgrims signed up for a single trip
Stack
- Web
- Next.js
- React
- TypeScript
- Tailwind CSS
- Mobile
- Expo
- React Native
- Data
- Supabase
- Postgres
- Scheduled jobs
- Services
- Payments for PT and BR
- Certified invoicing
- Resend
- DeepL
- OpenAI
- PostHog