Skip to main content
Thank you for your interest in contributing to Stiletto! This guide will help you get started with development and submitting contributions.

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

  1. Fork and clone the repository
git clone https://github.com/dm94/stiletto-web.git
cd stiletto-web
  1. Install dependencies
pnpm install
  1. Set up environment variables
Copy .env.example to .env and configure the required variables. See Environment Variables for details.
  1. Start the development server
pnpm dev
# or
pnpm start
The application will be available at 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:
pnpm format
This runs biome format --write ./src to automatically format all source files.

Linting

Lint and auto-fix issues:
pnpm lint
This runs 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

pnpm test
# or
pnpm playwright

Run Tests in UI Mode

For interactive debugging:
pnpm playwright:ui

CI Testing

Playwright tests run automatically on:
  • Push to main or master branches
  • Pull requests targeting main or master
Test reports are uploaded as artifacts and retained for 30 days.

Building

Build the application for production:
pnpm build
Preview the production build:
pnpm preview

Pull Request Process

  1. Create a feature branch
git checkout -b feature/your-feature-name
  1. Make your changes
    • Write clear, concise commit messages
    • Follow the existing code style
    • Add tests for new features
    • Update documentation as needed
  2. Run quality checks
pnpm format
pnpm lint
pnpm test
  1. Commit and push
git add .
git commit -m "Add: your feature description"
git push origin feature/your-feature-name
  1. Open a Pull Request
    • Provide a clear description of your changes
    • Reference any related issues
    • Ensure all CI checks pass
Make sure your code passes all Playwright tests and Biome checks before submitting a PR. The CI pipeline will run these checks automatically.

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:
  1. Join the project on Crowdin
  2. Select your language
  3. Translate missing strings

Reporting Issues

Found a bug or have a feature request?

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