Thank you for your interest in contributing to Logia! This document outlines the process and guidelines for contributing.
git clone https://github.com/Cosmiir/logia.git
cd logia
npm install
npm run tauri dev-
Create a branch from
mainfor your feature or bugfix:git checkout -b feat/your-feature-name
-
Make your changes following the code style and conventions below.
-
Test your changes — ensure the app builds and runs:
npm run tauri build
-
Commit with clear messages using conventional commits:
feat:new featurefix:bug fixdocs:documentation onlyrefactor:code restructuringi18n:translation updates
-
Open a Pull Request with a clear description of what and why.
- Use TypeScript strict mode — no
anytypes without justification. - Follow existing naming conventions:
camelCasefor variables/functions,PascalCasefor components/types. - Use functional components with hooks.
- Prefer
useTranslation()'st()function over directi18next.t()calls in components.
- Replace
unwrap()with proper error handling (map_err,?operator) in command functions. - Use the
logcrate (log::warn!,log::error!,log::info!) instead ofeprintln!. - Follow Rust idioms — prefer
Result<T, E>over panics in non-startup code.
- All user-facing strings must use i18n keys via
t('namespace.key'). - When adding new strings, add keys to both
src/i18n/locales/en.jsonandsrc/i18n/locales/fr.json. - Never hardcode French or English strings in components.
- For date formatting, use locale-aware functions from
src/lib/utils.ts.
src/ # Frontend (React + TypeScript)
components/ # Reusable UI components
pages/ # Route-level page components
hooks/ # Custom React hooks
lib/ # Utilities and configuration
i18n/locales/ # Translation files (en.json, fr.json)
src-tauri/ # Backend (Rust + Tauri)
src/commands/ # Tauri command handlers
src/db/ # Database layer (SQLite)
- Use GitHub Issues to report bugs or request features.
- Include steps to reproduce, expected behavior, and actual behavior.
- Mention your OS and Logia version.
By contributing, you agree that your contributions will be licensed under the MIT License.