← Kishor A · Case Studies
CASE STUDY

Perflo's landing page hid the product behind four tabs. I let the scroll do the showing.

Perflo's landing page hid the product behind four tabs. I let the scroll do the showing.

Perflo · Landing page redesign · Solo design + build · Aug 2026

perflo.ai already had a voice: warm paper, pixel-art card mascots, a serif that leans in when a word matters. What it did not have was pacing. The product sat behind four tabs, the story of a payment played inside a diagram, and the page asked you to click to see what it should have shown you. I kept the world and rebuilt the way you move through it.

4 → 0Product tabs. The four surfaces now stack as you scroll
15Scenes generated for the page, one world, one mascot
1Marquee on the whole page. Every other motion is scroll-driven
Part 01

The live page

Captured from perflo.ai on 8 September 2026, at 1440 and 390 wide.

Audit 01

What the page says today

Perflo pitches two audiences. The live page now leads with builders: the headline is "Give your users' agents secure money access", the primary action is a sales call, and a whole section is given to CLI, MCP and REST snippets. My redesign leads with the account holder, the person whose money the agent spends. That is a positioning choice the company made after this work started, so the comparison below is about structure, pacing and craft, not about which pitch is right.

What both pages share is the world. The live hero is a pixel-art workshop where a builder assembles card-shaped mascots. The footer signs off with "Guarded banking with AI agents" and a repeating pixel skyline. I did not replace any of that. I promoted the footer line to the headline and drew the rest of the page in the same hand.

The live hero at 1440. Headline and a compliance card in the left third, the workshop scene behind, and the four product tabs pinned to the bottom edge, straddling into the next section.Original
The live hero at 1440. Headline and a compliance card in the left third, the workshop scene behind, and the four product tabs pinned to the bottom edge, straddling into the next section.
The redesigned hero. A mounted print of the valley scene, regenerated wider so the headline owns real negative space, and a live prompt box that types the asks an agent can carry out.Redesign
The redesigned hero. A mounted print of the valley scene, regenerated wider so the headline owns real negative space, and a live prompt box that types the asks an agent can carry out.
Audit 02

The product is behind four tabs

Bank, Card, Pay per use, Plugins. One panel visible at a time, three hidden, and each panel is a dense two-column configurator: a rails list beside a payout form, a card beside its limit table, a price grid beside its caps. It is the app's settings screens wearing a marketing headline. A first-time reader has to click four times to find out what the account is, and nothing tells them the fourth tab exists.

Original
**Bank.** Nine rails and a "Set up agent payouts" form with per-payment, per-window and re-approval fields.Original
Bank. Nine rails and a "Set up agent payouts" form with per-payment, per-window and re-approval fields.
**Card.** Two card renders and a "One limit, every card on it" ceiling table.Original
Card. Two card renders and a "One limit, every card on it" ceiling table.
**Pay per use.** A price grid from the marketplace and a "One policy, set once" cap panel.Original
Pay per use. A price grid from the marketplace and a "One policy, set once" cap panel.
**Plugins.** Yield with Morpho, its APY and rules.Original
Plugins. Yield with Morpho, its APY and rules.
Redesign
**One account, four surfaces.** The same four things, dealt as cards that pin and stack. "Keep scrolling; the stack is the tour."Redesign
One account, four surfaces. The same four things, dealt as cards that pin and stack. "Keep scrolling; the stack is the tour."
The card panel arrives on top of the bank panel. Nothing to click, nothing hidden.Redesign
The card panel arrives on top of the bank panel. Nothing to click, nothing hidden.
Audit 03

The payment story is a diagram

"Guardrails in one view" is the live page's explanation of what makes Perflo different: agent request, rule check, policy engine, human approval, settled. It is a flow chart with a Replay button and a policies card. Correct, and inert. The conversation with the agent, which used to be the page's demo, is gone from the page entirely; Claude survives only in the testimonials.

The live guardrails section: five circles, four arrows, a Replay link, and a policies card with the caps.Original
The live guardrails section: five circles, four arrows, a Replay link, and a policies card with the caps.
The redesign draws the same path as a place. A $1,200 payment walks to Alice's house through a checkpoint, and five illustrated stations light up in order as you scroll.Redesign
The redesign draws the same path as a place. A $1,200 payment walks to Alice's house through a checkpoint, and five illustrated stations light up in order as you scroll.
Audit 04

What the redesign dropped

The integration panel. CLI, MCP and REST snippets belong in docs, and a page for account holders should not open a code editor halfway down. "Build on Perflo" survives as the secondary action in the hero, one click from the docs. This is the one place the two pages want different things, and I am stating it rather than pretending the redesign covers everything the live page does.

Original
"How you integrate, whichever way you build": a tabbed code panel with a sign-in walkthrough beside it.Original
"How you integrate, whichever way you build": a tabbed code panel with a sign-in walkthrough beside it.
Part 02

