Version: 2.1a.0 Status: Active Development Type: Client-Side Web Application License: MIT
A powerful, privacy-focused text manipulation tool with 50+ transformation utilities, running entirely in your browser. No server. No tracking. Just text manipulation done right.
- UPPERCASE / lowercase conversion
- Title Case / Sentence case formatting
- camelCase / snake_case / kebab-case conversion
- Reverse text character order
- Remove extra spaces, line breaks, numbers, punctuation
- Remove duplicate lines
- Sort lines alphabetically
- Shuffle lines randomly
- Trim whitespace
- Add line numbers
- Word wrap at custom column width
- Indent text with custom spacing
- Base64 encode/decode (with Unicode support)
- URL encode/decode
- HTML entity encode/decode
- Find & Replace with regex support
- Text Comparison (diff tool)
- Hash Generator (SHA-256, SHA-512)
- Lorem Ipsum Generator
- Regex Tester with live results
- Full Text Analytics (word count, reading time, frequency analysis)
- Command Palette (Ctrl+K) - Quick access to all tools
- Clipboard History - Track and reuse copied text
- Templates - Save frequently used text patterns
- Saved Texts - Organize and tag important texts
- Auto-save - Never lose your work
- Undo/Redo - Full history tracking
- Drag & Drop - Import files directly
- Keyboard Shortcuts - Efficient workflow
- Import: TXT, MD, JSON, CSV, HTML (drag & drop supported)
- Export: TXT, MD, JSON, HTML formats
- Max file size: 10MB
- Dark/Light themes with system preference detection
- Responsive design - Works on mobile, tablet, desktop
- Collapsible sidebars - Maximize workspace
- Real-time statistics - Characters, words, lines, reading time
- Toast notifications - Non-intrusive feedback
- Context menu - Right-click for quick actions
- Fullscreen mode - Distraction-free editing
- π 100% client-side - No data sent to servers
- π localStorage only - Data stays on your device
- π Offline-capable - Works without internet
- π No analytics - No tracking, no cookies
- π Open source - Auditable code
- Visit: textMan Live Demo (link to deployed version)
- Start typing or drag & drop a file
- Use Ctrl+K to open the command palette
-
Clone the repository:
git clone https://github.com/dnoice/textMan.git cd textMan -
Open
index.htmlin your browser:# macOS open index.html # Linux xdg-open index.html # Windows start index.html
That's it! No build step, no dependencies, no installation required.
| Browser | Version | Support |
|---|---|---|
| Chrome | 90+ | β Full |
| Firefox | 88+ | β Full |
| Safari | 14+ | β Full |
| Edge | 90+ | β Full |
| Opera | 76+ | β Full |
Requirements:
- JavaScript enabled
- localStorage enabled (for saving data)
- Modern browser with ES6+ support
- Paste your text in the editor
- Click "camelCase" in the right sidebar under "Transform Tools"
- Or press Ctrl+K and type "camel"
- Press Ctrl+F to open Find & Replace
- Enter your search pattern
- Check "Use Regex" for advanced patterns
- Replace one or all occurrences
- Press Ctrl+K to open Command Palette
- Type "lorem"
- Select "Lorem Ipsum Generator"
- Choose number of paragraphs
- Edit your text
- Click "Save Text" in toolbar or press Ctrl+S
- Add a name and optional tags
- Access saved texts from left sidebar
| Shortcut | Action |
|---|---|
Ctrl+K |
Open Command Palette |
Ctrl+N |
New Text (clear editor) |
Ctrl+S |
Save Text |
Ctrl+F |
Find & Replace |
Ctrl+Z |
Undo |
Ctrl+Y or Ctrl+Shift+Z |
Redo |
Ctrl+X |
Cut |
Ctrl+C |
Copy |
Ctrl+V |
Paste |
Ctrl+A |
Select All |
Ctrl+P |
|
Esc |
Close Dialogs |
- Frontend: Vanilla JavaScript (ES6+)
- Styling: CSS3 with CSS Custom Properties
- Storage: localStorage API
- Icons: Font Awesome 6.4.0
- Encoding: Web Crypto API (SHA-256, SHA-512)
No frameworks. No build tools. No dependencies.
Just clean, efficient, vanilla JavaScript.
textMan/
βββ index.html # Main application HTML
βββ css/
β βββ styles.css # All application styles (2700+ lines)
βββ js/
β βββ scripts.js # All application logic (3000+ lines)
βββ docs/
β βββ CONTINUATION.md # Session handoff system
β βββ CODEBASE_AUDIT_2025-10-27.md # Security & quality audit
β βββ DOCUMENTATION_PRIORITIES.md # Documentation roadmap
β βββ DOCUMENTATION_REVIEW_2025-10-27.md # Documentation assessment
β βββ branch/ # Branch-specific documentation
βββ favicon.ico # Application icon
βββ README.md # This file
Total Size: ~214KB (5.2MB with git history)
textMan uses a modular namespace pattern:
// Core modules
APP_CONFIG // Application configuration
APP_STATE // Global state management
Utils // Utility functions
Storage // localStorage wrapper
ThemeManager // Dark/light theme
Toast // Notifications
Modal // Dialog system
// Feature modules
Editor // Text editor management
TextTools // Text transformation tools
SearchManager // Find & replace
HistoryManager // Text history
SavedTexts // Saved text library
Templates // Text templates
Analytics // Text statistics
AdvancedTools // Hash, diff, lorem, regex
// UI modules
ToolsManager // Tool button handlers
SidebarManager // Sidebar collapse/expand
CommandPalette // Ctrl+K command interface
DragDrop // File drag & drop
ContextMenu // Right-click menu
KeyboardShortcuts // Global hotkeysGlobal state in APP_STATE:
{
theme: 'dark' | 'light',
editor: { content, history, historyIndex, maxHistory },
savedTexts: [...],
recentHistory: [...],
clipboardHistory: [...],
templates: [...],
settings: { autoSave, fontSize, lineHeight },
commandPalette: { isOpen, selectedIndex }
}// Keys (prefixed with 'textMan_')
textMan_theme // Current theme
textMan_editorContent // Current editor text
textMan_settings // User settings
textMan_history // Recent edits
textMan_savedTexts // Saved text library
textMan_clipboardHistory // Clipboard tracking
textMan_templates // Custom templates
textMan_sidebar_* // Sidebar states
textMan_section_* // Section collapse states- Add tool function to
TextToolsobject:
const TextTools = {
// ... existing tools ...
myNewTool() {
const text = Editor.textarea.value;
// Transform text
const transformed = /* your transformation */;
Editor.textarea.value = transformed;
Editor.handleInput();
Toast.show('Success', 'Text transformed', 'success');
}
};- Add tool button to
index.html:
<button class="tool-btn" data-action="myNewTool">
<i class="fas fa-icon"></i> My Tool
</button>- Register action in
ToolsManager.handleToolAction():
const actionMap = {
// ... existing actions ...
'myNewTool': () => TextTools.myNewTool()
};- (Optional) Add to Command Palette in
CommandPalette.commandsarray
Contributions are welcome! Please read our Contributing Guidelines before submitting PRs.
- Fork the repository
- Create a feature branch:
git checkout -b feature/my-new-tool
- Make your changes following our coding standards
- Test thoroughly (all tools, all browsers)
- Document your changes (update README, add JSDoc comments)
- Submit a Pull Request with a clear description
- JavaScript: ES6+, descriptive names, JSDoc comments
- CSS: BEM-like naming, custom properties for theming
- HTML: Semantic, accessible, ARIA labels
- Commits: Conventional Commits format
- π Bug fixes (see Issues)
- βΏ Accessibility improvements
- π Internationalization (i18n)
- π± Mobile UX enhancements
- β Test coverage
- π Documentation improvements
- π¨ UI/UX polish
- No server communication - All processing happens client-side
- No external requests - Except Font Awesome CDN (optional)
- No data collection - No analytics, no tracking
- Regular audits - Last audit: 2025-10-27
See our Security Audit Report for detailed findings.
Critical items being addressed:
- XSS vulnerability mitigation (innerHTML usage)
- Input validation improvements
- Content Security Policy implementation
If you discover a security vulnerability, please:
- Do NOT open a public issue
- Email security details to: [[email protected]]
- Include:
- Description of the vulnerability
- Steps to reproduce
- Potential impact
- Suggested fix (if any)
We aim to respond within 48 hours.
- Total Lines of Code: 6,382
- HTML: 659 lines
- CSS: 2,705 lines
- JavaScript: 3,018 lines
- Tools Implemented: 50+
- Browser Compatibility: 99% of modern browsers
- Performance: < 2s load time, 60 FPS UI
- 50+ text manipulation tools
- Dark/light themes
- Command palette
- Auto-save & history
- Import/export multiple formats
- Responsive design
- Comprehensive documentation
- Security audit
- Fix XSS vulnerabilities (SEC-001, SEC-002)
- Improve accessibility (ARIA labels, keyboard nav)
- Optimize large file handling
- Add Content Security Policy
- Progressive Web App (PWA) support
- Browser extension versions
- Plugin/extension API
- Markdown preview mode
- Code syntax highlighting
- Multi-file tabs
- Advanced diff visualization
MIT License
Copyright (c) 2025 [Your Name/Organization]
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- Font Awesome 6.4.0 - Icon library (fontawesome.com)
- Inspired by classic text manipulation tools and modern web development practices
See Contributors for a list of people who have contributed to this project.
- Issues: GitHub Issues
- Discussions: GitHub Discussions
- Email: [[email protected]]
- Twitter: [@yourusername]
- API Reference (to be created)
- Architecture Overview (to be created)
- Contributing Guidelines (to be created)
- Session Handoff System
- Audit Archive - All codebase and documentation audits
- Latest Audit (2025-10-27) - Security, A11Y, Performance findings
If you find textMan useful, please consider giving it a star on GitHub! β
Built with β€οΈ and Vanilla JavaScript
No frameworks were harmed in the making of this application.