A powerful, privacy-focused, client-side image overlay editor that runs entirely in your web browser. Create professional image compositions with text and image layers without uploading your content to any server.
xsukax Overlay Studio is a single-file web application designed for creating sophisticated image overlays with multiple layers of text and images. Built with vanilla JavaScript and HTML5 Canvas, this tool provides a comprehensive layer-based editing system that operates entirely within your browser, ensuring complete privacy and control over your creative assets.
The application is ideal for content creators, streamers, designers, and anyone who needs to add professional overlays to images without relying on cloud-based services or installing heavy desktop software.
- Background Image Management: Load any image as your canvas foundation
- Text Layer System: Add unlimited customizable text overlays with full typography control
- Image Layer System: Composite multiple images with precise positioning and transformation
- Layer Management: Organize, reorder, and toggle visibility of all layers
- Project Persistence: Save and load your work in a portable
.xoeformat - Export Capabilities: Generate high-quality PNG files of your final composition
xsukax Overlay Studio is built with security and privacy as fundamental design principles:
All image processing, manipulation, and rendering occur exclusively within your web browser. No data ever leaves your device. This architecture provides:
- Zero Server Dependencies: No backend servers, databases, or cloud storage involved
- No Data Transmission: Your images, text, and project files remain entirely on your local machine
- Offline Capability: Once loaded, the application functions without an internet connection
- No Third-Party Services: No external APIs, CDNs, or tracking libraries
graph LR
A[Your Device] --> B[Browser]
B --> C[xsukax Overlay Studio]
C --> D[Local File System]
C --> E[Canvas Rendering]
D --> C
E --> D
style A fill:#2ea043,stroke:#1f6feb,color:#fff
style B fill:#1f6feb,stroke:#1f6feb,color:#fff
style C fill:#238636,stroke:#238636,color:#fff
style D fill:#da3633,stroke:#da3633,color:#fff
style E fill:#da3633,stroke:#da3633,color:#fff
- No Telemetry: Zero tracking, analytics, or usage monitoring
- No Account Required: No registration, login, or personal information collection
- No Watermarks: Your exported images are completely yours
- Open Source Transparency: Full source code visibility for security auditing
You maintain complete control over your creative work:
- Images never uploaded to external servers
- Project files stored locally with your chosen naming and location
- Exports saved directly to your device
- No retention policies or terms of service regarding your content
- Unlimited Layers: Add as many text and image layers as needed
- Visual Layer Management: Intuitive interface showing all layers with real-time previews
- Layer Reordering: Move layers up or down in the stack with arrow controls
- Toggle Visibility: Enable/disable individual layers without deletion
- Drag-and-Drop Positioning: Click and drag any layer directly on the canvas
Comprehensive text customization options:
- Typography Control: Choose from 25+ common font families
- Size Flexibility: Font sizes from 1px to 500px
- Color Selection: Full spectrum color picker
- Text Styling: Bold, italic, and underline formatting
- Rotation: Rotate text from -360Β° to 360Β°
- Flipping: Horizontal and vertical flip transformations
- Opacity Control: Adjust transparency from 0-255 (0-100%)
- Precise Positioning: Pixel-perfect X/Y coordinate control
- Aspect Ratio Preservation: Images maintain proportions when resized
- Width Adjustment: Scale images while preserving aspect ratio
- Transform Controls: Rotation and flipping options
- Transparency: Opacity adjustment for blending effects
- Free Positioning: Place images anywhere on the canvas
- Save Projects: Export complete projects as
.xoefiles - Load Projects: Resume work on saved projects with all layers intact
- Project Information: Track canvas dimensions and layer statistics
- Export to PNG: Generate final images in universal PNG format
- Dark Theme Interface: Modern, GitHub-inspired dark UI reduces eye strain
- Real-Time Preview: See changes instantly on the canvas
- Responsive Layout: Adapts to different screen sizes
- No Learning Curve: Intuitive controls require minimal instruction
- Zero Dependencies: No installation, plugins, or additional software required
- Lightweight: Single 35KB HTML file
- Fast Loading: No external resources to download
- Efficient Rendering: Optimized HTML5 Canvas operations
- No Lag: Client-side processing eliminates network latency
xsukax Overlay Studio requires no traditional installation. Follow these simple steps:
-
Download the File
# Clone the repository git clone https://github.com/xsukax/xsukax-Overlay-Studio.git cd xsukax-Overlay-Studio
-
Open in Browser
- Double-click
index.htmlto open in your default browser - Or right-click β "Open with" β Select your preferred browser
- Double-click
- Navigate to the GitHub repository
- Click the green "Code" button
- Select "Download ZIP"
- Extract the ZIP file
- Open
index.htmlin any modern web browser
- Visit the GitHub repository
- Click on
index.html - Click "Raw" button
- Save the page (Ctrl+S / Cmd+S)
- Open the saved file in your browser
Minimum Requirements:
- Any modern web browser (Chrome 90+, Firefox 88+, Safari 14+, Edge 90+)
- JavaScript enabled
- HTML5 Canvas support
Recommended:
- Desktop or laptop computer for optimal experience
- Screen resolution of 1280x720 or higher
- Mouse for drag-and-drop functionality
Supported Platforms:
- Windows 7/8/10/11
- macOS 10.13+
- Linux (any distribution)
- ChromeOS
flowchart TD
A[Open index.html] --> B[Upload Background Image]
B --> C{Add Layers}
C -->|Text| D[Add Text Overlay]
C -->|Image| E[Add Image Overlay]
D --> F[Customize Properties]
E --> F
F --> G[Position on Canvas]
G --> H{More Layers?}
H -->|Yes| C
H -->|No| I[Export or Save]
I -->|Export| J[Download PNG]
I -->|Save| K[Download .xoe Project]
style A fill:#1f6feb,stroke:#1f6feb,color:#fff
style B fill:#238636,stroke:#238636,color:#fff
style I fill:#da3633,stroke:#da3633,color:#fff
- Click the "Choose Image" button under "Background Image"
- Select an image file from your computer (PNG, JPG, GIF, etc.)
- The canvas automatically resizes to match your image dimensions
- The filename appears below the button
- Click "+ Text" button in the Layers section
- A new text layer appears with default settings
- Customize the text layer properties:
- Text: Enter your desired text
- Position (X, Y): Set precise coordinates
- Font Size: Adjust from 1-500px
- Font Family: Choose from dropdown menu
- Color: Click color picker to select
- Rotation: Enter degrees (-360 to 360)
- Opacity: Set transparency (0-255)
- Styling: Enable bold, italic, or underline
- Flip: Toggle horizontal or vertical flip
- Click "+ Image" button in the Layers section
- Click "Choose Image" in the modal dialog
- Select an image file to use as overlay
- Customize the image layer properties:
- Position (X, Y): Set precise coordinates
- Width: Adjust size (height scales automatically)
- Rotation: Enter degrees (-360 to 360)
- Opacity: Set transparency (0-255)
- Flip: Toggle horizontal or vertical flip
Method 1: Manual Input
- Enter precise X and Y coordinates in the layer controls
- Values update in real-time on the canvas
Method 2: Drag and Drop
- Click and hold any layer on the canvas
- Drag to desired position
- Release to drop
- Coordinates update automatically in the layer controls
graph TB
A[Layer Stack] --> B[Top Layer - Renders Last]
B --> C[Middle Layers]
C --> D[Bottom Layer - Renders First]
D --> E[Background Image]
style B fill:#2ea043,stroke:#2ea043,color:#fff
style D fill:#da3633,stroke:#da3633,color:#fff
style E fill:#1f6feb,stroke:#1f6feb,color:#fff
- Move Up (β): Brings layer forward in render order
- Move Down (β): Sends layer backward in render order
- Layers at the top of the list render on top of layers below
- Background image always renders first (bottom layer)
- Toggle switch next to each layer
- Green = Layer visible and rendered
- Gray = Layer hidden but preserved
- Hidden layers don't appear in exports
- Click the "Γ" button on any layer to delete it permanently
- Deletion is immediate and cannot be undone
- Consider saving your project before removing layers
- Click "πΎ Save Project" in the header
- A
.xoefile downloads automatically - The file contains:
- All layer configurations
- Background image (embedded)
- All overlay images (embedded)
- Project metadata
File Format: .xoe (xsukax Overlay Editor format)
- JSON-based structure
- Human-readable
- Includes all assets as base64-encoded data
- Click "π Load Project" in the header
- Click "Choose .xoe file" in the modal
- Select your previously saved
.xoefile - All layers, images, and settings restore automatically
- Click "π₯ Export PNG" in the header
- A PNG file downloads automatically
- The exported image includes:
- Background image
- All enabled layers rendered in order
- Exact canvas dimensions
- Full quality (no compression loss)
Export Specifications:
- Format: PNG (Portable Network Graphics)
- Color Depth: 24-bit RGB
- Transparency: Supported
- Resolution: Matches canvas dimensions
Currently, all operations use mouse/touch input. Future versions may include:
- Ctrl/Cmd + S for saving
- Ctrl/Cmd + E for exporting
- Arrow keys for precise positioning
- Delete key for layer removal
For Optimal Results:
- Use High-Quality Source Images: Start with high-resolution backgrounds
- Organize Layers Logically: Name your project files descriptively
- Save Frequently: Create project backups before major changes
- Test Opacity: Use transparency to blend layers naturally
- Mind the Canvas Size: Larger canvases produce better quality but require more memory
Common Workflows:
- Stream Overlays: Add text alerts and branding to streaming backgrounds
- Social Media Graphics: Create thumbnail images with text overlays
- Product Mockups: Composite product images with descriptive text
- Event Flyers: Design promotional graphics with layered elements
- Watermarking: Add signature text or logo images to photographs
Issue: Background image won't load
- Ensure file is a valid image format (PNG, JPG, GIF, WebP)
- Check file isn't corrupted
- Try a smaller file size
Issue: Text appears cut off
- Increase canvas size by using a larger background image
- Adjust text position to fit within canvas bounds
Issue: Export appears blank
- Ensure background image is loaded
- Check that at least one layer is enabled
- Verify browser supports Canvas.toDataURL()
Issue: Project won't load
- Confirm file extension is
.xoe - Verify file isn't corrupted
- Check JSON structure if manually edited
Issue: Dragging doesn't work
- Ensure JavaScript is enabled
- Try clicking directly on the layer element
- Check browser console for errors
| Browser | Minimum Version | Recommended | Notes |
|---|---|---|---|
| Chrome | 90+ | Latest | Best performance |
| Firefox | 88+ | Latest | Full support |
| Safari | 14+ | Latest | Fully compatible |
| Edge | 90+ | Latest | Chromium-based |
| Opera | 76+ | Latest | Chromium-based |
Not Supported:
- Internet Explorer (all versions)
- Legacy Edge (pre-Chromium)
graph TD
A[HTML5] --> D[xsukax Overlay Studio]
B[CSS3] --> D
C[Vanilla JavaScript] --> D
D --> E[Canvas API]
D --> F[File API]
D --> G[Local Storage]
style A fill:#f85149,stroke:#f85149,color:#fff
style B fill:#388bfd,stroke:#388bfd,color:#fff
style C fill:#f0b72f,stroke:#f0b72f,color:#000
style D fill:#2ea043,stroke:#2ea043,color:#fff
- Frontend: Pure HTML5, CSS3, Vanilla JavaScript
- Rendering Engine: HTML5 Canvas 2D Context
- File Handling: FileReader API, Blob API
- Data Format: JSON with Base64-encoded images
- No Dependencies: Zero external libraries or frameworks
sequenceDiagram
participant User
participant Browser
participant FileSystem
participant Canvas
User->>Browser: Upload Background
Browser->>FileSystem: Read File
FileSystem-->>Browser: Image Data
Browser->>Canvas: Draw Background
User->>Browser: Add Layer
Browser->>Canvas: Render Layer
User->>Browser: Export PNG
Canvas->>Browser: Generate Image Data
Browser->>FileSystem: Save File
FileSystem-->>User: Download PNG
The application operates within the browser security sandbox:
- Same-Origin Policy: All operations respect browser security boundaries
- No External Requests: Zero network activity after initial load
- File API Restrictions: User must explicitly select files
- Canvas Tainting: Respects CORS policies for image sources
xsukax-Overlay-Studio/
β
βββ index.html # Complete application (single file)
β βββ HTML Structure # Document markup
β βββ CSS Styles # Embedded styling
β βββ JavaScript # Application logic
β
βββ README.md # This documentation
βββ LICENSE # GPL v3.0 license text
Potential features for future versions:
- Undo/Redo functionality
- Layer grouping and naming
- Text shadow and stroke effects
- Image filters (blur, brightness, contrast)
- Gradient and pattern fills
- Shape drawing tools (rectangles, circles, lines)
- Export to multiple formats (JPEG, WebP, SVG)
- Batch processing capabilities
- Template system
- Keyboard shortcuts
- Grid and snap-to-grid
- Alignment guides
Contributions are welcome! To contribute to xsukax Overlay Studio:
- Fork the repository
- Create a feature branch (
git checkout -b feature/AmazingFeature) - Make your changes to
index.html - Test thoroughly across multiple browsers
- Commit your changes (
git commit -m 'Add AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
- Maintain single-file architecture
- Keep code readable and well-commented
- Preserve privacy-first design principles
- Test in at least 3 modern browsers
- Update README.md if adding features
- Follow existing code style
Issues and Questions:
- Open an issue on GitHub Issues
- Check existing issues before creating new ones
- Provide browser version and steps to reproduce bugs
Community:
- Watch the repository for updates
- Star the project if you find it useful
- Share feedback and feature requests
This project is licensed under the GNU General Public License v3.0.
xsukax Overlay Studio - Privacy-focused image overlay editor
Copyright (C) 2025 xsukax
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
- β Freedom to Use: Use the software for any purpose
- β Freedom to Study: Examine and understand how it works
- β Freedom to Modify: Change the software to suit your needs
- β Freedom to Share: Distribute copies to help others
- β Copyleft: Modifications must also be GPL v3.0
For the complete license text, see the LICENSE file or visit GNU GPL v3.0.
- Built with HTML5 Canvas API
- Inspired by modern graphics editing workflows
- Designed with privacy and user sovereignty in mind
- Created for the open-source community
- Repository: https://github.com/xsukax/xsukax-Overlay-Studio
- Issues: https://github.com/xsukax/xsukax-Overlay-Studio/issues
- License: GPL v3.0
Made with β€οΈ for privacy-conscious creators
Your data stays yours. Always.