[{"data":1,"prerenderedAt":882},["ShallowReactive",2],{"sidebar-categories":3,"blog-cron-syntax-across-platforms":722,"$f1fcSx9ZkUx3oJpVVjBr8S9ZYl5Pqzqo4Le5OY7Ube48":734},[4,62,94,160,251,384,521,609,649,665,697],{"id":5,"name":6,"slug":7,"icon":8,"description":9,"content":10,"sort_order":11,"created_at":12,"updated_at":13,"tools":14},227,"Text Tools","text-tools","📝","Tools for text manipulation and analysis","Manipulate, analyze and transform text instantly. From case conversion and whitespace cleanup to word count and string diffing — these tools handle the everyday text tasks developers and writers run into constantly. No server round-trips; everything processes locally in your tab.",0,"2026-04-29T18:14:48.000000Z","2026-04-30T12:24:54.000000Z",[15,26,35,44,53],{"id":16,"category_id":5,"name":17,"slug":18,"description":19,"meta_title":20,"meta_description":21,"component_name":22,"is_premium":23,"is_server_side":23,"is_published":24,"sort_order":25},1868,"Text to Slug","text-to-slug","Convert any text into a URL-friendly slug. Handles special characters, accents, and unicode.","Text to Slug Converter - Generate URL-Friendly Slugs Online","Free online tool to convert text into clean, URL-friendly slugs. Handles special characters, accents, spaces and unicode automatically.","TextToSlug",false,true,1,{"id":27,"category_id":5,"name":28,"slug":29,"description":30,"meta_title":31,"meta_description":32,"component_name":33,"is_premium":23,"is_server_side":23,"is_published":24,"sort_order":34},1869,"Lorem Ipsum Generator","lorem-ipsum-generator","Generate placeholder text for your designs and mockups. Choose paragraphs, sentences, or words.","Lorem Ipsum Generator - Free Placeholder Text Tool","Generate lorem ipsum placeholder text instantly. Choose number of paragraphs, sentences, or words for your designs and mockups.","LoremIpsumGenerator",2,{"id":36,"category_id":5,"name":37,"slug":38,"description":39,"meta_title":40,"meta_description":41,"component_name":42,"is_premium":23,"is_server_side":23,"is_published":24,"sort_order":43},1870,"Word Counter","word-counter","Count words, characters, sentences, and paragraphs in your text. Includes reading time estimation.","Word Counter - Count Words, Characters & Sentences Online","Free online word counter tool. Count words, characters, sentences, paragraphs and estimate reading time instantly.","WordCounter",3,{"id":45,"category_id":5,"name":46,"slug":47,"description":48,"meta_title":49,"meta_description":50,"component_name":51,"is_premium":23,"is_server_side":23,"is_published":24,"sort_order":52},1871,"Case Converter","case-converter","Convert text between camelCase, snake_case, PascalCase, kebab-case, and CONSTANT_CASE instantly.","Case Converter - camelCase, snake_case, PascalCase Online","Free online case converter. Instantly switch text between camelCase, snake_case, PascalCase, kebab-case, and CONSTANT_CASE.","CaseConverter",4,{"id":54,"category_id":5,"name":55,"slug":56,"description":57,"meta_title":58,"meta_description":59,"component_name":60,"is_premium":23,"is_server_side":23,"is_published":24,"sort_order":61},1931,"Whitespace Remover","whitespace-remover","Clean up whitespace from any text — combine transformations (trim lines, remove blank lines, collapse spaces) and choose an output mode (keep lines, join to one line, or strip all whitespace). 100% client-side.","Whitespace Remover — Clean Up Text Online Free","Free online whitespace remover. Trim spaces, remove duplicates, collapse whitespace, strip line breaks. Multiple modes with one click. In your browser.","WhitespaceRemover",6,{"id":63,"name":64,"slug":65,"icon":66,"description":67,"content":68,"sort_order":25,"created_at":12,"updated_at":13,"tools":69},228,"Encoders & Decoders","encoders-decoders","🔄","Encode and decode data in various formats","Encode and decode data between formats without sending anything to a server. Base64, URL encoding, HTML entities, JWT inspection — all done client-side so sensitive tokens or payloads never leave your browser.",[70,78,86],{"id":71,"category_id":63,"name":72,"slug":73,"description":74,"meta_title":75,"meta_description":76,"component_name":77,"is_premium":23,"is_server_side":23,"is_published":24,"sort_order":25},1872,"Base64 Encoder\u002FDecoder","base64-encoder-decoder","Encode text to Base64 or decode Base64 strings back to plain text.","Base64 Encoder & Decoder - Encode\u002FDecode Base64 Online","Free online Base64 encoder and decoder. Convert text to Base64 encoding or decode Base64 strings instantly.","Base64EncoderDecoder",{"id":79,"category_id":63,"name":80,"slug":81,"description":82,"meta_title":83,"meta_description":84,"component_name":85,"is_premium":23,"is_server_side":23,"is_published":24,"sort_order":34},1873,"HTML Encoder\u002FDecoder","html-encoder-decoder","Encode special HTML characters to entities or decode HTML entities back to characters.","HTML Encoder & Decoder - Encode\u002FDecode HTML Entities Online","Free online HTML entity encoder and decoder. Convert special characters to HTML entities or decode them back.","HtmlEncoderDecoder",{"id":87,"category_id":63,"name":88,"slug":89,"description":90,"meta_title":91,"meta_description":92,"component_name":93,"is_premium":23,"is_server_side":23,"is_published":24,"sort_order":43},1874,"URL Encoder\u002FDecoder","url-encoder-decoder","Encode or decode URLs and query parameters. Handles percent-encoding for safe URL transmission.","URL Encoder & Decoder - Encode\u002FDecode URLs Online","Free online URL encoder and decoder. Percent-encode URLs and query parameters or decode them instantly.","UrlEncoderDecoder",{"id":95,"name":96,"slug":97,"icon":98,"description":99,"content":100,"sort_order":34,"created_at":12,"updated_at":13,"tools":101},229,"Generators","generators","⚡","Generate hashes, passwords, UUIDs and more","Generate the boilerplate you need in seconds. Strong random passwords, UUIDs, Lorem Ipsum placeholder text, QR codes and more. Every generator runs fully offline — no tracking, no account, no rate limits.",[102,110,118,126,134,143,151],{"id":103,"category_id":95,"name":104,"slug":105,"description":106,"meta_title":107,"meta_description":108,"component_name":109,"is_premium":23,"is_server_side":23,"is_published":24,"sort_order":25},1875,"MD5 Hash Generator","md5-hash-generator","Generate MD5 hash from any text input. Useful for checksums and data verification.","MD5 Hash Generator - Generate MD5 Checksums Online","Free online MD5 hash generator. Create MD5 checksums from any text for data verification and integrity checks.","Md5HashGenerator",{"id":111,"category_id":95,"name":112,"slug":113,"description":114,"meta_title":115,"meta_description":116,"component_name":117,"is_premium":23,"is_server_side":23,"is_published":24,"sort_order":34},1876,"SHA-1 Hash Generator","sha1-hash-generator","Generate SHA-1 hash from any text input. Common for file integrity verification.","SHA-1 Hash Generator - Generate SHA-1 Checksums Online","Free online SHA-1 hash generator. Create SHA-1 checksums from any text instantly. Compare with SHA-256 and MD5. Client-side only, no data sent to servers.","Sha1HashGenerator",{"id":119,"category_id":95,"name":120,"slug":121,"description":122,"meta_title":123,"meta_description":124,"component_name":125,"is_premium":23,"is_server_side":23,"is_published":24,"sort_order":43},1877,"SHA-256 Hash Generator","sha256-hash-generator","Generate SHA-256 hash from any text input. Widely used for security and blockchain applications.","SHA-256 Hash Generator - Generate SHA-256 Hashes Online","Free online SHA-256 hash generator. Create SHA-256 hashes from any text instantly. Compare with SHA-224, SHA-384 and SHA-512. Client-side, no uploads.","Sha256HashGenerator",{"id":127,"category_id":95,"name":128,"slug":129,"description":130,"meta_title":131,"meta_description":132,"component_name":133,"is_premium":23,"is_server_side":23,"is_published":24,"sort_order":52},1878,"Secure Password Generator","password-generator","Generate strong, random passwords with customizable length and character types.","Secure Password Generator - Create Strong Passwords Online","Generate strong, random passwords with custom length, uppercase, lowercase, numbers and special characters.","PasswordGenerator",{"id":135,"category_id":95,"name":136,"slug":137,"description":138,"meta_title":139,"meta_description":140,"component_name":141,"is_premium":23,"is_server_side":23,"is_published":24,"sort_order":142},1879,"Favicon Generator","favicon-generator","Upload any image and generate a complete favicon package: ICO, PNG sizes for all devices, and the HTML code to paste.","Favicon Generator - 100% Browser-Based, No Upload","Free favicon generator, 100% in your browser. Pick a PNG or SVG and get the full package: favicon.ico, apple-touch-icon, PWA icons and the HTML head code.","FaviconGenerator",5,{"id":144,"category_id":95,"name":145,"slug":146,"description":147,"meta_title":148,"meta_description":149,"component_name":150,"is_premium":23,"is_server_side":23,"is_published":24,"sort_order":61},1880,"BCrypt Generator","bcrypt-generator","Generate and verify bcrypt hashes entirely in your browser. Choose cost factor 4–12.","BCrypt Generator - Generate & Verify BCrypt Hashes Online","Free BCrypt hash generator and verifier. Choose cost factor (4-15), generate hashes, verify passwords against existing hashes. All in your browser.","BcryptGenerator",{"id":152,"category_id":95,"name":153,"slug":154,"description":155,"meta_title":156,"meta_description":157,"component_name":158,"is_premium":23,"is_server_side":23,"is_published":24,"sort_order":159},1932,"SHA-512 Hash Generator","sha512-hash-generator","Generate SHA-512 hash from any text input. 128-character hex digest computed 100% in your browser.","SHA-512 Hash Generator - Generate SHA-512 Hashes Online","Free online SHA-512 hash generator. Create a 128-character SHA-512 hash from any text instantly, 100% client-side. Compare SHA-512 vs SHA-256 and learn when to use each.","Sha512HashGenerator",7,{"id":161,"name":162,"slug":163,"icon":164,"description":165,"content":166,"sort_order":43,"created_at":12,"updated_at":13,"tools":167},230,"Web Tools","web-tools","🌐","Tools for web development and analysis","Essential utilities for web developers: inspect and analyze meta tags for any URL, validate Open Graph previews, check HTTP headers, explore DNS records and test canonical URLs. Speed up your debugging and SEO workflows.",[168,176,184,192,200,208,216,224,233,242],{"id":169,"category_id":161,"name":170,"slug":171,"description":172,"meta_title":173,"meta_description":174,"component_name":175,"is_premium":23,"is_server_side":24,"is_published":24,"sort_order":25},1881,"What Is My IP","what-is-my-ip","Discover your public IP address, location, ISP, and other network information.","What Is My IP Address - Find Your Public IP Online","Find your public IP address instantly. See your IPv4\u002FIPv6, location, ISP, browser and OS. Free tool, no tracking, no registration. Works on any device.","WhatIsMyIp",{"id":177,"category_id":161,"name":178,"slug":179,"description":180,"meta_title":181,"meta_description":182,"component_name":183,"is_premium":23,"is_server_side":24,"is_published":24,"sort_order":34},1882,"Meta Tags Analyzer","meta-tags-analyzer","Analyze the meta tags of any webpage. Check title, description, Open Graph, and Twitter Card tags.","Meta Tags Analyzer - Check Meta Tags of Any Webpage","Free online meta tags analyzer. Check title, description, Open Graph and Twitter Card meta tags of any URL.","MetaTagsAnalyzer",{"id":185,"category_id":161,"name":186,"slug":187,"description":188,"meta_title":189,"meta_description":190,"component_name":191,"is_premium":23,"is_server_side":23,"is_published":24,"sort_order":43},1883,"IP Subnet Calculator","ip-subnet-calculator","Calculate network address, broadcast IP, host range, and subnet mask from any CIDR notation.","IP Subnet Calculator - No Data Sent to a Server (Free)","Free IP subnet calculator. Runs entirely in your browser, so no IP data leaves your machine. Enter an IP and CIDR to get the network and host range.","IpSubnetCalculator",{"id":193,"category_id":161,"name":194,"slug":195,"description":196,"meta_title":197,"meta_description":198,"component_name":199,"is_premium":23,"is_server_side":23,"is_published":24,"sort_order":52},1884,"HTTP Status Codes","http-status-codes","Quick reference for all HTTP status codes (1xx–5xx) with descriptions and usage notes.","HTTP Status Codes - All 1xx, 2xx, 3xx, 4xx & 5xx Explained","Complete HTTP status code reference: every 1xx, 2xx, 3xx, 4xx and 5xx code with its meaning, when to use it and a common example.","HttpStatusCodes",{"id":201,"category_id":161,"name":202,"slug":203,"description":204,"meta_title":205,"meta_description":206,"component_name":207,"is_premium":23,"is_server_side":23,"is_published":24,"sort_order":142},1885,"URL Parser","url-parser","Break down any URL into its components: protocol, host, port, path, query parameters, and hash.","URL Parser - Decode & Analyze URL Components Online","Free URL parser. Instantly break down any URL into protocol, host, port, pathname, query parameters table, and fragment. No sign-up needed.","UrlParser",{"id":209,"category_id":161,"name":210,"slug":211,"description":212,"meta_title":213,"meta_description":214,"component_name":215,"is_premium":23,"is_server_side":23,"is_published":24,"sort_order":61},1886,".gitignore Generator","gitignore-generator","Select your OS, IDE, and frameworks to instantly generate a clean .gitignore file.","Gitignore Generator - Create & Download .gitignore Files","Free .gitignore generator. Pick your OS, editor and languages or frameworks to build a complete .gitignore file, then download or copy it instantly.","GitignoreGenerator",{"id":217,"category_id":161,"name":218,"slug":219,"description":220,"meta_title":221,"meta_description":222,"component_name":223,"is_premium":23,"is_server_side":23,"is_published":24,"sort_order":159},1887,"Aspect Ratio Calculator","aspect-ratio-calculator","Calculate proportional dimensions for images and videos. Enter width, height, or ratio to instantly get the missing value. Common presets: 16:9, 4:3, 1:1, 3:2.","Aspect Ratio Calculator - Image, Video & Print (16:9, 4:3)","Free aspect ratio calculator for images, video and print. Enter a width, height or ratio to get the missing value, with presets for 16:9, 4:3 and 1:1.","AspectRatioCalculator",{"id":225,"category_id":161,"name":226,"slug":227,"description":228,"meta_title":229,"meta_description":230,"component_name":231,"is_premium":23,"is_server_side":23,"is_published":24,"sort_order":232},1888,"SSL Certificate Decoder","ssl-certificate-decoder","Decode and inspect SSL\u002FTLS certificates. Paste a PEM or CRT file to extract domain, issuer, expiry date, SANs, and fingerprints — entirely in your browser.","SSL Certificate Decoder - Decode PEM\u002FCRT Locally, No Upload","Free SSL certificate decoder. Paste a .pem or .crt to see the domain, CA, expiry, SANs and SHA-256 fingerprint. Decoded locally, never uploaded.","SslCertificateDecoder",8,{"id":234,"category_id":161,"name":235,"slug":236,"description":237,"meta_title":238,"meta_description":239,"component_name":240,"is_premium":23,"is_server_side":23,"is_published":24,"sort_order":241},1934,"Robots.txt Generator","robots-txt-generator","Generate a valid robots.txt file in seconds. Select search and AI crawler bots, define allow\u002Fdisallow paths, set crawl-delay, and add your sitemap. Download or copy instantly.","Robots.txt Generator - Create robots.txt File Online","Free robots.txt generator. Select search and AI crawler bots (GPTBot, Claude-Web, Google-Extended), set allow\u002Fdisallow rules, crawl-delay and sitemap URL. Download instantly.","RobotsTxtGenerator",10,{"id":243,"category_id":161,"name":244,"slug":245,"description":246,"meta_title":247,"meta_description":248,"component_name":249,"is_premium":23,"is_server_side":23,"is_published":24,"sort_order":250},1937,"DNS Lookup","dns-lookup","Query DNS records for any domain — A, AAAA, MX, TXT, NS, CNAME, SOA, and CAA. Uses Cloudflare DNS-over-HTTPS for fast and private lookups without leaving your browser.","DNS Lookup - Query DNS Records Online Free","Free DNS lookup tool. Query A, AAAA, MX, TXT, NS, CNAME, SOA and CAA records for any domain. Uses Cloudflare DoH — fast, private, no server-side processing.","DnsLookup",13,{"id":252,"name":253,"slug":254,"icon":255,"description":256,"content":257,"sort_order":52,"created_at":12,"updated_at":13,"tools":258},231,"Converters","converters","🔀","Convert between different data formats","Convert data between formats with zero friction. JSON ↔ YAML, Markdown → HTML, timestamps → human-readable dates, color formats and more. Paste your input and get the output instantly.",[259,267,275,283,291,299,307,315,323,332,340,349,357,366,375],{"id":260,"category_id":252,"name":261,"slug":262,"description":263,"meta_title":264,"meta_description":265,"component_name":266,"is_premium":23,"is_server_side":23,"is_published":24,"sort_order":25},1889,"SVG to Data URI","svg-to-data-uri","Convert SVG code to a Data URI for use in CSS or HTML. Optimizes and encodes your SVG.","SVG to Data URI Converter - Convert SVG to Base64 URI Online","Free online SVG to Data URI converter. Convert SVG code to base64 data URIs for CSS backgrounds and HTML images.","SvgToDataUri",{"id":268,"category_id":252,"name":269,"slug":270,"description":271,"meta_title":272,"meta_description":273,"component_name":274,"is_premium":23,"is_server_side":23,"is_published":24,"sort_order":34},1890,"Color Converter","color-converter","Convert colors between HEX, RGB, and HSL formats. Includes live color preview.","Color Converter - HEX, RGB, HSL Color Conversion Online","Free online color converter. Convert between HEX, RGB, HSL, HSV, CMYK and named colors. Live preview, color picker, copy-to-clipboard. For web designers.","ColorConverter",{"id":276,"category_id":252,"name":277,"slug":278,"description":279,"meta_title":280,"meta_description":281,"component_name":282,"is_premium":23,"is_server_side":23,"is_published":24,"sort_order":43},1891,"Unix Timestamp Converter","timestamp-converter","Convert Unix timestamps to human-readable dates and vice versa. Supports seconds and milliseconds.","Unix Timestamp Converter - Convert Timestamps Online","Free online Unix timestamp converter. Convert timestamps to dates and dates to timestamps instantly.","TimestampConverter",{"id":284,"category_id":252,"name":285,"slug":286,"description":287,"meta_title":288,"meta_description":289,"component_name":290,"is_premium":23,"is_server_side":23,"is_published":24,"sort_order":52},1892,"Markdown ↔ HTML","markdown-to-html","Bidirectional converter: turn Markdown into clean HTML with live preview, or convert HTML back to Markdown with configurable output options (heading style, code blocks, bullets). 100% client-side.","Markdown ↔ HTML Converter - Bidirectional MD to HTML Online","Free online Markdown ↔ HTML converter. Convert Markdown to HTML with live preview, or HTML to Markdown with customizable output options. No server upload — 100% private.","MarkdownToHtml",{"id":292,"category_id":252,"name":293,"slug":294,"description":295,"meta_title":296,"meta_description":297,"component_name":298,"is_premium":23,"is_server_side":23,"is_published":24,"sort_order":142},1893,"CSV ↔ JSON","csv-to-json","Convert CSV to JSON and JSON to CSV. Handles headers, custom delimiters, and quoted fields.","CSV to JSON Converter (and JSON to CSV) - Online Free","Free online CSV ↔ JSON converter. Transform CSV data into JSON format or export JSON arrays to CSV. Supports custom delimiters and headers.","CsvToJson",{"id":300,"category_id":252,"name":301,"slug":302,"description":303,"meta_title":304,"meta_description":305,"component_name":306,"is_premium":23,"is_server_side":23,"is_published":24,"sort_order":61},1894,"JSON ↔ YAML","json-yaml-converter","Convert JSON to YAML and YAML to JSON instantly. Essential for CI\u002FCD pipelines, Docker, and Kubernetes configs.","JSON to YAML Converter - Convert JSON ↔ YAML Online","Free online JSON to YAML and YAML to JSON converter. Essential for engineers working with Docker, Kubernetes, and CI\u002FCD pipelines.","JsonYamlConverter",{"id":308,"category_id":252,"name":309,"slug":310,"description":311,"meta_title":312,"meta_description":313,"component_name":314,"is_premium":23,"is_server_side":23,"is_published":24,"sort_order":159},1895,"Number Base Converter","number-base-converter","Convert numbers between Binary, Decimal, Octal, and Hexadecimal instantly.","Number Base Converter - Binary, Decimal, Hex, Octal Online","Free online number base converter. Instantly convert between binary, decimal, hexadecimal and octal. Works with large numbers.","NumberBaseConverter",{"id":316,"category_id":252,"name":317,"slug":318,"description":319,"meta_title":320,"meta_description":321,"component_name":322,"is_premium":23,"is_server_side":23,"is_published":24,"sort_order":232},1896,"Image to Base64","image-to-base64","Convert any image (JPG, PNG, GIF, SVG, WebP) to Base64 or data URI. Paste directly in CSS or HTML.","Image to Base64 Converter - Data URI Generator Online","Free online image to Base64 converter. Upload JPG, PNG, GIF, SVG or WebP and get the Base64 string or data URI instantly. No upload to server.","ImageToBase64",{"id":324,"category_id":252,"name":325,"slug":326,"description":327,"meta_title":328,"meta_description":329,"component_name":330,"is_premium":23,"is_server_side":23,"is_published":24,"sort_order":331},1897,"WebP Converter","webp-converter","Convert JPG, PNG, GIF, and BMP images to WebP format directly in your browser. Control quality and download instantly.","WebP Converter - Convert Images to WebP Online Free","Free online WebP converter. Convert JPG, PNG, GIF or BMP to WebP in your browser. Adjust quality, see file size savings, and download instantly. No upload to server.","WebpConverter",9,{"id":333,"category_id":252,"name":334,"slug":335,"description":336,"meta_title":337,"meta_description":338,"component_name":339,"is_premium":23,"is_server_side":23,"is_published":24,"sort_order":241},1898,"PX to REM Converter","px-to-rem","Convert px to rem and rem to px instantly. Set a custom base font size for accurate results.","PX to REM Converter - Convert Pixels to Rem (base 16px)","Free PX to REM converter. Convert pixels to rem and rem to px instantly with a custom base font size (default 16px), plus a full conversion table.","PxToRem",{"id":341,"category_id":252,"name":342,"slug":343,"description":344,"meta_title":345,"meta_description":346,"component_name":347,"is_premium":23,"is_server_side":23,"is_published":24,"sort_order":348},1899,"JSON ↔ XML Converter","json-to-xml","Convert JSON to XML and XML to JSON. Handles nested objects, attributes, and arrays. Essential for enterprise integrations, SOAP APIs, and legacy systems.","JSON to XML Converter (and XML to JSON) - Online Free","Free JSON ↔ XML converter. Transform JSON data to XML format or parse XML back to JSON. Handles nested structures, custom root element, and attributes.","JsonXmlConverter",11,{"id":350,"category_id":252,"name":351,"slug":352,"description":353,"meta_title":354,"meta_description":355,"component_name":356,"is_premium":23,"is_server_side":23,"is_published":24,"sort_order":250},1945,"ASCII Art Converter","ascii-art-converter","Convert images into colored ASCII art, or render pasted ASCII art and text diagrams back into a downloadable image. 100% client-side, nothing is uploaded.","ASCII Art Converter - Image to ASCII & ASCII to Image Online","Free ASCII art converter. Turn images into colored ASCII art with Classic or Block styles, or render ASCII text and diagrams into a downloadable PNG image.","AsciiArtConverter",{"id":358,"category_id":252,"name":359,"slug":360,"description":361,"meta_title":362,"meta_description":363,"component_name":364,"is_premium":23,"is_server_side":23,"is_published":24,"sort_order":365},1947,"Unit Converter","unit-converter","Convert between common units: temperature (°C, °F, K), length (mm to mi), weight (mg to t), speed (m\u002Fs, km\u002Fh, mph), and storage (B to TB). Instant bidirectional conversion.","Unit Converter - Convert Temperature, Length, Weight Online","Free unit converter. Instantly convert temperature, length, weight, speed, and storage units. Bidirectional — type in any field.","UnitConverter",15,{"id":367,"category_id":252,"name":368,"slug":369,"description":370,"meta_title":371,"meta_description":372,"component_name":373,"is_premium":23,"is_server_side":23,"is_published":24,"sort_order":374},1948,"Roman Numeral Converter","roman-numeral-converter","Convert decimal numbers to Roman numerals (1-3999) and back instantly, with symbol reference tables.","Roman Numeral Converter - Decimal to Roman & Back (1-3999)","Free Roman numeral converter (1–3999). Convert decimal numbers to Roman numerals and back instantly, with a full reference chart.","RomanNumeralConverter",16,{"id":376,"category_id":252,"name":377,"slug":378,"description":379,"meta_title":380,"meta_description":381,"component_name":382,"is_premium":23,"is_server_side":23,"is_published":24,"sort_order":383},1950,"Color Palette Generator","color-palette-generator","Generate harmonious color palettes from any base color using color theory. Choose analogous, complementary, triadic, split-complementary, tetradic, or monochromatic harmony.","Color Palette Generator - Create Harmonious Color Schemes Online","Free color palette generator. Create harmonious schemes (analogous, complementary, triadic, tetradic) from any color. Get HEX, RGB, HSL. Copy with one click.","ColorPaletteGenerator",18,{"id":385,"name":386,"slug":387,"icon":388,"description":389,"content":390,"sort_order":142,"created_at":12,"updated_at":13,"tools":391},232,"Developer Tools","developer-tools","💻","Essential tools for software developers","A swiss-army knife for developers: test regular expressions with live matches, pretty-print and validate JSON, minify or beautify code, inspect JWTs, diff files and more — all without leaving the browser.",[392,400,408,416,424,432,440,448,456,464,472,480,488,496,505,513],{"id":393,"category_id":385,"name":394,"slug":395,"description":396,"meta_title":397,"meta_description":398,"component_name":399,"is_premium":23,"is_server_side":23,"is_published":24,"sort_order":11},1901,"JSON Formatter","json-formatter","Format and minify JSON data. Syntax highlighting and one-click access to the JSON Validator for error detection.","JSON Formatter - Beautify & Minify JSON Online | OCMA Tools","Free online JSON formatter. Beautify and minify JSON with syntax highlighting. Click through to the JSON Validator for detailed error checking and invisible character detection.","JsonFormatter",{"id":401,"category_id":385,"name":402,"slug":403,"description":404,"meta_title":405,"meta_description":406,"component_name":407,"is_premium":23,"is_server_side":23,"is_published":24,"sort_order":11},1969,"Umask Calculator","umask-calculator","Convert a umask value into default file and directory permissions, or work out the umask you need from the permissions you want.","Umask Calculator - Default File & Directory Permissions","Free umask calculator. Enter a umask to see the default permissions for new files and directories, or work backwards from the permissions you want.","UmaskCalculator",{"id":409,"category_id":385,"name":410,"slug":411,"description":412,"meta_title":413,"meta_description":414,"component_name":415,"is_premium":23,"is_server_side":23,"is_published":24,"sort_order":11},1970,"Chown Calculator","chown-calculator","Build a chown command to change file or directory ownership: owner, group, recursive, and safety flags like --from.","Chown Calculator - Build a Linux chown Command","Free chown calculator. Build a chown command with owner, group, recursive and safety flags. Copy it and run it on your server.","ChownCalculator",{"id":417,"category_id":385,"name":418,"slug":419,"description":420,"meta_title":421,"meta_description":422,"component_name":423,"is_premium":23,"is_server_side":23,"is_published":24,"sort_order":25},1966,"JSON Validator","json-validator","Validate JSON with invisible character detection and detailed error explanations.","JSON Validator - Detect Invisible Characters & Syntax Errors | OCMA Tools","Free online JSON validator that detects invisible characters, hidden Unicode, and syntax errors with exact position and byte-level detail.","JsonValidator",{"id":425,"category_id":385,"name":426,"slug":427,"description":428,"meta_title":429,"meta_description":430,"component_name":431,"is_premium":23,"is_server_side":23,"is_published":24,"sort_order":34},1902,"JWT Decoder","jwt-decoder","Decode and inspect JSON Web Tokens. View header, payload, and signature information.","JWT Decoder - Inspect Tokens Without Sending Them Anywhere","Free JWT decoder. Inspect the header, payload and claims of any JSON Web Token. Decoded in your browser, so the token is never sent anywhere.","JwtDecoder",{"id":433,"category_id":385,"name":434,"slug":435,"description":436,"meta_title":437,"meta_description":438,"component_name":439,"is_premium":23,"is_server_side":23,"is_published":24,"sort_order":43},1903,"UUID Generator","uuid-generator","Generate random UUIDs (v4). Create single or multiple unique identifiers instantly.","Random UUID Generator - Generate UUID v4 Online Free","Free random UUID v4 generator. Create 128-bit unique identifiers (GUIDs) for your apps instantly. Nothing is sent to a server.","UuidGenerator",{"id":441,"category_id":385,"name":442,"slug":443,"description":444,"meta_title":445,"meta_description":446,"component_name":447,"is_premium":23,"is_server_side":23,"is_published":24,"sort_order":52},1904,"QR Code Generator","qr-code-generator","Generate downloadable QR codes from any URL or text. Export as SVG or PNG directly in your browser.","QR Code Generator - Create QR Codes Online Free","Free online QR code generator. Create QR codes from URLs or text and download as SVG or PNG. No sign-up required.","QrCodeGenerator",{"id":449,"category_id":385,"name":450,"slug":451,"description":452,"meta_title":453,"meta_description":454,"component_name":455,"is_premium":23,"is_server_side":23,"is_published":24,"sort_order":142},1905,"Regex Tester","regex-tester","Test regular expressions against text in real-time. See matches highlighted with capture groups.","Regex Tester - Test Regular Expressions Online","Free online regex tester. Test and debug regular expressions with real-time matching and capture groups.","RegexTester",{"id":457,"category_id":385,"name":458,"slug":459,"description":460,"meta_title":461,"meta_description":462,"component_name":463,"is_premium":23,"is_server_side":23,"is_published":24,"sort_order":142},1925,"JSON Schema Generator","json-schema-generator","Paste any JSON and instantly generate a valid JSON Schema (Draft-07). Use it for LLM structured outputs, API validation, Zod schemas, Pydantic models, or form validation.","JSON Schema Generator - Create Draft-07 Schemas from JSON","Free JSON Schema generator. Paste any JSON and get a valid Draft-07 schema in seconds. Detects types, formats (Email, UUID, Date, URI), nested objects, and arrays. Perfect for OpenAI structured outputs, API validation, and Zod forms.","JsonSchemaGenerator",{"id":465,"category_id":385,"name":466,"slug":467,"description":468,"meta_title":469,"meta_description":470,"component_name":471,"is_premium":23,"is_server_side":23,"is_published":24,"sort_order":61},1906,"Cron Expression Parser","cron-parser","Parse a 5-field cron expression and read it back in plain English. Each field is shown on its own, so you can see which one drives the schedule.","Cron Parser - Parse & Explain Cron Expressions Online","Free cron parser. Paste any cron expression and read it back in plain English, field by field, to check the schedule before you deploy it.","CronParser",{"id":473,"category_id":385,"name":474,"slug":475,"description":476,"meta_title":477,"meta_description":478,"component_name":479,"is_premium":23,"is_server_side":23,"is_published":24,"sort_order":159},1907,"Chmod Calculator","chmod-calculator","Visual Unix permissions calculator. Select Read\u002FWrite\u002FExecute for Owner, Group, and Others to get the numeric value and symbolic notation.","Chmod Calculator - Linux & Unix Permissions Calculator","Free chmod calculator for Linux and Unix. Tick the read, write and execute boxes to get numeric (755, 644) and symbolic (rwxr-xr-x) permissions instantly.","ChmodCalculator",{"id":481,"category_id":385,"name":482,"slug":483,"description":484,"meta_title":485,"meta_description":486,"component_name":487,"is_premium":23,"is_server_side":23,"is_published":24,"sort_order":232},1908,"Diff Checker","diff-checker","Compare two texts and see the differences highlighted. Find additions, deletions, and changes.","Diff Checker - Compare Text Differences Online","Free online diff checker. Compare two texts side by side and see additions, deletions, and changes highlighted.","DiffChecker",{"id":489,"category_id":385,"name":490,"slug":491,"description":492,"meta_title":493,"meta_description":494,"component_name":495,"is_premium":23,"is_server_side":23,"is_published":24,"sort_order":250},1957,"Fake Data Generator","fake-data-generator","Generate realistic fake JSON data for testing and prototyping. Build a custom schema with names, emails, UUIDs, dates, and more — then generate as many rows as you need.","Fake Data Generator - Mock JSON & Test Data Online","Free fake data generator for mock JSON. Create test datasets with names, emails, UUIDs and phone numbers, or build your own schema. No sign-up.","FakeDataGenerator",{"id":497,"category_id":385,"name":498,"slug":499,"description":500,"meta_title":501,"meta_description":502,"component_name":503,"is_premium":23,"is_server_side":23,"is_published":24,"sort_order":504},1942,"Markdown Table Generator","markdown-table-generator","Create Markdown tables visually — add rows and columns, set alignment, and copy the Markdown output. Much easier than formatting pipes and dashes by hand.","Markdown Table Generator - Create Markdown Tables Online","Free Markdown table generator for READMEs and docs. Build tables visually, set column alignment and copy the output. No manual dashes and pipes to type.","MarkdownTableGenerator",14,{"id":506,"category_id":385,"name":507,"slug":508,"description":509,"meta_title":510,"meta_description":511,"component_name":512,"is_premium":23,"is_server_side":23,"is_published":24,"sort_order":365},1943,"JSON → TypeScript Interface","json-to-typescript","Generate TypeScript interfaces automatically from any JSON object. Handles nested objects, arrays, nullable values, and optional fields. Paste JSON and get ready-to-use TypeScript.","JSON to TypeScript - Generate TS Interfaces & Types Online","Free JSON to TypeScript generator, 100% client-side. Paste JSON and get TS interfaces instantly, including nested objects, arrays and optional fields.","JsonToTypescript",{"id":514,"category_id":385,"name":515,"slug":516,"description":517,"meta_title":518,"meta_description":519,"component_name":520,"is_premium":23,"is_server_side":23,"is_published":24,"sort_order":374},1944,"Code Screenshot","code-screenshot","Turn any code snippet into a beautiful screenshot image. Choose theme (Dracula, VS Code, One Dark…), gradient background, font, line numbers, and window chrome. Export as PNG. 100% client-side.","Code Screenshot Generator - Beautiful Code Images Online","Free code screenshot tool. Generate beautiful code images with syntax highlighting, gradient backgrounds, and window chrome. Export as PNG. No signup required.","CodeScreenshot",{"id":522,"name":523,"slug":524,"icon":525,"description":526,"content":527,"sort_order":61,"created_at":12,"updated_at":13,"tools":528},233,"Formatters","formatters","📐","Format and beautify code and data","Paste messy, minified or hand-written code and get it back clean and consistently indented. Supports JSON, XML, HTML, CSS, SQL and more. Great for code reviews, debugging API responses or just tidying things up.",[529,537,545,553,561,569,577,585,593,601],{"id":530,"category_id":522,"name":531,"slug":532,"description":533,"meta_title":534,"meta_description":535,"component_name":536,"is_premium":23,"is_server_side":23,"is_published":24,"sort_order":11},1965,"CSS Loader Generator","css-loader-generator","Generate CSS loaders and spinners — spinner, dots, pulse, bars, and ripple. Customize color, size, speed, and thickness. Copy the HTML and CSS with one click.","CSS Loader Generator - Free Animated Loading Spinners","Free CSS loader generator. Pick a spinner style, tune the color, size and speed, preview it live and copy the CSS or HTML.","CssLoaderGenerator",{"id":538,"category_id":522,"name":539,"slug":540,"description":541,"meta_title":542,"meta_description":543,"component_name":544,"is_premium":23,"is_server_side":23,"is_published":24,"sort_order":25},1909,"CSS Minifier\u002FBeautifier","css-formatter","Minify CSS to reduce file size or beautify compressed CSS for readability.","CSS Minifier & Beautifier - Format CSS Online","Free online CSS minifier and beautifier. Minify CSS for production or beautify compressed code. Supports nested CSS, media queries. Client-side only.","CssFormatter",{"id":546,"category_id":522,"name":547,"slug":548,"description":549,"meta_title":550,"meta_description":551,"component_name":552,"is_premium":23,"is_server_side":23,"is_published":24,"sort_order":34},1910,"HTML Prettifier","html-prettifier","Format and indent HTML code for better readability. Fix messy HTML structure.","HTML Prettifier - Format & Indent HTML Online","Free online HTML prettifier. Clean up messy HTML with automatic indentation, tag balancing and attribute sorting. Supports HTML5, Vue templates, JSX.","HtmlPrettifier",{"id":554,"category_id":522,"name":555,"slug":556,"description":557,"meta_title":558,"meta_description":559,"component_name":560,"is_premium":23,"is_server_side":23,"is_published":24,"sort_order":43},1911,"SQL Formatter","sql-formatter","Format SQL queries with proper indentation and keyword highlighting for better readability.","SQL Formatter & Beautifier - Format SQL in Your Browser","Free SQL formatter. Break any query onto its own clauses and indent the conditions. It runs entirely in your browser, so nothing is sent to a server.","SqlFormatter",{"id":562,"category_id":522,"name":563,"slug":564,"description":565,"meta_title":566,"meta_description":567,"component_name":568,"is_premium":23,"is_server_side":23,"is_published":24,"sort_order":52},1912,"XML Formatter","xml-formatter","Format and indent XML documents. Validate XML syntax and structure.","XML Formatter - Format & Validate XML Online","Free online XML formatter and validator. Beautify, indent, minify and validate XML documents. Custom indentation, tree view, node collapse. Client-side.","XmlFormatter",{"id":570,"category_id":522,"name":571,"slug":572,"description":573,"meta_title":574,"meta_description":575,"component_name":576,"is_premium":23,"is_server_side":23,"is_published":24,"sort_order":142},1913,"CSS Gradient Generator","css-gradient-generator","Generate CSS linear, radial, and conic gradients with a visual editor. Copy the CSS instantly.","CSS Gradient Generator - Linear, Radial & Conic Online","Free CSS gradient generator. Create beautiful linear, radial, and conic gradients visually. Copy the CSS code instantly.","CssGradientGenerator",{"id":578,"category_id":522,"name":579,"slug":580,"description":581,"meta_title":582,"meta_description":583,"component_name":584,"is_premium":23,"is_server_side":23,"is_published":24,"sort_order":61},1914,"CSS Grid Generator","css-grid-generator","Generate CSS Grid layouts visually. Define rows, columns, and gaps, then copy the ready-to-use CSS.","CSS Grid Generator - Visual CSS Grid Layout Builder Online","Free CSS Grid generator. Visually define your grid columns, rows, gaps and alignment. Generate and copy the CSS code instantly.","CssGridGenerator",{"id":586,"category_id":522,"name":587,"slug":588,"description":589,"meta_title":590,"meta_description":591,"component_name":592,"is_premium":23,"is_server_side":23,"is_published":24,"sort_order":159},1915,"Box Shadow Generator","box-shadow-generator","Visual CSS box-shadow generator with live preview. Control offset, blur, spread, color, and opacity with sliders. Add multiple shadow layers and copy the CSS instantly.","Box Shadow Generator - CSS Builder, Maker & Inset Shadows","Free CSS box shadow generator. Adjust X, Y, blur, spread, color and opacity with live preview. Supports inset and multi-layer shadows, then copy the CSS.","BoxShadowGenerator",{"id":594,"category_id":522,"name":595,"slug":596,"description":597,"meta_title":598,"meta_description":599,"component_name":600,"is_premium":23,"is_server_side":23,"is_published":24,"sort_order":232},1916,"Border Radius Generator","border-radius-generator","Visual CSS border-radius generator with independent sliders for each corner. Live preview with presets for common shapes like pill, rounded, and more.","CSS Border Radius Generator - Visual Corner Radius Tool","Free CSS border-radius generator. Independent sliders for each corner with live preview. Includes presets for pill, rounded, and custom shapes.","BorderRadiusGenerator",{"id":602,"category_id":522,"name":603,"slug":604,"description":605,"meta_title":606,"meta_description":607,"component_name":608,"is_premium":23,"is_server_side":23,"is_published":24,"sort_order":331},1958,"Flexbox Generator","flexbox-generator","Visual flexbox playground — adjust container and child properties (flex-direction, justify-content, align-items, gap, flex-grow, etc.) and see the result live. Generates ready-to-use CSS.","Flexbox Generator - Visual CSS Flexbox Playground Online","Free visual CSS Flexbox playground. Tweak flex-direction, justify-content, align-items and gap with live preview. See code update in real time.","FlexboxGenerator",{"id":610,"name":611,"slug":612,"icon":613,"description":614,"content":615,"sort_order":159,"created_at":12,"updated_at":13,"tools":616},234,"Image Tools","image-tools","🖼️","Client-side image processing tools — compress, convert, and generate images directly in your browser","Quick browser-based image utilities: resize, convert between formats (PNG, JPEG, WebP), compress for the web, extract colors and generate placeholders. Your images are processed entirely on-device and never uploaded anywhere.",[617,625,633,641],{"id":618,"category_id":610,"name":619,"slug":620,"description":621,"meta_title":622,"meta_description":623,"component_name":624,"is_premium":23,"is_server_side":23,"is_published":24,"sort_order":34},1918,"Image Compressor","image-compressor","Compress and convert JPG, PNG, and WebP images directly in your browser. Adjust quality, switch output formats, and compare originals side by side with a slider. Open the full-size inspector to zoom and pan for pixel-level comparison. No upload to servers — your images stay private.","Image Compressor - Compress JPG & PNG Online Free","Free client-side image compressor. Reduce JPG, PNG and WebP file sizes. Bulk compress, preview before download, lossy and lossless modes. All in browser.","ImageCompressor",{"id":626,"category_id":610,"name":627,"slug":628,"description":629,"meta_title":630,"meta_description":631,"component_name":632,"is_premium":23,"is_server_side":23,"is_published":24,"sort_order":52},1920,"Image Resizer","image-resizer","Resize images to exact dimensions right in your browser. Lock aspect ratio, choose output format (JPEG, PNG, WebP) and quality. No upload required.","Image Resizer - Resize Images Online Free","Free online image resizer. Resize JPG, PNG and WebP images to exact dimensions with aspect ratio lock. Download instantly — 100% client-side.","ImageResizer",{"id":634,"category_id":610,"name":635,"slug":636,"description":637,"meta_title":638,"meta_description":639,"component_name":640,"is_premium":23,"is_server_side":23,"is_published":24,"sort_order":142},1959,"Image Cropper","image-cropper","Crop images in your browser using Canvas API. Free-form or fixed aspect ratio (1:1, 4:3, 16:9, 3:2). Drag handles to select crop area and download the result.","Image Cropper - Crop Photos Without Uploading Them","Free image cropper. Crop to any size or aspect ratio (1:1, 4:3, 16:9) with drag handles. It runs entirely in your browser, so your photos are never uploaded.","ImageCropper",{"id":642,"category_id":610,"name":643,"slug":644,"description":645,"meta_title":646,"meta_description":647,"component_name":648,"is_premium":23,"is_server_side":23,"is_published":24,"sort_order":241},1964,"EXIF Metadata Viewer","exif-viewer","Read EXIF metadata from JPEG, PNG, TIFF, WebP, and HEIC images. View camera model, exposure settings, GPS coordinates (with map link), and all embedded metadata. 100% client-side.","EXIF Viewer - Read Photo Metadata & GPS Location (No Upload)","Free EXIF viewer. Read camera, exposure and GPS location from JPEG, TIFF, PNG and HEIC photos. No upload: everything runs in your browser.","ExifViewer",{"id":650,"name":651,"slug":652,"icon":653,"description":654,"content":655,"sort_order":232,"created_at":12,"updated_at":13,"tools":656},235,"AI Tools","ai-tools","🤖","Tools for working smarter with AI and LLMs — token counting, prompt engineering, and cost estimation","AI-assisted utilities that help you write prompts, estimate token counts, compare model outputs and explore embeddings. Practical tools built for developers integrating LLMs into their workflows.",[657],{"id":658,"category_id":650,"name":659,"slug":660,"description":661,"meta_title":662,"meta_description":663,"component_name":664,"is_premium":23,"is_server_side":23,"is_published":24,"sort_order":159},1951,"MCP Tool Builder","mcp-tool-builder","Build MCP (Model Context Protocol) tool definitions visually. Define name, description, and typed input parameters — generates the JSON for your MCP server instantly.","MCP Tool Builder - Create MCP Tool Definitions Online","Free MCP Tool Builder. Create Model Context Protocol tool definitions with a visual form. Generate JSON for Claude Desktop, Cursor, and any MCP-compatible client.","McpToolBuilder",{"id":666,"name":667,"slug":668,"icon":669,"description":670,"content":671,"sort_order":331,"created_at":12,"updated_at":13,"tools":672},236,"PDF Tools","pdf-tools","📄","Merge, split, and optimize PDF files entirely in your browser — no upload required",null,[673,681,689],{"id":674,"category_id":666,"name":675,"slug":676,"description":677,"meta_title":678,"meta_description":679,"component_name":680,"is_premium":23,"is_server_side":23,"is_published":24,"sort_order":25},1927,"PDF Merger","pdf-merger","Combine multiple PDF files into one with page-level control. Preview thumbnails of every page, deselect pages you don't want, drag to reorder files, and download the merged result. 100% client-side — your files never leave your browser.","PDF Merger - Combine PDFs Without Uploading (Free)","Free PDF merger with page preview. Choose which pages to include, reorder files by dragging, then download the result. Runs entirely in your browser.","PdfMerger",{"id":682,"category_id":666,"name":683,"slug":684,"description":685,"meta_title":686,"meta_description":687,"component_name":688,"is_premium":23,"is_server_side":23,"is_published":24,"sort_order":34},1928,"PDF Splitter","pdf-splitter","Split PDFs three ways with page thumbnail preview. Extract specific pages by clicking, define custom ranges (e.g. 1-3, 5, 7-10), or split every N pages into separate files. Download as PDF or ZIP. 100% client-side — your files never leave your browser.","PDF Splitter - Split & Extract PDF Pages Online Free","Free online PDF splitter. Extract pages visually, use range syntax, or split every N pages. Preview pages before extracting. Client-side, no uploads.","PdfSplitter",{"id":690,"category_id":666,"name":691,"slug":692,"description":693,"meta_title":694,"meta_description":695,"component_name":696,"is_premium":23,"is_server_side":23,"is_published":24,"sort_order":43},1929,"PDF Compressor","pdf-compressor","Reduce PDF file size with lossless compression. Remove metadata (author, timestamps, XMP), optimize object streams, and re-encode structure — all without touching content, fonts, or images. 100% client-side — your files never leave your browser.","PDF Compressor - Reduce PDF File Size Online Free","Free online PDF compressor. Reduce file size with lossless optimization. Remove duplicate fonts, compress images, strip metadata. Batch up to 10 files.","PdfCompressor",{"id":698,"name":699,"slug":700,"icon":701,"description":702,"content":703,"sort_order":241,"created_at":704,"updated_at":704,"tools":705},237,"Social Media Tools","social-media-tools","📱","Tools for social media content creation, previewing, and optimization","Create, preview, and optimize content for social media platforms. Preview how your links look when shared, generate images from tweets, resize images for any platform exact dimensions, and find the best hashtags for your posts. All tools run in your browser nothing is uploaded to any server unless explicitly required for fetching external data.","2026-07-13T17:54:41.000000Z",[706,714],{"id":707,"category_id":698,"name":708,"slug":709,"description":710,"meta_title":711,"meta_description":712,"component_name":713,"is_premium":23,"is_server_side":24,"is_published":24,"sort_order":11},1967,"Social Preview Checker","social-preview-checker","Check how your page looks when shared on Twitter\u002FX, Facebook, LinkedIn, Slack, and WhatsApp. Preview Open Graph and Twitter Card tags before publishing.","Social Preview Checker - Preview OG Tags for Twitter, Facebook & LinkedIn","Free social preview checker. See how your page looks when shared on Twitter\u002FX, Facebook, LinkedIn, Slack, and WhatsApp. Test Open Graph and Twitter Card tags before publishing.","SocialPreviewChecker",{"id":715,"category_id":698,"name":716,"slug":717,"description":718,"meta_title":719,"meta_description":720,"component_name":721,"is_premium":23,"is_server_side":23,"is_published":24,"sort_order":11},1968,"Social Media Image Resizer","social-media-image-resizer","Resize images for any social platform: Twitter, Facebook, Instagram, LinkedIn, YouTube, Pinterest. Choose from 10+ presets with exact dimensions. Download as PNG or JPEG.","Social Media Image Resizer - Resize Images for Twitter, Instagram & More","Free social media image resizer. Resize images for Twitter, Facebook, Instagram, LinkedIn, YouTube and Pinterest presets. Download as PNG or JPEG. 100%% client-side.","SocialMediaImageResizer",{"slug":723,"title":724,"description":725,"pubDate":726,"tags":727,"category":731,"readingTime":732,"draft":23,"html":733},"cron-syntax-across-platforms","Five fields or six? Cron syntax across GitHub Actions, Kubernetes, AWS and Quartz","The same cron line means different things on four of the schedulers people use most. The fields agree; the day numbering, the time zone and the overlap policy do not.","2026-09-17T00:00:00.000Z",[728,729,730],"cron","scheduling","devops","DevOps & APIs","7 min read","\u003Cp>A cron line survives a copy and paste into another system. That is the trap. It does not fail the way a typo fails, with a parser complaining on save. It fails later, on the wrong day, in a log nobody is reading.\u003C\u002Fp>\n\u003Cp>The five fields are the part that travels. Everything around them is where the platforms part company, and they make four decisions differently: where the week starts, whether \u003Ccode>?\u003C\u002Fcode> is mandatory, which clock the expression is read against, and what happens when the previous run is still going. The \u003Ca href=\"\u002Fcheatsheets\u002Fcron-expressions\u002F\">field reference\u003C\u002Fa> lists the formats side by side. What follows is why each difference bites.\u003C\u002Fp>\n\u003Ch2>The part that travels\u003C\u002Fh2>\n\u003Cp>POSIX crontab, GitHub Actions and the Kubernetes CronJob all take the same five fields in the same order: minute, hour, day of month, month, day of week. If the expression you have is \u003Ccode>0 9 * * 1-5\u003C\u002Fcode> and the target is one of those three, the schedule survives the move and the \u003Ca href=\"\u002Fblog\u002Fwhat-is-a-cron-expression\u002F\">five-field reading\u003C\u002Fa> still applies.\u003C\u002Fp>\n\u003Cp>Two of the four use a six-field layout, and they are not the same six. Quartz puts seconds in front and shifts everything right; AWS appends a year at the end. Both keep the rest of the order intact, which is what makes the mistake easy: the expression reads as familiar for four or five fields and then diverges at the edge.\u003C\u002Fp>\n\u003Cp>It is also why &quot;cron expression must consist of 6 fields&quot; is an error message people go looking for. It comes from a Java scheduler, Quartz or Spring&#39;s \u003Ccode>@Scheduled\u003C\u002Fcode>, which expects seconds first, and it shows up when someone hands it the five fields they copied out of a crontab.\u003C\u002Fp>\n\u003Ch2>GitHub Actions: UTC, and a floor of five minutes\u003C\u002Fh2>\n\u003Cp>The \u003Ccode>schedule\u003C\u002Fcode> trigger takes five fields and reads them in UTC. Not the runner&#39;s timezone, not the timezone of whoever wrote the workflow file. The \u003Ca href=\"https:\u002F\u002Fdocs.github.com\u002Fen\u002Factions\u002Freference\u002Fworkflows-and-actions\u002Fevents-that-trigger-workflows#schedule\" target=\"_blank\" rel=\"noopener noreferrer\">GitHub documentation\u003C\u002Fa> is flat about it: &quot;By default, scheduled workflows run in UTC.&quot; A workflow written as \u003Ccode>0 9 * * 1-5\u003C\u002Fcode> to hit 9am for a European team fires at 09:00 UTC, which is 10:00 or 11:00 locally depending on the season. You can set an IANA timezone instead, and that is the fix, but the default catches people because nothing in the YAML says UTC.\u003C\u002Fp>\n\u003Cp>The minimum interval is five minutes: &quot;The shortest interval you can run scheduled workflows is once every 5 minutes.&quot; An expression like \u003Ccode>*\u002F2 * * * *\u003C\u002Fcode> is accepted and then rounded up to that floor, which reads as a schedule ignoring you rather than one that errors.\u003C\u002Fp>\n\u003Cp>The third difference is load, and it is the one to plan around. GitHub&#39;s own documentation warns that &quot;the \u003Ccode>schedule\u003C\u002Fcode> event can be delayed during periods of high loads of GitHub Actions workflow runs&quot;, and names the worst slot: &quot;High load times include the start of every hour.&quot; So \u003Ccode>0 * * * *\u003C\u002Fcode>, every hour on the hour, sits on the most contended minute of the platform. If the job is not time-critical, moving it to \u003Ccode>7 * * * *\u003C\u002Fcode> costs nothing and steps out of the queue.\u003C\u002Fp>\n\u003Cp>Aliases do not exist here. \u003Ccode>@daily\u003C\u002Fcode> and \u003Ccode>@weekly\u003C\u002Fcode> are a Vixie cron extension and the \u003Ccode>schedule\u003C\u002Fcode> trigger rejects them.\u003C\u002Fp>\n\u003Ch2>Kubernetes: a job that overlaps itself\u003C\u002Fh2>\n\u003Cp>A CronJob takes the same five fields. What differs is the clock and what the controller does about concurrency.\u003C\u002Fp>\n\u003Cp>The clock defaults to the time zone of the kube-controller-manager process, which in a standard container means UTC. A \u003Ccode>timeZone\u003C\u002Fcode> field on the job overrides it and takes an IANA name. The API server checks that name against the system time zone database when you apply the job, so a typo is rejected there rather than scheduled silently. If a zone that was valid stops resolving later, after a host tzdata change for instance, the controller stops creating Jobs for that entry and records an \u003Ccode>UnknownTimeZone\u003C\u002Fcode> event; it never falls back to UTC.\u003C\u002Fp>\n\u003Cp>The concurrency default is the part worth reading twice. In the \u003Ca href=\"https:\u002F\u002Fkubernetes.io\u002Fdocs\u002Fconcepts\u002Fworkloads\u002Fcontrollers\u002Fcron-jobs\u002F\" target=\"_blank\" rel=\"noopener noreferrer\">CronJob API\u003C\u002Fa>, \u003Ccode>concurrencyPolicy\u003C\u002Fcode> defaults to \u003Ccode>Allow\u003C\u002Fcode>: if the previous run is still going when the next one is due, the controller starts another Job alongside it. A job that takes eight minutes on a five-minute schedule quietly builds a pile of overlapping runs. The alternatives are explicit:\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"hljs language-yaml\">\u003Cspan class=\"hljs-attr\">spec:\u003C\u002Fspan>\n  \u003Cspan class=\"hljs-attr\">schedule:\u003C\u002Fspan> \u003Cspan class=\"hljs-string\">&quot;*\u002F5 * * * *&quot;\u003C\u002Fspan>\n  \u003Cspan class=\"hljs-attr\">concurrencyPolicy:\u003C\u002Fspan> \u003Cspan class=\"hljs-string\">Forbid\u003C\u002Fspan>   \u003Cspan class=\"hljs-comment\"># skip the run if the last one is still going\u003C\u002Fspan>\n\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>\u003Ccode>Forbid\u003C\u002Fcode> skips the new run; \u003Ccode>Replace\u003C\u002Fcode> cancels the running one and starts fresh. Neither is the default. A plain crontab has the same overlap, except there it is your script&#39;s problem and the usual answer is a lock file.\u003C\u002Fp>\n\u003Ch2>AWS: six fields and a \u003Ccode>?\u003C\u002Fcode> you cannot skip\u003C\u002Fh2>\n\u003Cp>An EventBridge cron expression has six required fields, and the sixth is the year, from 1970 to 2199. That is the first thing that breaks a copy from a crontab, and at least it is the visible one.\u003C\u002Fp>\n\u003Cp>The day-of-week numbering is the quiet one. In a Unix crontab, Sunday is both \u003Ccode>0\u003C\u002Fcode> and \u003Ccode>7\u003C\u002Fcode>, and \u003Ccode>1\u003C\u002Fcode> is Monday. In EventBridge the field runs \u003Ccode>1-7\u003C\u002Fcode> with \u003Ccode>1\u003C\u002Fcode> at Sunday, so the numbering is shifted by one and \u003Ccode>0\u003C\u002Fcode> is out of range. The AWS documentation&#39;s own example settles the direction: \u003Ccode>cron(15 10 ? * 6L 2019-2022)\u003C\u002Fcode> is the last Friday of the month, which puts \u003Ccode>6\u003C\u002Fcode> at Friday and \u003Ccode>1\u003C\u002Fcode> at Sunday. A line copied as \u003Ccode>0 12 * * 1\u003C\u002Fcode> to mean Monday asks AWS for Sunday.\u003C\u002Fp>\n\u003Cp>Then there is the \u003Ccode>?\u003C\u002Fcode>. It means &quot;any value&quot;, and it is not decorative. The \u003Ca href=\"https:\u002F\u002Fdocs.aws.amazon.com\u002Feventbridge\u002Flatest\u002Fuserguide\u002Feb-scheduled-rule-pattern.html\" target=\"_blank\" rel=\"noopener noreferrer\">AWS cron reference\u003C\u002Fa> refuses to take a value in both day fields at once: &quot;You can&#39;t use \u003Ccode>*\u003C\u002Fcode> in both the Day-of-month and Day-of-week fields. If you use it in one, you must use \u003Ccode>?\u003C\u002Fcode> in the other.&quot; The line people reach for, \u003Ccode>cron(0 12 * * MON-FRI *)\u003C\u002Fcode>, mixing \u003Ccode>*\u003C\u002Fcode> in day-of-month with a range in day-of-week, is rejected. One of the two has to be \u003Ccode>?\u003C\u002Fcode>. This is also why the two day fields are not ORed here the way POSIX ORs them: AWS made you pick one and blank the other, so there is nothing left to combine.\u003C\u002Fp>\n\u003Cp>The wildcards \u003Ccode>L\u003C\u002Fcode>, \u003Ccode>W\u003C\u002Fcode> and \u003Ccode>#\u003C\u002Fcode> are supported, which is where EventBridge lines up with Quartz and not with Linux. \u003Ccode>L\u003C\u002Fcode> is the last day of the month or of the week, \u003Ccode>W\u003C\u002Fcode> is the weekday nearest a given date, \u003Ccode>#\u003C\u002Fcode> is the nth occurrence of a weekday. Only \u003Ccode>#\u003C\u002Fcode> carries an extra restriction: one expression per field, so \u003Ccode>3#1,6#3\u003C\u002Fcode> is invalid.\u003C\u002Fp>\n\u003Cp>On time zones the two EventBridge products disagree with each other. Rules are evaluated in UTC and cannot be given a zone at all. Scheduler takes \u003Ccode>--schedule-expression-timezone\u003C\u002Fcode> with an IANA name. Moving a job between the two changes when it fires even when the expression is character for character the same.\u003C\u002Fp>\n\u003Ch2>Quartz: seconds in front\u003C\u002Fh2>\n\u003Cp>Quartz is the format behind most Java scheduling and the source of both the six-field shape and the \u003Ccode>#\u003C\u002Fcode>. The \u003Ca href=\"https:\u002F\u002Fwww.quartz-scheduler.org\u002Fdocumentation\u002Fquartz-2.3.0\u002Ftutorials\u002Fcrontrigger.html\" target=\"_blank\" rel=\"noopener noreferrer\">Quartz CronTrigger reference\u003C\u002Fa> has six fields plus an optional seventh for the year, and the first one is seconds:\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"hljs language-text\">0 30 8 ? * MON-FRI\n│  │  │ │  │   └─ day of week\n│  │  │ │  └───── month\n│  │  │ └──────── day of month\n│  │  └────────── hour\n│  └───────────── minute\n└──────────────── second\n\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>That is also the answer to &quot;cron with seconds&quot;. A Linux crontab has no seconds field and never will, because the daemon wakes once a minute. If you need a sub-minute schedule, you are on Quartz or Spring, not on cron.\u003C\u002Fp>\n\u003Cp>\u003Ccode>?\u003C\u002Fcode> works the way it does on AWS and for the same reason: Quartz does not fully support naming day-of-month and day-of-week at the same time, so one of the two holds \u003Ccode>?\u003C\u002Fcode>. The operators that a Linux crontab has no way to express are right here, including the one that sends people looking for &quot;first Monday of the month&quot;:\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"hljs language-text\">0 0 4 ? * 1#1      first Monday of the month, 04:00\n0 0 4 L * ?        last day of the month, 04:00\n\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>The same first Monday needs a \u003Ccode>date\u003C\u002Fcode> guard on a plain crontab, which is covered in \u003Ca href=\"\u002Fblog\u002Fcron-expression-examples\u002F\">cron expression examples\u003C\u002Fa>.\u003C\u002Fp>\n\u003Ch2>One job, written where it has to run\u003C\u002Fh2>\n\u003Cp>Take a single intent, 04:00 on the first Monday of every month, and write it on each platform:\u003C\u002Fp>\n\u003Ctable>\n\u003Cthead>\n\u003Ctr>\n\u003Cth>Target\u003C\u002Fth>\n\u003Cth>Expression\u003C\u002Fth>\n\u003Cth>What changes\u003C\u002Fth>\n\u003C\u002Ftr>\n\u003C\u002Fthead>\n\u003Ctbody>\u003Ctr>\n\u003Ctd>Crontab (Linux)\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>0 4 * * 1 [ &quot;$(date +\\%d)&quot; -le 7 ] &amp;&amp; job\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>The schedule cannot say &quot;first Monday&quot;; a shell guard does\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>GitHub Actions\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>0 4 * * 1\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>No first-Monday support either, and the clock is UTC\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>Kubernetes\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>0 4 * * 1\u003C\u002Fcode> + \u003Ccode>timeZone\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>Same limit, and \u003Ccode>concurrencyPolicy\u003C\u002Fcode> decides the overlap\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>AWS EventBridge\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>cron(0 4 ? * 2#1 *)\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>Six fields, \u003Ccode>?\u003C\u002Fcode> mandatory, and \u003Ccode>1\u003C\u002Fcode> is Sunday so Monday is \u003Ccode>2\u003C\u002Fcode>\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>Quartz\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>0 0 4 ? * 1#1\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>Seconds in front, year field optional\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftbody>\u003C\u002Ftable>\n\u003Cp>Three of the five expressions do not say what the sentence says. The two that do, Quartz and EventBridge, use an operator that Linux cron has never had.\u003C\u002Fp>\n\u003Ch2>What to check before the line moves\u003C\u002Fh2>\n\u003Cp>None of this makes the five fields wrong. It makes them incomplete: the fields are the portable part, and the four decisions around them are the part to verify whenever an expression crosses a boundary, whether that boundary is a different product, a different time zone or a different team&#39;s cluster.\u003C\u002Fp>\n\u003Cp>The \u003Ca href=\"\u002Fcron-parser\u002F\">cron parser\u003C\u002Fa> on this site lays an expression out field by field, which is the cheapest way to see that the \u003Ccode>1\u003C\u002Fcode> you wrote is Monday in one place and Sunday in another.\u003C\u002Fp>\n",[735,741,743,749,754,764,775,786,793,802,812,819,826,834,843,850,858,865,873],{"slug":736,"title":737,"description":738,"pubDate":726,"tags":739,"category":731,"draft":23,"readingTime":732},"cron-expression-examples","Cron expression examples, and what each one actually does","Cron expressions are easier to read than to write. These are the ones that show up in real crontabs, including the pairs that differ by a single character and mean something else entirely.",[728,729,740],"linux",{"slug":723,"title":724,"description":725,"pubDate":726,"tags":742,"category":731,"draft":23,"readingTime":732},[728,729,730],{"slug":744,"title":745,"description":746,"pubDate":726,"tags":747,"category":731,"draft":23,"readingTime":732},"crontab-file-explained","The crontab file: PATH, MAILTO and the `%` that becomes a newline","A crontab is not a shell script. It runs with a different PATH, mails its output to somewhere you are not looking, and turns an unescaped % into a newline.",[728,748,740],"crontab",{"slug":750,"title":751,"description":752,"pubDate":726,"tags":753,"category":731,"draft":23,"readingTime":732},"what-is-a-cron-expression","What Is a Cron Expression? The Five Fields, Explained","A cron expression is five fields that describe a time. What each field matches, why *\u002F7 gives you nine runs an hour, and when the first of the month fires on a Monday too.",[728,729,730],{"slug":755,"title":756,"description":757,"pubDate":758,"tags":759,"category":731,"draft":23,"readingTime":763},"sql-formatting-saves-time","SQL Formatting: The 10-Second Habit That Saves Hours","SQL formatting takes ten seconds per query and saves hours of debugging. Here's what it catches, why your IDE's formatter isn't enough, and how to make it a habit.","2026-08-25T00:00:00.000Z",[760,761,762],"sql","productivity","formatting","3 min read",{"slug":765,"title":766,"description":767,"pubDate":768,"tags":769,"category":773,"draft":23,"readingTime":774},"json-to-typescript-edge-cases","JSON to TypeScript: The Edge Cases Automation Misses","Converting JSON to TypeScript interfaces is straightforward until you hit nullable fields, deeply nested objects, or arrays of unions. Here's how to handle the cases that automated tools get wrong.","2026-08-01T00:00:00.000Z",[770,771,772],"typescript","json","types","JSON & Data","6 min read",{"slug":776,"title":777,"description":778,"pubDate":779,"tags":780,"category":784,"draft":23,"readingTime":785},"hash-functions-real-differences","MD5 vs SHA1 vs SHA256: What Actually Matters","MD5, SHA1, and SHA256 all serve different purposes. Here's a practical framework for choosing between them without cargo-culting security advice.","2026-07-30T00:00:00.000Z",[781,782,783],"security","hashing","cryptography","Security","5 min read",{"slug":787,"title":788,"description":789,"pubDate":790,"tags":791,"category":731,"draft":23,"readingTime":792},"cron-expressions-schedules-that-run","Cron Expressions: Writing Schedules That Actually Run When You Expect","Stop guessing why your cron jobs run at 3 AM instead of 3 PM. Learn how cron evaluates time, handles timezones, and why concurrency breaks silently.","2026-07-24T00:00:00.000Z",[728,729,730],"4 min read",{"slug":794,"title":795,"description":796,"pubDate":797,"tags":798,"category":731,"draft":23,"readingTime":774},"timestamp-conversion-utc-not-optional","Timestamp Conversion: Why UTC Isn't Optional","A Unix timestamp is just a number. Whether that number means what you think depends on three things the docs assume you already know.","2026-07-20T00:00:00.000Z",[799,800,801],"timestamps","timezone","backend",{"slug":803,"title":804,"description":805,"pubDate":806,"tags":807,"category":811,"draft":23,"readingTime":792},"html-encoding-breaks-special-characters","HTML Encoding: Characters and Charset Issues That Break Your Pages","Three causes of HTML encoding bugs, from unescaped angle brackets to charset mismatches, and a systematic way to fix them.","2026-07-16T00:00:00.000Z",[808,809,810],"html","encoding","web","Web Platform",{"slug":813,"title":814,"description":815,"pubDate":816,"tags":817,"category":811,"draft":23,"readingTime":785},"url-encoding-demystified","URL Encoding: What That %20 Actually Means","One wrong function call is all it takes to break a URL. Here's how percent-encoding really works and which specific mistakes to avoid.","2026-07-15T00:00:00.000Z",[818,809,810],"url",{"slug":820,"title":821,"description":822,"pubDate":823,"tags":824,"category":784,"draft":23,"readingTime":792},"what-devs-get-wrong-about-base64","What Developers Get Wrong About Base64 Encoding","Learn the three Base64 pitfalls that cause real production bugs: confusing encoding with encryption, assuming padding rules are universal across languages, and ignoring the 33% size overhead.","2026-07-13T00:00:00.000Z",[825,809,810],"base64",{"slug":827,"title":828,"description":829,"pubDate":830,"tags":831,"category":773,"draft":23,"readingTime":785},"why-your-json-validator-fails","Why Your JSON Validator Keeps Failing (and It's Probably Not the JSON)","Learn the four hidden reasons your JSON validator rejects valid-looking data: invisible characters sneaking in from terminals, trailing commas that JavaScript allows but JSON doesn't, and values like NaN that serialize into nothing.","2026-07-11T00:00:00.000Z",[771,832,833],"debugging","tools",{"slug":835,"title":836,"description":837,"pubDate":838,"tags":839,"category":386,"draft":23,"readingTime":792},"what-uuids-actually-guarantee","What UUIDs Actually Guarantee (and What They Don't)","UUID collisions are astronomically unlikely until they happen. Here's when you can rely on them, which version to use, and what they don't protect against.","2026-07-10T00:00:00.000Z",[840,841,842],"uuid","databases","architecture",{"slug":844,"title":845,"description":846,"pubDate":847,"tags":848,"category":386,"draft":23,"readingTime":763},"regex-patterns-that-solve-real-problems","Regex for the Real World: Three Patterns That Solve Most Problems","Three regex patterns handle 90% of real-world text tasks. Here's how to use each one correctly and the edge cases that break them.","2026-07-09T00:00:00.000Z",[849,832,833],"regex",{"slug":851,"title":852,"description":853,"pubDate":854,"tags":855,"category":773,"draft":23,"readingTime":774},"json-vs-yaml-config-files","JSON vs YAML: The Config File Debate","Your CI pipeline just failed because a config value silently changed type. Here's how JSON and YAML behave in the real world and when each one makes sense.","2026-07-04T00:00:00.000Z",[771,856,857],"yaml","config",{"slug":859,"title":860,"description":861,"pubDate":862,"tags":863,"category":784,"draft":23,"readingTime":785},"password-generators-what-makes-secure","Password Generators: What Makes a Password Actually Secure","Length beats complexity every time. Here's what password generators get right and wrong, and how to create passwords that are both secure and usable.","2026-07-03T00:00:00.000Z",[781,864,833],"passwords",{"slug":866,"title":867,"description":868,"pubDate":869,"tags":870,"category":784,"draft":23,"readingTime":785},"how-to-decode-jwt","How to Decode a JWT Token (And Actually Understand What's Inside)","JWTs aren't encrypted. You can decode them without a secret key. Here's how to read the header, payload, and signature, and what to look for when debugging auth issues.","2026-07-02T00:00:00.000Z",[871,872,781],"jwt","authentication",{"slug":874,"title":875,"description":876,"pubDate":877,"tags":878,"category":731,"draft":23,"readingTime":732},"http-status-codes-you-should-know","HTTP Status Codes You Should Actually Know","Most developers know 200, 404, and 500. The real debugging starts with the other codes that nobody memorizes.","2026-07-01T00:00:00.000Z",[879,880,832,881],"http","api","rest",1789663034670]