Peyvand: Persian Link Shortener, QR Codes, and More
Shortening a link, printing a QR code, and seeing who clicked should be quick and free. Peyvand is a Persian link shortener that does all three, with timed links and a public API for people who need more. Each address is checked for safety before its link exists. I built and run it alone as a nonprofit, and I’m still improving it.
What was wrong
Link shorteners, QR code generators, and personal page builders already exist, so the idea isn’t new. What’s missing is a Persian-first option that feels well made. The existing Persian services do useful work, and I wanted to see how much better the experience could get. Many Persian speakers live under heavy digital sanctions and can’t use the international tools everyone else relies on. Peyvand puts a link shortener, a QR code generator, and a personal page host in one place, built in Persian from the start.
What made it awkward
- Nonprofit, with no ads. I didn't want to make money from ads, and I didn't want the project to be fully commercial either. I wanted the core features to be free for everyone, even people outside of Iran. It took me a while to find a business model that could keep the project going for the long run.
- Persian first. Right-to-left text makes UI design harder, and Persian designers know it well. Most English UI designs fall apart when applied to Persian, so I designed every detail myself. It took the most time of anything on the project.
- It is one person's project. Every feature is something I have to build, secure, monitor, and answer questions about, so each one has to earn its place.
What I built
- An ad-free link shortener you can use in less than a minute.
- An auto-updated, multi-layer safety check on every link before it is made, so users can trust that a short link is not meant to hurt them.
- Dynamic QR codes that are ready to be printed for good and can be updated whenever needed without breaking anything.
- Click statistics for each link, QR code, and profile, so users know exactly how each one is performing.
- Timed links that only work inside a window the owner sets, for campaigns that start and end on a date.
- A public API, so another product can create links with a single request.
- A one-page link-in-bio profile called Yekvand (it means "one link": yek is one, and Peyvand means link), the single address a person or business can use anywhere.
Decisions worth explaining
Ad-Free From Day One
A product like this is not meant to make a lot of money. Most similar services I looked at chose ads to pay for the service. I did not want flashing banners and blinking pictures in front of my users.
The trade-off: I give up one possible stream of revenue to create a better experience, and I accept that happily.
A Built-In API
A link shortener is most useful when it lives inside the tools people already use. So I made the whole service available through a single request. Other products can create links the same way my own dashboard does, and both follow one set of rules.
The trade-off: Once people build on a public API, I have to keep it stable. That slows down changes that would be easy on a private one.
A Bespoke Look and Feel
Most products out there try to be minimalist, and I wanted a new feeling to set Peyvand apart. Over time, products start to look the same and lose their own character. So I studied different design approaches, and none of them fit what I wanted. I had to create it myself. To cut the story short, I mixed Neo-brutalism and Bauhaus to get the vibrant, clean, and nostalgic feeling you see on the product today.
The trade-off: Some users might dislike it, but I find its character appealing.
Safety First
A short link hides where it leads, and that is what makes shorteners attractive to people with bad intentions. One check is easy to get around, so I look at every address in several different ways before its link exists. Refusing a harmful destination right when the link is created protects the people who click, and it protects every other link on the domain.
The trade-off: Extra checks add a little time and cost to making a link. Keeping the checks updated and maintained also adds complexity to a simple function.
How it ran
2025
The core: shorten a link, redirect it quickly, and show a click count.
Since then
Dynamic QR codes, the detailed statistics dashboard, timed links, the public API and its documentation, and plans for anyone who needs more than the free tier.
Next
Yekvand, the link-in-bio page, and a roadmap that I publish on the site as it moves, and probably an SDK and a browser extension.