I built Perspecto because I needed it. Then other people did too.

A browser tool that turns any image or design into a 3D mockup in seconds, with no sign-up and no plugin. I designed it, built it with Claude, and kept shaping it around feedback from people who weren't me.

Role
Designer and builder
Built with
Claude, React and Vercel
Pricing
Free, with a $19 one-time Pro upgrade
Status
Live at perspecto.io
Perspecto editor with a mobile app screen split into floating 3D layers on a gradient background

The problem

I needed this for my own work.

As a designer I constantly present flat screens: app screens, dashboards, landing pages. They look better with depth, and the usual ways to get it were all too slow for something I needed every week:

  • Open Figma, find a 3D mockup plugin, configure it, then export
  • Pay for a mockup service whose templates never quite fit
  • Skip the polish and ship a flat screenshot anyway

I wanted to drop an image in and get a result in under a minute, without breaking my flow. That gap became the whole premise.

Perspecto editor with a dashboard tilted in 3D

Audience

Broader than one designer's case studies.

Once people started using it, the audience turned out to be much wider than me:

UI and UX designersIndie hackers and foundersSaaS landing pagesMobile and App Store listingsBuilding in public on X and LinkedIn

First-time visitors can try three demo types before uploading anything, Dashboard, Mobile app and Website, so they test the tool against something close to their own use.

Perspecto start screen with an image drop zone and three demos: Dashboard, Mobile App and Website

Design decisions

The sidebar follows how people think, not how settings are grouped.

It is ordered the way someone moves through the task, not the way the underlying settings would naturally cluster:

  1. 1StyleA device frame and a template: a result in one click
  2. 2My presetsA returning user's exact setup, back in one click
  3. 3AngleManual fine-tuning, once the angle matters
  4. 4EffectsShadow, depth and curves, once the angle is right
  5. 5ExportDecided last, because it depends on where the image is going

A first-time visitor never scrolls past anything harder than picking a preset. The depth is there when they need it.

Perspecto Style tab with device frames and templates first
Frames and templates first, manual controls later
Perspecto canvas with a website screenshot tilted in 3D
The canvas is the product, not the toolbar

Pricing

Free is genuine, not a teaser.

Free users get every angle, template and effect, with 3 exports a day at standard resolution and a small watermark: enough to properly evaluate the tool. The $19 one-time Pro upgrade follows one rule: anything that saves repeated time is Pro. The core single-image experience stays free.

Two things I avoided on purpose. No subscription, because a one-time payment fits how occasionally most people need this. And no AI or credit-metered Pro features, so nothing in the paid tier carries an ongoing cost that could force a price change later.

Perspecto free tier: 1x PNG export with a watermark, 3 exports a day
Free: the watermark is the natural reason to upgrade
Perspecto Pro: up to 4x export in PNG, GIF, video, SVG, HTML and ZIP, no watermark, unlimited exports
Pro: up to 4×, every format, no watermark

Positioning

One wording change, a much wider audience.

Perspecto was first positioned around "screenshots", from the tagline to the drop zone and the page title. Someone thinking of a phone screenshot wouldn't connect that to a Figma export or a product photo.

Turn your screenshots into 3D mockups

Turn any image or design into a 3D mockup in seconds.

I rewrote the tagline, drop zone, meta tags, structured data and FAQ, and kept "screenshot" only where it was literally accurate, like App Store screenshot guidance.

User feedback

The two features I'm proudest of weren't my idea.

The curved screen effect

Someone trying the tool asked about curved monitor mockups. A true curve would have meant rebuilding the renderer in WebGL, but the same person suggested a cheaper approximation. That became the first version: a CSS-only curve that combined horizontal compression, an edge-darkening gradient and a soft centre highlight. It shipped in under a day because the scope stayed small.

It held up straight on, but not once you turned the mockup. After comparing Perspecto with the mockup tools people already pay for, I rebuilt it as real geometry: the screenshot now wraps onto a slice of a cylinder, so the edges bow correctly from any angle, in the editor and in every export.

A website screenshot in Perspecto, flat and straight on
Before: flat
The same website wrapped onto a curved screen in Perspecto, with the edges bowing
After: the rebuilt curve, real 3D geometry

The reset toggle

The same person came back wanting to compare curved and flat versions. My first pass switched the effect off entirely, which wasn't what they meant: they wanted to compare intensity. I rebuilt it as a toggle that snaps the intensity to a default and remembers the previous value, so a second click restores exactly where they were.

The first version came fast. The product came from everything after it.

Small interactions like that toggle are only right when you go back to the actual feedback instead of assuming you understood it the first time.

Building with AI

What building with AI actually looked like.

I described what I wanted to Claude in plain language and iterated from there. The 3D effect itself, with perspective, rotation and layered depth, came together in the first session. The time went into unglamorous debugging:

  • A background colour picker that looked right but did nothing, traced to a type conversion that turned the hex value into NaN before it reached the renderer
  • A ghost border behind a button, traced to a duplicate hidden element layered behind the real one
  • Getting GitHub and Vercel to deploy on every push instead of needing a manual promotion each time

My role was the one I play on any product: define the problem, make the UX and visual calls, test critically and push back when something isn't right. The conversation replaced the code, not the judgment.

Outcomes

What shipped.

A live product

perspecto.io, with a working freemium payment flow, analytics and landing pages for distinct audiences.

Built from feedback

Two features shipped from real user feedback, within days of hearing it.

Sharper positioning

A full audit of how the product describes itself, removing a limit I had set myself.

A Pro tier that earns its price

Paid features that save real time, not padding added to justify a price.

What I would do differently

  • Build an examples gallery earlier. Real before and after examples would convert better than asking people to try a demo first.
  • Add undo, redo and the multi-demo picker earlier, instead of after the core features.
  • Test the wording from day one, instead of noticing late that "screenshot" was too narrow.

Launch content

I designed the launch content too.

Nobody hands a solo founder a marketing team. Ads, social content and positioning were design work as much as the product screens, so they got the same bar: restraint, a point of view and nothing that looks like a template.

Perspecto ad: New look, better perspective, with the editor on a desktop monitor
New look, better perspective
Perspecto ad: Stop sharing flat screens, with a laptop mockup and glass edge glow
Stop sharing flat screens
Perspecto ad: Display, design, dominate, with a purple-lit laptop mockup
Display, design, dominate
Perspecto ad: Upgrade your presentation, with the tool on tablets
Upgrade your presentation

For social, I designed sequences instead of one-off images. The carousel walks through the problem, the workflow and the close in order, the same way I would structure a landing page.

Reflection

This project changed how I think about design and building.

Every meaningful decision in Perspecto was a design decision: what the free tier includes, how the sidebar is ordered, which feedback to act on, what Pro has to offer to justify its price and how the product describes itself. I made those calls and directed them into a working product.

It's a different skill from writing code, and a real way for a designer to ship a complete product without waiting on a development team.

NextPublizo: writing people are willing to put their name on