Static HTML/CSS/JS recreations of public web UIs from Iranian messengers. Each clone lives in its own folder under Clones/ and can be opened in a browser with no build step or backend.
These are front-end studies of login and onboarding screens. They do not connect to Rubika, Soroush+, or any other service, and they do not implement chat.
Clones/rubika — sign-in from web.rubika.ir. Iran (+98) phone field, digit-only input, and client-side mobile number validation.
Clones/sorush — auth flow from web.splus.ir. PWA install guide, country picker, phone formatting, FA/EN copy, light/dark theme, SMS code screen with resend timer, and a non-Iranian number dialog.
The folder is spelled sorush.
No npm install is required for the clones themselves. Serve the clone folder over HTTP (opening index.html as a file:// page can miss fonts and other assets).
From the repository root, with Python 3:
python -m http.server 8080 --directory Clones/rubikapython -m http.server 8080 --directory Clones/sorushThen open http://localhost:8080.
Any other static file server pointed at the same folder works the same way.
assets/ README screenshots (desktop + phone)
Clones/
rubika/ Rubika sign-in page
index.html
css/ styles
js/ phone validation
assets/ logo, favicon, fonts
sorush/ Soroush+ auth flow
index.html
css/
js/ app logic + country list
assets/ icons, fonts, flags
_ref/ local screenshot/compare scripts used while building the clone
Clones/sorush/_ref is development tooling (Puppeteer against the live site). It is not part of the clone UI and is not needed to run it.
- In: visual and interaction cloning of the public auth screens listed above
- Out: accounts, SMS, APIs, messaging, and anything that would talk to the real products
More clones can be added as extra folders under Clones/.
This project is for learning and research. It is not affiliated with, endorsed by, or sponsored by Rubika, Soroush+, or the operators of the original sites. Trademarks and copyrights remain with their owners.
MIT © Mahdiglm