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 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

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
  • No limit on the size of the JSON string/file to format
  • 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

HTML Formatter

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
  • No hard limit on the size of the HTML string/file to format
  • Formats the HTML with 4 indentation level: 2 spaces, 3 spaces, 4 spaces and tab separated

XML Formatter

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
  • No hard limit on the size of the XML string/file
  • Formats the XML with 4 indentation level: 2 spaces, 3 paces, 4 spaces and tab separated

SQL Formatter

Formats a SQL string with your desired indentation level. The formatting rules are not configurable. The indentation logic uses that of Hibernate. The formatter DOES NOT validate the SQL and it will still format invalid SQL statements.

The SQL validator is on my TODO list, although it might take me a gazillion years to do it because of the specificities of each RDBMS.

Features
  • No hard limit on the size of the SQL string
  • Formats the SQL with 4 indentation level: 2 spaces, 3 paces, 4 spaces and tab separated
  • Formats the SQL regardless of the validity of the statement

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
  • No limit on the size of the JSON string/file to validate
  • Validates your JSON string/file against RFC 4627 in either strict or lenient mode
  • Validates your JSON string/file against the JavaScript specification

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
  • No hard limit on the size of the HTML string/file to format
  • 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

XML Validator

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, and only then does it validate your XML against the XML Schema. The validator will report fatal errors, non-fatal errors and warnings.

Features
  • No hard limit on the size of the HTML string/file to format
  • Validates your XML string/file using the provided XSD string/file

XSD Generator

Generates an XSD (XML Schema) from a XML file. Simply copy-paste your XML document and let the generator figure out the rest! The generator uses a Russian-Doll approach. The Russian-Doll design mimics the document structure meaning that elements within other elements are declared locally instead of global-reusable scope. The generator will not try to generate xs:enumeration since it's too error prone. Also, instead of generating xsd:string types, the generator will try to use a 'smart' approach to figure out the data type.

Features
  • No hard limit on the size of the HTML string/file to format
  • Uses a Russian-Doll design
  • Uses 'smart' data types instead of plain xs:string types
  • Doesn't restort to xs:enumeration for values

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.

Features
  • No hard limit on the size of the XML to test on
  • Supports XML Namespaces
  • Supports most of the XPath functions
  • Will report the item type of the matched XML parts

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 also supports the case-insensitive, multiline, global and dot all flags. Unlike standard JavaScript RegExp, this will let use the dot metacharacter to match anything including line breaks if you want.

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 replacement

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).

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 hard limit on the size of the JavaScript string/file
  • 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

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
  • No hard limit on the size of the JavaScript string/file
  • 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

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
  • No hard limit on the size of the HTML string/file to format
  • Formats the resulting XML with 5 indentation level: 2 spaces, 3 spaces, 4 spaces, compact and tab separated

XML to JSON Converter

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

Features
  • No hard limit on the size of the XML string/file to format
  • 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

JSON to XML Converter

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

Features
  • No hard limit on the size of the JSON string/file to format
  • Let's you specify the name of the root element and the name of array elements
  • Formats your XML string/file with 5 indentation level: 2 spaces, 3 spaces, 4 spaces, compact mode and tab separated

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
  • No hard limit on the size of the CSV string/file to format
  • Supports multiple quote and delimiter characters
  • Formats your XML string/file with 5 indentation level: 2 spaces, 3 spaces, 4 spaces, compact mode and tab separated

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.

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.