Direction

The rules were set before any section was built. Most of them came from the product, not from me.

The brief

Scroll replaces tabs

Original

Four product tabs, a replayable diagram, a testimonial carousel with dots, and a marquee of rails. Every section asks for a click to show its second state.

Redesign

One scroll. The demo plays as a pinned scene, the four surfaces pin and stack, the automations fly in from depth, the stations light in sequence. One marquee on the whole page, for the connector logos, because a marquee is the honest shape for "1,000+".

  • Terracotta acts, teal protects. The product's colour rule, kept exactly. Every button that moves money is terracotta; every surface about limits, keys and refusals is teal. The trust section is the only one washed in teal.
  • Same four families. Hanken Grotesk for everything, Instrument Serif italic for the leaning word in a headline, IBM Plex Mono for eyebrows and prices, Doto only for the big counts. The landing adds a larger type scale on top of the product tokens and nothing else; that deviation is written into the design language as the one place the product's 34px ceiling does not apply.
  • Paper, while the product ships dark. The marketing surface is light with a film grain over it, so the page has a physical surface even before an illustration lands on it.
  • One curve. Every reveal on the page uses the same easing, a small rise, and a blur that clears. Anything needing more choreography owns its own motion and still reads as the same hand.
  • Nothing invented. Rails, currencies, caps, partners, testimonials and the pixel skyline are all the live page's own material, re-paced.
Part 03

Section by section

Nine sections, in page order. Live page on top, redesign underneath, both at 1440.

Section 01

Hero

The live hero splits into thirds: copy, scene, and a compliance card competing with the headline. The tab strip is pinned to the hero's bottom edge and belongs to neither section. The redesign gives the headline the full left half, lets the scene breathe as a mounted print with a soft parallax, and replaces the compliance card with the product itself: a prompt box that types "Send $200 home on the 1st, every month" and "Give my agent a ₹4,000 a day card" while you read.

Original
Live, at 390. The headline, a paragraph and a call button above the fold, the workshop scene cropped to a band.Original
Live, at 390. The headline, a paragraph and a call button above the fold, the workshop scene cropped to a band.
Redesign
Redesign, at 390. Headline, the leaning serif, both actions, and the print with the mascots still in frame.Redesign
Redesign, at 390. Headline, the leaning serif, both actions, and the print with the mascots still in frame.
Section 02

The conversation, as one pinned scene

This section has no counterpart on the live page today. The redesign puts the agent's work second, right after the promise: a Claude thread rises from the bottom over six beats while the headline stays put. Request, a permissions check, a verdict inside the limits, a payment call, "Sent to Priya. Confirmed, in her account in 4 seconds", and a standing order toggled on. The caption beside it changes with the beat: "Checking who is saved before anything moves", "Every cap is checked before it signs", "You hold the off switch."

Beat one. The request and the permissions lookup, before anything moves.Redesign
Beat one. The request and the permissions lookup, before anything moves.
Mid-scene. The verdict, the payment call, and the Done receipt entering.Redesign
Mid-scene. The verdict, the payment call, and the Done receipt entering.
Redesign
The scene at scroll speed. 420vh of page, one thread, no clicks.
Section 03

Four tabs become a stack

The direct comparison. On the live page each product surface is a tab; in the redesign each is a card that pins under the last one, in 3D, as you scroll. Bank keeps its rails and a guardrail meter you can drag ("This is the whole interface"), Card gets a pointer-tilt render with its own number, Pay per use gets its price grid, Plugins its yield, trading and predictions. Four small scenes were drawn for the panels so each card carries its own picture instead of a stock icon.

Original
Original
Live: clicking through Card, Pay per use, Plugins and back to Bank. The panel swaps in place; the page does not move.
Redesign
Redesign
Redesign: scrolling through the same four surfaces. Each card deals on top of the last.
Pay per use, mid-stack. The price grid and the panel scene above it.Redesign
Pay per use, mid-stack. The price grid and the panel scene above it.
Plugins on top of the pile.Redesign
Plugins on top of the pile.
Section 04

The path every payment takes

Teal, because this is the protection section. The live page's flow chart becomes a wide illustrated checkpoint scene rendered with a multiply blend so it sits into the paper, then a five-station ledger strip that lights as you scroll: agent asks, request received, guardrails check, you approve if needed, money moves. Under it, three cards the live page spread across the page: what holds underneath (agents never hold a key, your key is sharded, nothing spends twice), a live activity log with a "Held for you" and a "Refused" row, and the regulated rails.

Live. The chart, the policies card, the compliance strip.Original
Live. The chart, the policies card, the compliance strip.
Redesign. Scene, stations, then the three cards.Redesign
Redesign. Scene, stations, then the three cards.
Section 05

