Project 25. Social media

A geofenced social app that recognised faces, on the App Store

A complete mini social network: events with a geofence, a React Native app whose photos land in the event's album only when the guest is there, and faces labelled automatically with Amazon Rekognition. Real-time GraphQL on AppSync, event-driven, on a start-up's budget.

What it changed

  • Published on the App Store: built end to end, from the back end to a polished mobile app.
  • Photos and events ingested at scale, in real time, through GraphQL on AWS AppSync and WebSockets.
  • Automatic face detection and labelling with Amazon Rekognition.

The situation

A founder wanted a social network built around events. Someone creates an event and draws a geofence around it. Guests who've been invited, and are actually inside the fence, take photos with the app, and the photos go straight into the event's shared album. No sharing links afterwards, no photos from people who weren't there.

It was a big project for a start-up's budget, and it had to feel as good as the social apps people already used.

What we built

The whole product, a complete mini social network:

  • A React Native mobile app with an event feed, events, invitations and albums. A lot of the work went into the front end, to make the app beautiful and fast.
  • Geofencing. The app knows when a guest is inside an event's fence, and only then sends their photos to its album.
  • Faces labelled automatically. Each photo went through Amazon Rekognition, which detected the faces in it and labelled them. That was before automatic face tagging became something social networks backed away from, and it worked.
  • A real-time back end on GraphQL with AWS AppSync, in its early days, with WebSocket subscriptions so albums and feeds updated live, and Amazon RDS for the data.
  • Event-driven processing so a burst of photos at a big event was ingested, stored and analysed without slowing the app down.

How it ended

The app went end to end and was published on the App Store. Everything had to fit the client's budget, which meant choosing managed services that cost nothing when idle and scale when an event fills up.

It was also where I adopted GraphQL early, and learned what it costs: a schema to maintain as a second product. I've since gone back to plain web APIs, for reasons I explain in GraphQL and AppSync.

Why it matters to you

Mobile, real-time, computer vision and scale, in one product, on a small budget. The same building blocks, now with far better AI models behind them, are what most consumer apps need today.

Got a project like these?

Tell us where the business needs to go. You'll talk to the engineer who will design and build it, not a salesperson, and get an honest answer on whether we're the right fit.

Contact Us

For general inquiries, please contact us at:

For e-learning capabilities, please contact: