// Software & Web · Feb–Mar 2026
Friendly
Works out when a group of friends is actually free, then gets them to the same place — availability matching, group chat and live location in one app.
The Problem
Organising anything with a group dies in the group chat. Everyone's availability lives in their own head, the thread scrolls past whatever was agreed, and it takes twenty messages before someone gives up. There are really two problems stacked on each other: finding overlapping free time across a group, and then getting everyone to converge on one place — and neither is something a chat thread is any good at.
The Approach
Four of us built it over about a month, working together on one machine, which shaped the architecture as much as any technical decision did. The system was split into four areas — auth and infrastructure, groups and chat, availability and the recommendation engine, map and UI — with a shared types file nobody overwrites and a written onboarding guide so whoever sat down next could pick up where the last person stopped. Firebase Firestore does the real-time work: anonymous auth so there's no signup friction, and onSnapshot listeners so chat, member locations and proposed sessions stay in sync across every client with no backend to run. The recommendation engine takes each member's weekly availability blocks and returns slots ranked by how many people are free, so the app proposes times rather than asking the group to negotiate them.
The Outcome
A working prototype covering the whole loop: anonymous sign-in, creating and joining groups by invite code, realtime group and direct chat, a friends system, weekly availability blocks, ranked meetup suggestions, and live location sharing on a map via the browser's geolocation API. Around 2,900 lines across 19 components and modules. The harder problem turned out to be organisational rather than technical — four people building one codebase on one laptop only works if the division of labour and the shared interfaces are agreed before anyone starts typing.