← All projects

Client project

Viuz

A social app for honest reviews of local cafés, restaurants and shops. People post photo and video reviews with a star rating, follow each other, and find places on a map. Businesses get their own profile to post updates and see what people say about each of their branches.

Role
App and backend
Built
Dec 2024 – Mar 2025
Platforms
iOS and Android
Status
Cancelled before launch
Three Viuz screens: the business map, the review feed and a café's profile

The idea

Review sites are mostly walls of text and star ratings that are hard to trust. Viuz turned reviews into a social feed: every review is a post with real photos or video from the visit, tied to a specific branch, from a person you can follow. Businesses were part of it too. They could post their own news, list all their branches, and see the reviews of each one in one place.

Reviews you can see

Every review is a post with photos or video, a star rating and the exact branch it's about, so people can see what they'd get before they go. Posts scroll like a social feed, and you can swipe through a post's photos, like it, save it or open its comments.

The main feed, showing a photo review of a café with a 4.5-star rating
The comments sheet on a review

Three feeds

The global feed shows everything posted on Viuz. The timeline shows only people and businesses you follow. The businesses feed shows posts from businesses, ranked by how close they are to you.

The timeline feed, with reviews from followed people
The businesses feed, with posts from nearby businesses

A map of places

The map shows every business branch around you, each with its logo. Tap one to open the business's profile. Map data comes from OpenStreetMap, and the app only loads the branches inside the part of the map you're looking at.

A map of London with business logos pinned on their branches

Posting a review

To post, you add photos or videos, write about your visit, choose the business and the branch, and give it a star rating. Media uploads straight from the phone and shows up in the feeds of everyone who follows you.

The Add Post screen with media, business, branch and star rating

Profiles and search

Everyone has a profile with their bio, follower counts and posts. A business profile has two tabs: the posts the business wrote, and the reviews people wrote about it. You can search people and businesses separately.

A café's profile with Posts and Reviews tabs
Search, with separate tabs for users and businesses

One app, two modes

One account can be both a reviewer and a business owner. After signing in you pick a mode. In user mode you share your location once, then review places, follow people and browse the feeds. In business mode you act as one of your businesses: you post as the business, edit its profile and industry, and manage its branches, each with its own address and pin on the map. You can switch modes at any time from your profile.

The screen for picking user mode or business mode
A user's own profile with their reviews

How it was built

I built the Flutter app and the Firebase side. The app is split by feature, and each feature has its own data, domain and presentation layers.

  • Flutter

    One codebase for iOS and Android.

  • Riverpod

    App state, data loading and caching.

  • go_router

    Typed routes, with a bottom tab bar that keeps each tab's history.

  • Firebase Auth

    Sign-in with Google or email, with a Cloud Function that creates the user's record on sign-up.

  • Firebase Data Connect

    A PostgreSQL database behind GraphQL for users, businesses, branches, posts and reviews, with type-safe Dart clients generated from the queries.

  • Stream activity feeds

    Feeds, follows, likes and comments, including the location-ranked businesses feed.

  • Firebase Storage

    Photo and video uploads.

  • Crashlytics and Analytics

    Crash reports and usage data.

  • flutter_map

    The business map, on OpenStreetMap tiles.

Where it ended

The client cancelled the project before launch, before the backend was finished. The app itself was working, with all of the features above, but it never reached the App Store or Google Play.

The screenshots on this page are from the real app, running on demo data. The people, places and photos are made up.