You stay in control

A section the live page implies but never states: what happens when something goes wrong. Two columns, "With Perflo" in teal and "Without" in grey, seven lines each, ending on "Worst case: a blocked payment" against "Worst case: money gone". The mascot holding a coin is rotated on the good card like a wax seal.

The two futures, and the sticker.Redesign
The two futures, and the sticker.
Section 06

Reach

The live page has a numbers row and, elsewhere, a small rails marquee. The redesign puts the counts in Doto, the product's balance face, counting up as they enter, and gives the page its single marquee: two counter-scrolling rows of the connector logos, because "1,000+ connections via Composio" is the one claim that wants to feel endless.

Live. Four figures in a row between the tabs and the guardrails.Original
Live. Four figures in a row between the tabs and the guardrails.
Redesign. The counts, the headline, and the marquee.Redesign
Redesign. The counts, the headline, and the marquee.
Section 07

Flows that run on their own rails

Ten automations, four live and six in build. In the redesign they fly out of depth as a constellation around the headline, scatter, then idle with a slight parallax under the pointer. The mascot scene in the middle shows five of them doing their little jobs along a path. The live page has no equivalent section; automations live in the product.

Mid-scene. Payment Collector, FX Manager and Idle Cash Sweeper marked live, the rest in build.Redesign
Mid-scene. Payment Collector, FX Manager and Idle Cash Sweeper marked live, the rest in build.
Redesign
The scene at scroll speed.
Section 08

Community and partners

The live page shows one testimonial at a time in a dark carousel with dots, beside a logo grid. The redesign lays them all out at once: a featured teal pull-quote from the Plaid team, five tilted cards with monogram seals, and a "Settles with" plate for the rails. No dots, nothing to advance.

Live. One quote visible, six dots, a logo grid.Original
Live. One quote visible, six dots, a logo grid.
Redesign. Every voice on the table.Redesign
Redesign. Every voice on the table.
Section 09

Footer

Kept almost whole. The live footer already had the best line on the page and the pixel skyline. The redesign restates the line, replaces the couple-on-a-path photo scene with the mascot waving from the end of a cobblestone path, and keeps the band.

Live. "Guarded banking with AI agents", link columns, a scene, the band.Original
Live. "Guarded banking with AI agents", link columns, a scene, the band.
Redesign. Same line, same band, the mascot waving goodbye.Redesign
Redesign. Same line, same band, the mascot waving goodbye.
Part 04

The illustrations

Fifteen scenes, generated with Higgsfield using Nano Banana Pro, in the live page's own language: card-shaped robot mascots, a warm autumn valley, pixel edges. Each one was drawn for a specific slot, at the aspect ratio of that slot, then re-encoded to webp for the page.

Scenes

One world

The five large scenes and the band. Each has a job on the page, and one was cut.

Stations

Eight small scenes

Five for the payment path, one per station, and three for the surface panels. All square or near-square, drawn to read at 96px.

The rule it breaks

Recorded, not hidden

The product's design language says: flat warm grounds, no photography, no illustration, no repeating pattern or texture. The landing page breaks that on purpose. Illustration is the single largest aesthetic departure on this page, and it is written into the design language's deviations table with the reason: a landing page has to shout once, the app never does. Same four families, same curves, same colour tokens. Only the canvas is larger.

Part 05

Motion

Every animation on the page has a reduced-motion branch that is a real alternative, not a suppression.

Rules

One curve, three pinned scenes

  • The chat story, the surfaces stack and the automations constellation are pinned 420vh scenes driven by scroll position. Below 768px they collapse to plain flow, explicitly, instead of trying to pin on a phone.
  • Reveals share one curve and one distance: a 24px rise and a blur that clears in 0.8s. Headlines print line by line out of a clipping mask.
  • The hero leans toward the pointer and zooms with the scroll. The card tilts under the pointer. The stations light in sequence. None of it travels far.
  • The counts are the only numbers that animate, and they animate once.
Redesign
The chat story.
Redesign
The surfaces stack.
Part 06

Process

Built as the marketing front of the same Next.js app that carries the product redesign, on the same tokens.

The build

Same repo, same lint

The landing is a route in the Perflo app, mounted at the site root, with the product moved under its own path. It shares the design tokens, the four font families and the motion primitives with the app, and adds one CSS layer of its own for the larger type scale and the paper materials. The token lint that guards the app guards the landing too: no raw hex, no raw px, no fifth font.

CheckResult
TypeScript, strictclean
Design-token lint (no hex, no px, no extra fonts)0 errors
Production buildgreen, served at kishor.design/perflo
Reduced-motion branchesevery reveal, every pinned scene
Mobile collapse of pinned scenesexplicit, below 768px
kishor — agent · ~/portfolio