Free Online Tools For Developers

I created this website to help developers by providing them with free online tools. These tools include several formatters, validators, code minifiers, string escapers, encoders and decoders, message digesters, web resources and more.

I will add new tools on a regular basis, so be sure to add this site to your bookmarks.

If you encounter a bug, I would very much appreciate that you send me an email (freeformatter@gmail.com) that explains the nature of your bug. Please include details like which browser version you're using and the steps to reproduce the bug. Other comments are welcome.

Please "+1" and/or "Facebook Like" this site if you thought it was useful.

Update September 2016:
I have increased the upload limit to 2 megabytes. Hopefully, the servers will handle the load. I will evaluate if I can increase it more.

Update July 2016:
The site is now serving more than 2 million pages per month. Thanks to everyone for the support and the kind words. I really appreciate it! The site is going through some MAJOR refactoring, so please be patient through this period. As usual keep sending me bug reports if you find issues.

Update July 2014:
I just created a new website FreeDataGenerator.com to generate data in different formats such as CSV, Excel, SQL, XML, JSON and more. It is still in beta, so please be patient if you encounter any issues. I would appreciate you reporting them to me.

Update March 2014:
We are now serving more than 1.1 million pages a month, so the number of servers was increased again and you should now obtain better and more reliable performances.

Update August 2013:
FreeFormatter.com is now serving ~800,000 pages per month to over 175,000 unique visitors! Of course, I upgraded the hosting environment again. It is possible that you run into some small performance issues and if need be, I will add more power! Just drop me a line if the site is very slow for you.

Update April 2013:
Just to clarify things since I get this question a lot: data sent to FreeFormatter is kept in memory for the time of a 'Post/Redirect/Get' request and that's it! The server instances are transient since they are on AWS and are flushed regularly. Nothing is written to files, there is no database and no logs. You should still take time to figure out if your data is too critical to be sent over the wire though, as it is your responsibility. I make every effort to secure the site to the best of my knowledge.

-MrForms

List of tools

JSON Formatter / Beautifier

Formats a JSON string/file with your desired indentation level creating an object tree with color highlights. You can now clearly identify object constructs (objects, arrays and members). The JSON tree that is created can be navigated by collapsing the individual nodes one at a time if desired.

Features
  • Formats your JSON string/file with choice 6 indentation levels: 2 spaces, 3 spaces, 4 spaces, compact mode, JavaScript escaped and tab separated
  • Creates a tree representation of the JSON objects for easy navigation
  • Color highlights the different construct of your JSON objects
  • Supports copy-paste or file upload

HTML Formatter / Beautifier

Formats a HTML string/file with your desired indentation level. The formatting rules are not configurable but I think it provides the user with the best possible output.

Features
  • Formats the HTML with 4 indentation levels: 2 spaces, 3 spaces, 4 spaces and tab separated
  • Color highlights the different construct of your HTML document
  • Supports copy-paste or file upload

XML Formatter / Beautifier

Formats a XML string/file with your desired indentation level. The formatting rules are not configurable but it uses a per-element indentation pattern giving the best readability.

Features
  • Formats the XML with 4 indentation levels: 2 spaces, 3 paces, 4 spaces and tab separated
  • Color highlights the different construct of your XML document
  • Supports copy-paste or file upload

SQL Formatter / Beautifier

Formats any SQL query with your desired indentation level, even if your SQL statement is invalid. You can modify the case of the SQL keywords and identifiers to upper case, lower case or keep them as-is.

This SQL beautifier is especially useful for SELECT statements, but can also handle INSERT, UPDATE and DELETE statements. It was built to be agnostic of the database that is targeted and should support MySQL, Microsoft SQL Server, Oracle and other SQL ANSI databases.

Features
  • Formats the SQL with 4 indentation levels: 2 spaces, 3 paces, 4 spaces and tab separated
  • Formats the SQL regardless of the validity of the statement
  • Change the case of keywords or identifiers to upper case, lower case or keep them as-is
  • Database agnostic
  • Supports SELECT, INSERT, UPDATE and DELETE statements
  • Supports copy-paste or file upload

