DEV Community

Joodi
Joodi

Posted on

I Forked shadcn/ui to Build a Better RTL Experience

When I started using shadcn/ui for Persian projects, I quickly ran into a problem: the components are great, but building a truly comfortable RTL-first experience required a lot of extra work.

So instead of building another UI library from scratch, I decided to fork shadcn/ui and adapt it for Persian and RTL interfaces.

That project became FarsiUI.

Why FarsiUI?

RTL support is more than simply adding dir="rtl".

Persian interfaces have their own requirements: typography, numbers, calendars, forms, and common patterns such as national ID, bank card, Sheba number, and license plate inputs.

FarsiUI is my attempt to make these things work naturally from the beginning.

What I changed

FarsiUI keeps the core idea of shadcn/ui while extending it for Persian-first interfaces.

Some of the main additions include:

  • Native RTL support
  • Persian numbers
  • Jalali calendar
  • Persian-specific form components
  • 500+ components and blocks
  • CLI for installing components
  • MCP support
  • Multiple design systems
  • Responsive layouts and production-ready patterns

The goal isn't to replace shadcn/ui.

It's to make the same approach much more practical when you're building Persian and RTL products.

Open Source

FarsiUI is open source and available on GitHub.

If you're building Persian or RTL interfaces, I'd love for you to check it out, try the components, and let me know what you think.

⭐ If you find it useful, consider giving the project a Star.

Contributions and feedback are also very welcome.

🌐 Website: https://FarsiUI.ir/
πŸ’» GitHub: https://github.com/MiladJoodi/FarsiUI
πŸ“₯ npm: https://www.npmjs.com/package/FarsiUI

FarsiUI is a fork of shadcn/ui.

Top comments (0)