Thank you for your interest in contributing to kheMessage! This document provides guidelines for contributing.
- Fork the repository on GitHub
- Clone your fork locally
- Create a branch for your change:
git checkout -b feature/my-featureorgit checkout -b fix/my-fix - Make your changes following the code style below
- Test your changes (see docs/TESTING.md)
- Commit with a clear message:
feat: add Xorfix: resolve Y - Push to your fork and open a Pull Request
- JavaScript: ES2020+, camelCase, async/await for async operations
- CSS: Use custom properties (
--bg,--text, etc.) for theming - localStorage: Wrap in try/catch
- Architecture: Keep everything in the single
index.htmlfile when possible - Accessibility: Use semantic HTML and ARIA labels
- Naming: Follow existing conventions (e.g.
blocksToHash,hashToBlocks)
- Single-file first — Prefer keeping code in
index.html - No dependencies — Avoid adding npm packages
- Backwards compatible — Don't break existing URLs
- Progressive enhancement — Core features work without JS
- Accessibility — Semantic HTML, ARIA, keyboard navigation
Before submitting a PR:
- Test in Chrome, Firefox, and Safari
- Test both light and dark themes
- Test PWA (install, offline)
- Test keyboard navigation
- Run through the checklist in docs/TESTING.md for relevant areas
- Keep PRs focused; one feature or fix per PR when possible
- Add a clear description of what changed and why
- Reference any related issues
- Ensure no console errors or warnings
- docs/ARCHITECTURE.md — System overview and diagrams
- docs/CODE_STRUCTURE.md — index.html section map
- docs/DEVELOPMENT.md — Local setup and where to add features
- docs/DEPLOYMENT.md — Vercel deployment
- docs/TESTING.md — Testing checklist
When you change behavior (storage, sharing, limits, encryption), update the relevant docs and README sections so the system remains self-explanatory.
- This is a static-only app. Do not add Edge Functions or serverless code.
- GitHub Actions deploys to Vercel only when repository secrets are configured.
Open an issue for bugs, feature requests, or questions.