Skip to content

Case study

Vecinly

A SaaS for managing homeowners' associations. In production, with paying customers and apps published on both stores.

What it is

The all-in-one platform for running homeowners' associations: maintenance issues, bookings, accounting, polls, suppliers, tasks and communication with residents. With a dedicated view for board presidents, property managers, suppliers and residents.

What we built

The whole product. The SaaS, the website and both apps. Plus everything behind them that makes it work: the logo and visual identity, the SEO work, the blog and the infrastructure it runs on.

Status

In production, with paying customers.

Visit the site

Architecture

Three clients, one API.

The web app, the iOS app and the Android app all talk to the same service. Business rules and permissions live in one place, so the web app and the mobile apps can't behave differently.

A business rule is written once and reaches the web app and both mobile apps.

Security

Decided at design time.

A product that stores meeting minutes, fees and residents' data can't treat security as a later phase. It's built into how the product works from the start. Doing it that way doesn't add cost.

  • Encryption in transit Everything that leaves the browser or the app travels encrypted, including the first visit and including when someone types the address by hand.
  • Encryption in the database Data is stored encrypted to current standards, with the keys kept separately. Anyone who got to the files couldn't read them.
  • Permissions checked at every hop From the call leaving the client to the query reaching the database, every hop checks who you are and what you're allowed to do. The check happens on the server: hiding a button isn't a permission.
  • Handles the spikes Heavy work goes into a queue with retries and backpressure, so nobody waits in front of the screen. If a flood comes in, the queue absorbs it.
  • Infrastructure that grows Each piece scales on its own, so growing doesn't mean rebuilding anything or paying for capacity that sits idle the rest of the year.
  • No cards on our side Payment details are captured directly by the payment provider. The product never sees or stores them, so it can't lose them.

What it does inside

Six modules for the whole association.

The association's maintenance issues, accounts, decisions and conversations all go through the product. On top of these six modules, it has documents in folders, tasks you can assign to the building manager or the cleaners, official notices and a tamper-proof history of everything that happens.

Maintenance issues

Kanban board

Each issue moves through statuses on a board: opened, assigned, closed. Whoever reported it can see where it stands without having to ask.

Accounts

Accounting

The association's transactions, with their line items and balance. The books stop living in a spreadsheet only its author understands.

Payments

Invoicing

Issuing and tracking the association's invoices, linked to the accounting and to recurring billing.

Communication

Internal chat

Residents, the board president, the property manager and suppliers talk inside the product, with automatic translation across all eleven languages. Conversations are kept.

Decisions

Polls and meetings

One-click polls to take the association's pulse, plus calling meetings and following up on them.

Shared spaces

Bookings

The court, the lounge or the meeting room get booked from the app, with the calendar visible to everyone.

The app

What residents carry in their pocket.

The same rules and the same data as the web app, in an interface designed for the phone.

Vecinly app overview screen
Overview
Shared-space booking screen
Bookings
Tasks by status screen
Tasks
Fees and accounting screen
Accounting
Internal chat screen
Chat

Reach

Eleven languages, two stores.

Internationalization

11 languages

A sitemap per language, including Spain's four co-official languages. Each version is declared to search engines as its own language.

Mobile

iOS and Android

Published on both stores from a single codebase, on the same API that serves the web app.

Business

Subscription

Recurring billing with the payment provider built into the product, plus the reconciliation webhooks that prevent duplicate or missed charges.

Continuous improvement

Every cycle leaves the product better.

One side of the cycle builds and ships; the other checks what's really happening with the product out in the world and collects what needs improving. The whole path is automated, so shipping is routine and the next improvement comes in the same way as the last.

Shall we talk about yours?

Half an hour, no commitment. You come away knowing what can be built and what it costs.

Tell us about your project