Picashot

Designed and maintained Picashot, a powerful photo engine for gamers and virtual photographers, reaching 2,000+ global users, optimizing for seamless experience and engagement, sharing over 200,000 photos, and partnering with Ubisoft-recognized groups for photography contests.

Role
Product Designer
Timeline
2023 - present
Users
2,000+ worldwide
Photos
200,000+ shared
Partners
Ubisoft-recognised groups
Platforms
WebiOSAndroid
What I owned
Designed Picashot and still maintain it: the photo engine gamers and virtual photographers share their shots through, tuned release by release for a seamless experience and engagement, and the contests run with Ubisoft-recognised photography groups.
View Live
Picashot

Overview

Picashot is a place to put the photos you take inside video games. Oluwafemi Obajuluwa conceived the idea in 2021, then we co-started it. He builds all of it: the mobile app, the website, the API, and Studio, which is the tool people use when they post seriously. I design it, across all of those surfaces. This is the long version: what we made, why it works the way it does, and a look at every screen.

Where it stands

Picashot has been running since 2021. These are the numbers it is carrying today.

  • 200,000+ photos. Every one kept as it was exported, tagged with its game and platform, and credited to the person who took it.

  • About 2,000 more a month. Posted by a community that has been around long enough that we recognise most of the names.

  • A few thousand games. Each with its own page. Cyberpunk 2077 alone has over twelve thousand photos.

  • 100+ achievements. Across bronze, silver, gold and platinum tiers, plus two daily games with leaderboards.

A home for in-game photography

The community feed, with this week's trending themes. picashot.co/feed

Most games ship with a photo mode now, and it's usually a free camera with aperture, focal length, exposure and lighting controls. People use them properly. They'll spend an hour on one frame in a game they finished two years ago.

The results end up on Twitter, Instagram or a subreddit, which compress the file, flatten the colour grade you spent that hour on, and lose track of both the game and the person who took it. Picashot keeps the file as you exported it, records the game and platform, and keeps the credit attached.

The design brief fell out of that. The photographs are the product, so the interface has to stay dark and quiet and get out of their way, while still carrying the game, the platform and the photographer on every shot.

The rest of this is what got designed and built around that, and how some of it works.

The feed

Posts appear in the order people upload them. No ranking, no recommendations, no For You tab.

This is the thing we get asked about most, and it's deliberate. Ranked feeds change what people make. This is a small community where the value is in people posting their actual work rather than whatever performs, so there's nothing to optimise against.

What replaces ranking is sorting. Every photo is tagged with its game, its platform and often a theme, so you can come at the same library from a few directions: what went up today, everything from one game, one person's work, or whatever people made for a given theme. Designing the feed was mostly designing those ways in.

The feed on the web. picashot.co
And on the phone. Themes across the top, then everything people posted, newest first.

Games

Every photo belongs to a game, and that does most of the organising.

Games get their own pages: cover art, every photo taken in them, the people who shoot them most, and a follow button so new work shows up in your feed. There are a few thousand of them. Cyberpunk 2077 has over twelve thousand photos on its own.

It also works as a way to decide what to play next. If you want to know whether a game is worth playing with the camera out, you can look at what people have already got out of it.

Browsing games. Cover art, photo counts, and a marker on the ones with a photo mode. picashot.co/games
The same library from Explore on the phone, and the games people shoot most.
Assassin's Creed Shadows ยท @unfazedvp

Photo mode reviews

You can review a game's photo mode separately from the game itself.

The review covers the camera: how far it moves, whether you can hide the interface, what the depth of field control actually does, whether the lighting settings change anything. It's a five-star rating with sub-scores for each of those, plus a written review. Reviewers attach their own photos as evidence, so you can see what they got out of the tools rather than taking their word for it.

As far as we know nobody else covers this. Game reviews don't mention photo mode, and for people who care about it, it's often the deciding factor.

Reviews as they come in, and a game page with its average. Cyberpunk is at 4.7 across fifteen reviews.

The editor

Most photos need something after the game hands them over.

A crop, more light, contrast pulled back on a scene that was graded for motion rather than for a still.

The app has an editor for that: exposure, contrast, blacks, whites, saturation, hue, grain, blur, filters, text, layers and masks. It runs on the phone, so nothing is uploaded to be processed.

There's a bigger one on the web with more room, proper masking, and a canvas that takes several images at once. People use it for before-and-after posts and for article covers. The two share one set of controls, so moving between them doesn't mean learning the tool twice.

The web editor. Adjustments on the left, layers and blend modes on the right. picashot.co/editor
Posting from the app, and the same editing job on the phone, which is where most of it happens.

Studio

Studio is a separate app for people who post regularly. The main site is for browsing; Studio is for producing.

The main thing it does is crossposting. Putting one photo on Instagram, X, Bluesky and TikTok normally means four exports, four crops, four captions and four uploads. In Studio it's one screen: pick the platforms, add the images, write the caption once and adjust it per platform if you want. Each service has its own limits on aspect ratio, caption length and image count, and Studio handles those. TikTok took the longest to build, because its photo posts publish asynchronously: you submit, then poll for the result.

