Overview
Kayston’s Forge includes powerful generators for common development tasks. All generation happens client-side using cryptographically secure random number generators.Available Generators
QR Code Reader/Generator
Generate QR codes from text or URLs. Decode QR codes from uploaded images.
UUID/ULID Generate/Decode
Generate UUID v4, UUID v7, or ULID identifiers. Decode ULIDs to extract timestamps.
Random String Generator
Generate cryptographically secure random strings, tokens, and passphrases.
Lorem Ipsum Generator
Generate placeholder text by word count or paragraph count.
String Inspector
Analyze text to view character count, byte length, encoding, word count, line count, and character frequency.
QR Code Generation
Generate scannable QR codes from any text, URL, or structured data. Example: URL- Plain text
- URLs (automatically creates clickable links when scanned)
- Email addresses (
mailto:links) - Phone numbers (
tel:links) - WiFi credentials (
WIFI:S:<SSID>;T:<WPA/WEP>;P:<password>;;) - vCard contact information
- SMS messages
QR codes are generated using the
qrcode library with error correction level M (medium, ~15% recovery).QR Code Decoding
Upload or drag-and-drop an image containing a QR code to decode it. Supported Image Formats- PNG
- JPEG
- GIF
- WebP
- BMP
UUID & ULID Generation
Generate universally unique identifiers with different characteristics. UUID v4 (Random)- 128-bit identifier
- Cryptographically random
- No embedded timestamp
- ~2^122 possible values
- 128-bit identifier
- Timestamp in first 48 bits
- Sortable by creation time
- Better for database indexing
- Standardized in RFC 9562 (2024)
- 128-bit identifier
- Timestamp in first 48 bits
- Lexicographically sortable
- Case-insensitive
- Crockford’s Base32 encoding (URL-safe, no special characters)
- Monotonic (incrementing within the same millisecond)
Use UUID v7 or ULID for time-series data and database primary keys to improve index performance. Use UUID v4 when you need purely random identifiers with no time information.
Random String Generation
Generate cryptographically secure random strings usingcrypto.getRandomValues().
Available Modes
Alphanumeric (default)
- Length: 1-4096 characters (passphrases use word count: 3-12 words)
- Count: Generate 1-100 strings at once
Lorem Ipsum Generation
Generate placeholder text for mockups and prototypes. By Paragraphs (default)- Paragraphs: 1-1000
- Words: 1-1000
String Inspector
Analyze text to understand its properties and characteristics. Example Analysis- Grapheme count: Visual characters as perceived by humans (emoji count as 1)
- UTF-8 byte length: Storage size in UTF-8 encoding (variable 1-4 bytes per character)
- UTF-16 byte length: Storage size in UTF-16 encoding (mostly 2 bytes per character)
- Line count: Number of lines (separated by
\nor\r\n) - Word count: Number of whitespace-separated tokens
- Encoding: ASCII (7-bit) or UTF-8 (multibyte)
- Character frequency: Top 12 most frequent characters
Grapheme segmentation uses the Intl.Segmenter API to correctly count complex characters like emoji with skin tone modifiers or combining diacritics.
Use Cases
QR Codes- Share URLs at conferences or events
- Encode WiFi credentials for easy sharing
- Create contact cards for business cards
- Generate payment links or cryptocurrency addresses
- Database primary keys (use UUID v7 or ULID for better index performance)
- Request/transaction IDs for distributed systems
- Temporary file names
- Session identifiers
- Resource identifiers in REST APIs
- API keys and tokens
- Temporary passwords
- CSRF tokens
- State parameters for OAuth
- Test data generation
- UI/UX mockups
- Typography testing
- Content length estimation
- Placeholder content during development
- Validate input length constraints (e.g., database varchar limits)
- Debug encoding issues
- Analyze text for internationalization
- Estimate storage requirements
- Identify unexpected characters
Best Practices
UUID Selection GuideUUID v4
Use when you need maximum randomness and no time correlation
UUID v7
Use for database primary keys and time-series data
ULID
Use when you need URL-safe, human-readable, sortable IDs
- For security tokens, use at least 32 characters
- For API keys, use 64+ characters or 256-bit encoded in Base64
- For memorable passwords, use passphrases with 6+ words
- Never use random strings to “encrypt” data (use real encryption)
- Keep content under 200 characters for reliable scanning
- Use high contrast (black on white works best)
- Don’t scale QR codes smaller than 2×2 cm (0.8×0.8 in)
- Test with multiple QR readers before printing
- Add a visual logo/label near the QR code to indicate its purpose
- Verify maximum byte lengths before database insertion
- Check UTF-8 vs UTF-16 size differences for storage optimization
- Debug invisible characters (zero-width spaces, BOM markers)
- Ensure text meets character limits (e.g., SMS 160 chars, Twitter 280 chars)
Privacy & Security
All generators use cryptographically secure random number generation via
crypto.getRandomValues(), not Math.random().UUIDs, ULIDs, and random strings are generated entirely in your browser. No data is transmitted to external servers.
QR code generation and decoding happens client-side. Your QR code content remains private.
Keyboard Shortcuts
Cmd/Ctrl + Enter- Generate new valueCmd/Ctrl + Shift + C- Copy outputCmd/Ctrl + K- Switch tools
Related Tools
- Hash Generator - Generate MD5, SHA-1, SHA-256, SHA-512 hashes
- Base64 String Encode/Decode - Encode/decode Base64 strings
- RegExp Tester - Test regular expressions with pattern matching