A modern, infinite twist on the classic 3x3 game where your oldest moves disappear!
🕹️ Play Live Demo · Read Rules
- X goes first.
- You can only have 3 active marks on the board at a time.
- Placing a 4th mark will remove your oldest mark.
- Get your 3 active marks in a row to win the round!
- Move before the 10-second timer runs out, or you forfeit the round.
- Framework: Vue 3 (Composition API,
<script setup>) - Language: TypeScript
- Tooling: Vite
- Styling: Tailwind CSS v4 (using
@themevariables) - Formatting / Linting: Oxlint, Oxfmt, ESLint
Ensure you have Bun or Node.js installed on your machine.
- Clone the repository:
git clone https://github.com/LakhindarPal/xoinfy.git
cd xoinfy- Install dependencies:
bun install- Start the development server:
bun run dev- Build for production:
bun run build- Lint and format code:
bun run lint
bun run formatHave ideas or found a bug? PRs, Issues, and Stars are always welcome!
- Fork the project
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the MIT License.