JSON Validator

Validates a JSON string against RFC 4627 (The application/json media type for JavaScript Object Notation) and against the JavaScript language specification. You can configure the validator to be lenient or strict.

Features
  • Validates your JSON string/file against RFC 4627 in either strict or lenient mode
  • Validates your JSON string/file against the JavaScript specification
  • Supports copy-paste or file upload

HTML Validator

Validates the HTML string/file for well-formedness and compliance with w3c standards. It tries to make use of the doctype declaration to evaluate the document structrue but will resort to best practice if unmatched. The validator will report on missing or invalid attributes, unknown tags, unclosed tags and more.

Features
  • Validates your HTML string/file using the doctype if possible or the 'best practices' if not
  • Checks for invalid tags, missing or invalid attributes, unclosed markeup and much more
  • Supports copy-paste or file upload

XML Validator (XSD)

Validates the XML string/file against the specified XSD string/file. XSD files are "XML Schemas" that describe the structure of a XML document. The validator checks for well-formedness first, meaning that your XML file must be parsable using a DOM/SAX parser. Only then does it validate your XML against the XML Schema. The validator will report fatal errors, non-fatal errors and warnings.

Features
  • Validates your XML string/file using the provided XSD string/file
  • Supports copy-paste or file upload

XPath Tester

Executes an XPath query against an XML file. This online XPath tester will output the actual matched XML content along with the XML item type (Element, Text, CData, Attribute, etc.). Each match is displayed on a single line and this allows you also extract a subset of data if desired. XPath 2.0/3.0 compatible.

Features
  • XPath 2.0/3.0 compatible
  • Supports XML namespaces
  • Extensive support of XPath functions
  • Reports the item type of the matched XML parts
  • Supports copy-paste or file upload

Credit Card Number Generator & Validator

Validates credit card numbers and also generates fake credit card numbers for all major brands. Obviously these number are for testing purposes and will not work with a payment processor. Also contains a full documentation and example of the Luhn algorithm used to validate most credit cards (Mod 10).

Features
  • Validates credit card numbers
  • List of all card number formats per card issuer
  • Random credit card number generator for all major brands
  • Luhn algorithm explained

Regular Expression Tester

This regular expression tester will highlight every match in the original string so that you know exactly where a match occurs. It can be configured to be case-insensitive, work in multi-line mode and perform global matches. It also supports string replacements through with groups. It runs against a Java engine.

Features
  • Highlights all matches in the original string
  • Supports the DOTALL flag; i.e. the dot metacharacter matches everything including line breaks
  • Supports case-insensitive, multiline and global flags
  • Extensive list of examples and regular expression recipes
  • Supports string replacements

Java Regular Expression Tester

This free Java regular expression tester lets you test your regular expressions against any entry of your choice and clearly highlights all matches. It is based on the Pattern class of Java 8.0.

Features
  • Based on Java Pattern Class (Java 8.0)
  • Highlights all matches in the original string and shows extensive group details
  • Supports Java Pattern Flags (dotall, multiline, unix lines, etc.)
  • Extensive list of examples and regular expression recipes
  • Supports string replacements

Url Encoder & Decoder

Encodes or decodes a string so that it conforms to the the Uniform Resource Locators Specification - URL (RFC 1738).

The specification says that only the following characters are allowed in a URL "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789$-_.+!*'()". Therefore, all other characters will be encoded to a two digit hexadecimal value that represents the character in the proper ISO character set.

Base 64 Encoder & Decoder

Encodes or decodes a string so that it conforms to the Base64 Data Encodings specification (RFC 4648).

Base 64 Image Encoder & Decoder

Encodes or decodes an image into a Base64 string. This technique is useful to embed images directly into a HTML document or within a CSS class. Compatible with the Base64 Data Encodings specification (RFC 4648).

QR Code Generator

Generates QR codes using various standards such as Address Book / Contact Information (VCARD), Events (VEVENT), Emails (MAILTO), GEO Coordinates (GEO), SMS (SMSTO), Telephones (TEL), URLs and WiFi connections. You can also choose your error correction level from the standards L (Low 7%), M (Medium 15%), Q (Quartile 25%) and H (High 30%).

