A landing page for PulseVR, a made-up startup that rents VR gear and sells subscriptions to VR games. I built it with React, TypeScript and Tailwind CSS to practice turning a full marketing layout into clean, reusable components. It runs at pulse-vr.vercel.app.
- A header that sticks to the top once you scroll, with a mobile menu.
- A hero, then a section on why PulseVR, with feature cards.
- The VR gear for rent, and a numbered guide to getting started.
- A spotlight on featured games, with video previews that autoplay muted on a loop.
- Testimonials and a pricing table of the subscription plans.
- An FAQ whose answers open one at a time, built with radio inputs and CSS rather than JavaScript state.
Every section is responsive from phone to desktop. Shared pieces such as cards, panels and buttons live in src/components/shared/.
You need Node.js and npm.
git clone https://github.com/janrizmlibres/pulse-vr.git
cd pulse-vr
npm install
npm run devThe dev server opens on http://localhost:5173. No environment variables are needed.
| Script | What |
|---|---|
npm run dev |
Vite dev server |
npm run build |
Typecheck, then a production build into dist/ |
npm run preview |
Serve the production build |
npm run lint |
ESLint |
React 19, TypeScript 5, Vite 6 and Tailwind CSS v4, with Phosphor Icons. ESLint and Prettier keep the code consistent.
Issues and pull requests are welcome. Open a bug report here with what happened and what you expected.
MIT. Released in 2025 by Janriz Libres. See LICENSE.
