This document describes the development workflow and conventions used in this project.
feature/<description> — new features
fix/<description> — bug fixes
hotfix/<description> — urgent production fixes
Examples:
feature/wallet-connect-v2fix/transaction-signingfix/PRO-123-popup-issuehotfix/critical-security-patch
We use Conventional Commits format:
<type>(<scope>): <description>
Types:
feat— new featurefix— bug fixchore— maintenance (dependencies, release, etc.)refactor— code refactoringdocs— documentation changes
Scopes (optional):
desktop, extension, web, core, uikit, locales, mobile, twa
Examples:
feat(extension): add Firefox manifest v3 support
fix(desktop): resolve crash on large NFT collections
fix(PRO-123): transaction signing error
chore: update dependencies
chore: release 4.3.4
git checkout main
git pull origin main
git checkout -b feature/my-featuregit add .
git commit -m "feat: add new feature"git push origin feature/my-feature
gh pr create --base mainOr create PR via GitHub UI.
When you open a PR, the following builds run automatically:
- Desktop (Linux, Windows, macOS)
- Web (preview deployment)
- Extension (Chrome, Firefox)
- iPad
After approval, the PR is merged into main using merge commit.
Update version in the following files:
package.json(root)apps/web/package.jsonapps/desktop/package.jsonapps/extension/package.json
git add .
git commit -m "chore: release X.Y.Z"git tag vX.Y.Z
git push origin main
git push origin vX.Y.ZPushing a tag triggers the CD workflow which:
- Builds and publishes Desktop apps to GitHub Release
- Deploys Web app to production
- Builds and uploads browser extensions
- Uploads iPad build to TestFlight
We use Semantic Versioning: MAJOR.MINOR.PATCH
- PATCH — bug fixes (4.3.4 → 4.3.5)
- MINOR — new features, backward compatible (4.3.4 → 4.4.0)
- MAJOR — breaking changes (4.3.4 → 5.0.0)
All apps (web, desktop, extension) share the same version number.
tonkeeper-web/
├── apps/
│ ├── desktop/ — Electron desktop app
│ ├── extension/ — Browser extension (Chrome, Firefox)
│ ├── web/ — Web application
│ ├── mobile/ — Mobile/iPad app (Capacitor)
│ ├── twa/ — Telegram Web App
│ └── web-swap-widget/
├── packages/
│ ├── core/ — Core business logic
│ ├── uikit/ — UI components
│ └── locales/ — Translations
└── .github/
└── workflows/ — CI/CD pipelines
# Install dependencies
yarn install
# Build all packages
yarn build:pkg
# Run web app locally
yarn start:web
# Build for production
yarn build:web
yarn build:desktop
yarn build:extension