JavaScript Minifier - Online YUI Compressor for JavaScript

Compresses a JavaScript string/file with no possible side-effect. This compressor is based on Yahoo!'s YUI Compressor.

Features
  • No possible side-effect on code
  • Removes useless white spaces, indentation characters and line breaks
  • Replaces local variable names with smaller ones and takes care of substituting the references
  • Does not modify eval statement because of possible overboard effects
  • Supports copy-paste or file upload

CSS Minifier - Online YUI Compressor for CSS

Compresses a CSS string/file with no possible side-effect. This compressor is based on Yahoo!'s YUI Compressor.

Features
  • Removes useless white spaces, indentation characters and line breaks
  • Strips all comments
  • Removes the last semi-colon of a style declaration
  • Removes extra semi-colons
  • Removes empty CSS declarations
  • Removes measure units when using zero values
  • Removes the leading 0 if a float value is lower than one
  • Chances RGB color values to a shorter hexadecimal format
  • Hexadecimal colors following the pattern #AABBCC are reduced to #ABC
  • Keeps a single charset per CSS file removing all extra declarations
  • None values are converted to 0 whenever safe to do so
  • Supports copy-paste or file upload

XSD Generator

Generates a XSD (XML Schema) from a XML file. Simply copy-paste OR upload your XML document and let the generator figure out the rest. The generator will try to use a 'smart' approach to figure out the data type (you can always refine it after).

Features
  • Supports 3 XSD design: Russian Doll, Salami Slice and Venetian Blind
  • Uses 'smart' data types instead of plain xs:string types
  • Doesn't resort to xs:enumeration for values
  • Supports copy-paste or file upload

XSL Transformer (XSLT)

Transforms an XML file using an XSL file (XSL Transformation). You can also select your desired indentation level in the output.

Features
  • Supports XML namespaces
  • Formats the resulting XML with 5 indentation levels: 2 spaces, 3 spaces, 4 spaces, compact and tab separated
  • Supports copy-paste and file upload

XML to JSON Converter

Converts an XML file into a JSON file. You can also select your desired indentation level in the output.

Features
  • Let's you specify a prefix for XML attributes when converted to JSON properties
  • Let's you specify the name of the JSON properties used to represent #text item types
  • Formats your JSON string/file with 6 indentation level: 2 spaces, 3 spaces, 4 spaces, compact mode, JavaScript escaped and tab separated
  • Creates a tree representation of the JSON objects for easy navigation (if file is under 1meg, else formats as plain text)
  • Color highlights the different construct of your JSON objects
  • Supports copy-paste or file upload

JSON to XML Converter

Converts a JSON file into an XML file. You can also select your desired indentation level in the output.

Features
  • Let's you specify the name of the root element and the name of array elements
  • Formats your XML string/file with 5 indentation levels: 2 spaces, 3 spaces, 4 spaces, compact mode and tab separated
  • Supports copy-paste or file upload

CSV to XML Converter

Converts a CSV file into a XML file. You can also select your desired indentation level in the output. Define a XML snippet that will be applied to each line of the CSV and use placeholders to substitute the values.

Features
  • Supports multiple quote and delimiter characters
  • Formats your XML string/file with 5 indentation levels: 2 spaces, 3 spaces, 4 spaces, compact mode and tab separated
  • Supports copy-paste or file upload

Epoch Timestamp To Date

Converts an epoch/unix timestamp into a human readable date. It also lets you do the inverse, i.e. converts a human readable date into an epoch/unix timestamp. It also displays the current epoch/unix timestamp in both seconds and milliseconds.

Features
  • Displays the current epoch timestamp in seconds and milliseconds
  • Converts epoch timestamps from seconds/milliseconds to human readable date
  • Converts human readable dates into epoch timestamps

Message Digester

Computes a digest from a string using different algorithms.

Features
  • Supports the following algorithms: MD2, MD4, MD5, SHA1, SHA-224, SHA-256, SHA-384, SHA-512, RIPEMD128, RIPEMD160, RIPEMD320, Tiger, Whirlpool, GOST3411

