https://github.com/ranjbar-dev/arses
arses
https://github.com/ranjbar-dev/arses
Last synced: about 1 month ago
JSON representation
arses
- Host: GitHub
- URL: https://github.com/ranjbar-dev/arses
- Owner: ranjbar-dev
- Created: 2026-06-25T13:38:00.000Z (about 1 month ago)
- Default Branch: main
- Last Pushed: 2026-06-25T17:18:55.000Z (about 1 month ago)
- Last Synced: 2026-06-25T18:24:03.473Z (about 1 month ago)
- Language: Python
- Size: 253 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Arses — Studio Website
One-page portfolio/lead-gen site. Dark, motion-rich, bilingual (EN/FA + RTL).
## Run
```bash
npm install
npm run dev # http://localhost:5173
npm run build # dist/ → Cloudflare Pages
```
## Where to fill in content
### Contact handles
Search `[TODO-handle]` and `[TODO-number]` in the codebase — they appear in:
- `src/components/Header.tsx` (Telegram CTA)
- `src/components/Hero.tsx`
- `src/components/Contact.tsx`
- `src/components/Footer.tsx`
Replace `https://t.me/[TODO-handle]` with your real Telegram link and `tel:[TODO-number]` with your phone.
### Copy + translations
All visible text lives in two files:
- `src/lib/i18n/en.ts` — English
- `src/lib/i18n/fa.ts` — Persian (Farsi)
Every placeholder is marked `[TODO]`. Find them with:
```bash
grep -r "\[TODO" src/lib/i18n/
```
### Portfolio / work items
`src/data/index.ts` — `workItems` array. The first item (`behkame`) is live. Add real projects or replace the three `placeholder: true` entries.
### Tech stack
`src/data/index.ts` — `techStack` array. Update with your actual tools.
### Stats
`src/lib/i18n/en.ts` and `fa.ts` — `whyUs.stats` array. Replace values and labels.
## Language persistence flag
`src/lib/i18n/context.tsx` line 8:
```ts
const PERSIST = true // set false to reset to EN on every page load
```
## Deploy to Cloudflare Pages
1. Push to GitHub
2. In Cloudflare Pages: connect repo, build command `npm run build`, output `dist`
3. Done — `public/_redirects` handles SPA routing
## Motion / reduced-motion
All animations check `prefers-reduced-motion` via `useReducedMotion()` in `src/lib/motion/index.ts`. When active: Lenis smoothing off, no path-draw, no scroll-scrub, no parallax — final states render immediately.