Getting Started
Stiletto is a web application built with React, Vite, and TypeScript that provides utilities for the game Last Oasis.Prerequisites
- Node.js: Version 22.x or higher
- pnpm: Version 10.26.2 (recommended package manager)
Stiletto uses pnpm as the package manager. While npm may work, pnpm is recommended for consistency with the project setup.
Development Setup
- Fork and clone the repository
- Install dependencies
- Set up environment variables
.env.example to .env and configure the required variables. See Environment Variables for details.
- Start the development server
http://localhost:5173 (default Vite port).
Code Quality
Stiletto uses Biome for linting and code formatting to maintain consistent code style.Formatting
Format your code before committing:biome format --write ./src to automatically format all source files.
Linting
Lint and auto-fix issues:biome lint --write ./src to check and fix linting issues.
Biome is configured with strict rules including error-level checks for accessibility, complexity, correctness, security, and style. Check
biome.json for the full configuration.Testing
Stiletto uses Playwright for end-to-end testing.Run Tests
Run Tests in UI Mode
For interactive debugging:CI Testing
Playwright tests run automatically on:- Push to
mainormasterbranches - Pull requests targeting
mainormaster
Building
Build the application for production:Pull Request Process
- Create a feature branch
-
Make your changes
- Write clear, concise commit messages
- Follow the existing code style
- Add tests for new features
- Update documentation as needed
- Run quality checks
- Commit and push
- Open a Pull Request
- Provide a clear description of your changes
- Reference any related issues
- Ensure all CI checks pass
Code Style Guidelines
- Use TypeScript for type safety
- Follow React 19 best practices
- Use double quotes for strings (configured in Biome)
- Organize imports automatically (enabled in Biome)
- Use space indentation (configured in Biome)
- Prefer const over let when variables don’t change
- Use block statements for control flow
Translation Support
Stiletto supports multiple languages using i18next. Translations are managed through Crowdin. If you’d like to contribute translations:- Join the project on Crowdin
- Select your language
- Translate missing strings
Reporting Issues
Found a bug or have a feature request?- GitHub Issues: github.com/dm94/stiletto-web/issues
- Discord: Join our Discord community
Related Projects
- API: stiletto-node-api
- Website: stiletto.deeme.dev
License
This project is unlicensed. Please check the repository for the most current license information.Need Help?
Join our Discord community for support and discussions