HMAC Generator / Checker

Computes a Hash-based message authentication code (HMAC) using different algorithms.

Features
  • Supports the following algorithms: HMACMD2, HMACMD4, HMACMD5, HMACSHA1, HMACSHA224, HMACSHA256, HMACSHA384, HMACSHA512, HMACRIPEMD128, HMACRIPEMD160, DESMAC, DESMAC/CFB8, DESEDEMAC, DESEDEMAC64, DESEDEMAC/CFB8, DESEDEMAC64WITHISO7816-4PADDING, GOST28147MAC, IDEAMAC, IDEAMAC/CFB8, ISO9797ALG3MAC, ISO9797ALG3WITHISO7816-4PADDING, PBEWITHHMACSHA, PBEWITHHMACSHA1, PBEWITHHMACRIPEMD160, RC2MAC, RC2MAC/CFB8, RC5MAC, RC5MAC/CFB8, SKIPJACKMAC, SKIPJACKMAC/CFB8, HMACTIGER

String Utilities

A couple of online string utilities written in JavaScript.

Features
  • Convert a string to lowercase or uppercase
  • Character count
  • Word count
  • Reverse string
  • String splitter
  • Detailed character information (decimal, octal, hexadecimal, unicode, html entity, etc.)

HTML Escape

Escapes or unescapes an HTML file removing traces of offending characters that could be wrongfully interpreted as markup.

Features
  • Escapes all reserverd characters with their corresponding HTML entities (', ", &, <, >)
  • Escapes ISO 8859-1 symbols and characters that have corresponding HTML entities

XML Escape

Escapes or unescapes an XML file removing traces of offending characters that could be wrongfully interpreted as markup.

Java and .Net Escape

Escapes or unescapes a Java or .Net string removing traces of offending characters that could prevent compiling.

JavaScript Escape

Escapes or unescapes a JavaScript string removing traces of offending characters that could prevent interpretation.

CSV Escape

Escapes or unescapes a CSV string removing traces of offending characters that could prevent parsing.

SQL Escape

Escapes or unescapes a SQL string removing traces of offending characters that could prevent execution.

Lorem Ipsum Generator

The lorem ipsum generator lets you choose how many sentences, paragraphs or list items you want. You can also select to include HTML markup and specify how big the text should be. Support for standard Lorem Ipsum, Batman Ipsum, Marvel Ipsum and Pokemon Ipsum

List of MIME types

I have compiled a full list of MIME types using the "mime.types" file of the Apache HTTPD virtual private server. I took the liberty of adding a name/description for each MIME type so that it's clearer what they represent. I have also included a significant link for each type with more details for it.

LESS Compiler

Compiles a LESS file into a CSS file. Full support for all LESS features except @import.

HTML Entities

Complete list of HTML entities with their numbers and names. Also included is a full list of ASCII characters that can be represented in HTML (i.e. printable characters).

Url Parser / Query String Splitter

This tools parses a URL into its individual components (protocol, scheme, userinfo, host, port, authority, path, resource, etc.) and also splits the query string into a human readable format. It also decodes each query string parameter to make them easier to understand.

ISO country list - HTML select snippet

Included in this page are the HTML select/dropdown code snippets to generate a list of countries using the ISO-3166-1 and ISO-3166-2 codes.

USA state list - HTML select snippet

Included in this page is the HTML select/dropdown code snippets to generate a list of states for the United States. The list uses the USPS state abbreviation values. A list of outlying territories and armed forces USPS entries are also available. Simply add them to the select/dropdown if you want to make use of them.

Canada province list - HTML select snippet

Included in this page is the HTML select/dropdown code snippets to generate a list of provinces and territories for Canada. The list uses the CanadaPost abbreviation values.

Mexico state list - HTML select snippet

Included in this page is the HTML select/dropdown code snippets to generate a list of states for Mexico.

Time zone list - HTML select snippet

Included in this page is the HTML select/dropdown code snippets to generate a list of time zones. It's very hard to come up with a list of time zones that make sense because of considerations for countries and daylight savings adjustment. The list I use is based on a MySQL time zone list.