The rest of Studio is albums, article drafts, per-day view counts, and connecting a custom domain. We designed the domain flow to walk people through the DNS records one at a time, since most of them have no reason to know what a CNAME is.

Crossposting. Four platforms, one composer. studio.picashot.co/share
Albums, view counts, articles, and custom domains.
Crossposting from the phone, and sharing a single photo out.

Articles

Captions are too short to explain how a photo was made.

People kept trying to fit the mods, the lighting setup and what they were going for into a couple of hundred characters, so we gave them a proper editor for it.

It handles covers, headings and inline images. What people write with it are guides, breakdowns, photo essays and reviews. Articles sit on your profile next to your photos, and a photo mode review can link out to one.

picashot.co/@elenyae/behind-the-scene
A published article, and the editor it came out of. picashot.co/write
Shadow of the Colossus ยท @Arisen_Gaming

Origin

Photos get reposted without credit.

Someone screenshots a post, puts it up somewhere with no attribution, it gets scraped onto a wallpaper site, and after a few hops nobody knows who took it.

Origin is a page where you upload any image and it tells you which Picashot post it came from. It has to work on a copy, so the image it's given is usually resized, re-encoded, slightly cropped and generally degraded.

It runs in two passes. Every image gets a perceptual hash when it's uploaded, which survives resizing and re-encoding, and the first pass finds the closest hashes to the one you gave it. That covers most cases and it's fast. If it comes back with nothing (a hard crop, a heavy filter, too many hops) it falls back to running the image through CLIP and searching the resulting vector against every embedding on the platform, using pgvector on an HNSW index.

The second pass is slower, and it's a similarity match rather than a fingerprint match, so the result tells you which of the two found it. On the design side that mattered: an honest "this looks like" reads very differently from "this is", and the page says which one you are getting.

Origin. Drop in an image and it looks for where it came from. picashot.co/origin

Achievements and daily games

The audience is people who play games, so parts of the app are designed like one.

There are over a hundred achievements across bronze, silver, gold and platinum tiers, unlocking on things like your first upload, your first review, or keeping a weekly streak going. They add up to points and a level on your profile. Weekly challenges give people a prompt to shoot against.

There are also two daily games built out of community photos. Pixel Hunt shows a heavily pixelated photo and you guess which game it's from. Jigsaw cuts one into 28 pieces and times you putting it back together. Both reset daily and both have leaderboards.

Pixel Hunt, its leaderboard, Jigsaw, and achievements arriving in notifications.

Every screen

Most of the app, in one place.

Welcome
Sign in
Home
Today's photos
A carousel post
Trending
Activity
Daily themes
Collections
Articles
Games
Top games
All themes
Inside a theme
A game page
A profile
Your profile
New post
Editor
Crossposting
Sharing a photo
Notifications
Account
A photo, opened
Swiping a carousel
A four-photo post
Another, opened
Comments
Story view
Pixel Hunt
Leaderboard
Jigsaw
Home, with this week's themes
A profile
The feed
A gallery
Inside a theme
And on the web.

How it's built

Picashot is several apps sharing one account and one library, which is most of the reason it took as long as it did.

  • Mobile app. iOS and Android, one Expo codebase

  • picashot.co. The main site

  • Studio. Creator tools, separate app

  • Portfolios. Rendered on creators' own domains

  • Origin. Reverse image search for credit

  • Blog. Editorial and release notes

  • API. One backend behind all of it

  • Workers. Thumbnails, hashes, embeddings

For design, that list is the job. One set of components and patterns has to hold across all of them, so a photo, a game tag or a credit looks and behaves the same whether you meet it in the app, on the site, in Studio or on somebody's portfolio.

The engineering is Oluwafemi's. It started as an Android app in Kotlin, because that's what he knew. A year later he rewrote it in Expo so it could run on iOS too. That meant one codebase for both platforms and over-the-air updates, so a fix can reach people the same day instead of waiting on a store review.

The website has been rewritten twice. Next.js, then Next.js again, and it now runs on TanStack Start. The site is mostly image loading and data fetching, and Start handles both without getting in the way.

The backend is a Node API split by feature with Postgres behind it. Images are the expensive part. An original goes to S3, a Lambda picks it up and generates five sizes with Sharp, and a webhook writes the URLs back when it's finished. Uploads don't wait for any of that. Perceptual hashes and CLIP embeddings are generated on the same path.

The stack
  • Expo, React Native. The app, updated over the air

  • TanStack Start. The website

  • Node, TypeScript. The API, split by feature

  • Postgres. Photos, games, people, points

  • pgvector. Image embeddings for Origin

  • S3, Lambda, Sharp. Originals in, five sizes out

  • SES. Login codes, digests, Wrapped

Where it is now

Around 200,000 photos, about 2,000 more a month, and a community that's been around long enough that we recognise most of the names. Some people have their own domains pointing at portfolios the app renders for them.

It's free, and it's at picashot.co. You don't need an account to look around. It's also on the App Store and Google Play, and Origin works for anyone.

The photographs on this page were taken by Picashot users and belong to them. They're pulled from the public community feed and credited the way the platform credits them. Screenshots are from the iOS app, picashot.co and Studio.

Fin