Your client says “here.” You see exactly where.

Clients click what they want changed and say it right there, in words, voice or a picture. You get it on your board with the screenshot. They sign off on the fix.

  • Free for your first website
  • Clients never pay
  • One line to installTA

Website feedback that doesn't get lost in WhatsApp.

A screenshot in one chat, a voice note in another, “the button on the left” in a third. Here every comment is attached to the thing it's about, and stays there until the client says it's fixed.

  • Click it, or draw a box.

    Any button, heading or photo. For something that isn’t there yet, they drag a box over the empty space.

  • Type it, say it, or paste it.

    Up to three minutes of voice for clients who would rather talk, in Bangla or English. Ctrl+V drops in the picture they mean.

  • The client closes it.

    When you mark it fixed, they check the real page and press Looks good, or Still broken with a reply.

One line of code, on any website

Works on the stack you already use

  • Next.js
  • React
  • Vue
  • Svelte
  • Angular
  • Astro
  • Laravel
  • HTML
  • WordPress
  • Shopify
  • Webflow
  • Wix
  • Framer
  • Squarespace

Your client points at the problem.

They open your invite link, sign in once with Google, and click what's wrong: a button, a heading, or a box dragged over empty space. Then they say it in words, voice or a picture.

  • A screenshot, the browser and the screen size come with it.
  • Passwords and card numbers are blacked out first.
  • On a phone, the comment box slides up from the bottom.

You get everything you’d have had to ask for.

The page, the element, the screenshot and the device, on one card. Fix it on your local copy, then drag the card to Ready for review.

  • Open the exact pin on localhost in one click.
  • Reply, assign, or create a Jira issue with the screenshot.
  • Any localhost address works for your team, no setup.

They approve the fix themselves.

The client gets an email with a link straight to the pin. They check it on the real site and press Looks good, or Still broken with a reply. Try it on the picture.

  • Nothing counts as done until the client agrees.
  • Clients follow their requests on their own board.
  • Client accounts are free, however many you invite.
staging.ponno.app
ponnoFeaturesPricingLog inGet the app
New: take bKash payments in the app

Know what your shop sold today.

Sales, stock and dues in one app. Works offline and syncs when you're back.

Start free trialRUWatch the 2-min tour

Free for 30 days · No card needed

Today · Karim StoreFri, 10 Oct

৳18,420+12% vs Thu

Miniket rice, 5 kg×2৳840

Soybean oil, 1 L×3৳555

Due paid · Karim৳1,200

RU Rahim Uddin 2h

Can the trial button be bigger? It's hard to see on my phone.

The team fixed this. Is it right?

Pins that survive your next deploy.

A pin isn't a CSS selector that breaks when you rename a class. EkhaneMark remembers the element several ways, then finds it again on localhost, staging and live.

How the pin found it

Exact match
  • Text “Pro”
  • Price ৳799
  • Place: third card
  • class “plan-card”

The client pinned the Pro plan, the third card.

staging.ponno.app/pricing
ponnoMonthlyYearly −20%

Simple prices, in taka.

  • Starter৳0/monthOne shop, up to 100 productsChoose Starter.plan-card
  • ShopPopular৳299/monthUnlimited products, bKash paymentsChoose Shop.plan-card
  • Pro৳799/monthThree shops and staff loginsChoose Pro.plan-cardRU
  • Chain৳2,499/monthTen shops, reports by branchChoose Chain.plan-card

Illustration. Matching is tested against reorders, renamed classes and changed data.

One script tag. Any stack.

The same script tag goes on localhost, staging and live. Visitors get half a kilobyte and see nothing; your team and the clients you approve sign in.

  • Sign in from the site. Add #ekhanemark to the address and sign in. Any localhost address works for your team, no setup.
  • Same pin, every copy. Feedback left on staging shows on your localhost copy of the page.
  • Locked to your addresses. A copied key is useless on any other website.
  • Run it yourself. Docker Compose and one small server. Your clients' screenshots never leave it.
NewHand the fix to your AI agent. Claude Code, Cursor and other agents read a pin, see the client's screenshot, fix it in your code and send it back for review.How it works
index.html
1<!doctype html>
2<html lang="en">
3 <body>
4 <main>…</main>
5 <script src="https://ekhanemark.com/w.js" data-project="your-project-key" async></script>
6 </body>
7</html>

Clients are always free.

You pay for your team and your websites. The people giving feedback never pay. Prices in dollars or taka.

Free

Try it on one website

$0forever

  • 1 website
  • 2 team members
  • Unlimited clients, free for them
  • 50 feedback a month
  • 30 days of history
  • Voice notes, images, areas, screenshots

Pro

Recommended

For freelancers and small teams

$19/ month

  • 15 websites
  • 10 team members
  • Unlimited clients, free for them
  • Unlimited feedback
  • 1 year of history
  • Voice notes, images, areas, screenshots
  • Jira issues with screenshot
  • AI coding agents (MCP)

Agency

For agencies with many client sites

$49/ month

  • Unlimited websites
  • Unlimited team members
  • Unlimited clients, free for them
  • Unlimited feedback
  • Feedback kept forever
  • Voice notes, images, areas, screenshots
  • Jira issues with screenshot
  • AI coding agents (MCP)
  • Priority support

Compare plans in detail

Questions and answers

What agencies ask us first. If yours isn’t here, write to us.

Read the docs
Does my client need an account?

Yes, a free one, made in seconds with Google. You send them an invite link; they sign in and ask to join, and you approve them once. A link alone never shows your feedback to anyone.

Will normal visitors see anything?

No. The script is about 0.5 KB and does nothing unless someone signs in on the site. On live sites, set the address to Review mode and sign-ins last one tab only.

What happens after a developer fixes something?

They mark it done. The client gets an email with a link straight to the pin, and either clicks “Looks good” (it closes and the pin leaves the page) or “Still broken” (it reopens with their reply). You can switch a project to let the team close items directly.

How do pins stay on the right element when we change the code?

EkhaneMark remembers each element several ways: text, surrounding content, attributes, structure and position, and re-finds the best match. If it's only a guess, the pin is drawn dashed instead of pretending.

Can we see feedback on localhost?

Yes. Add your localhost address to the project, open it from the dashboard or add #ekhanemark to the URL and sign in. Pins from staging and live show on your local copy.

Is our clients' data safe?

Password and card fields are blacked out in screenshots, files are served from expiring signed links, and every request must come from an address you registered. You can also run EkhaneMark on your own server.

Can we pay in taka?

Yes. Prices are in USD and BDT. Today you pay by bKash or bank transfer and the plan is turned on after the payment is confirmed.

Add one line. Send one link.

Free for your first website. Put it on the site you’re building now and send your client the invite.