Posts Tagged ‘form’

How to Create An Ajax-Based HTML5/CSS3 Contact Form

Contact form is deadly essential for any website, as it acts as a messenger which passes the opinion or enquiries of visitors to webmaster. There have been countless contact forms on the web but unfortunately most of them do not explain to you the inner working parts, so here comes a detailed tutorial to teach you to build an advanced contact form from scratch based on the pop technology, HTML5 and CSS3.

html5 contact form article How to Create An Ajax Based HTML5/CSS3 Contact Form

Considering the nature of a web-based e-mail contact form we are also required to dive into two separate application fields, which is the PHP backend code for sending email and jQuery functions for rich user interface. By the end we will be left with a fully dynamic and functional contact form written with later customization in mind.

Get started now to build your own advanced contact form!

Shortcut to:

  • Demo – Get a preview of what you are building
  • Download – Download all files (php + css)

Structuring the Application

To get started you’ll need some type of web server to work over. If you’re running a Windows machine WAMP is probably your best option. Mac users have a similar program named MAMP which is just as easy to install.

wampserver How to Create An Ajax Based HTML5/CSS3 Contact Form

These packages will set up a local server on your machine with full access to PHP. Alternatively if you own server space or have full server access into a remote location you may use that instead. We are not going to need any MySQL databases, which should simplify things a bit.

Once your server is set up create a new folder to house the application. You can name this whatever you’d like as it isn’t detrimental or even related to the final product. The folder structure will be used when you access your files in a web browser. A simple example would be http://localhost/ajaxcontact/contact.php

Let’s Build our Files!

We will only be working within 2 core files. We’ll first need a core .php file to house not only our application logic, but also frontend HTML markup. Below is sample code taken from our starting file.

<!DOCTYPE html>
<html xmlns:fb="" xml:lang="en" lang="en">
<title>HTML5/CSS Ajax Contact Form with jQuery</title>
<script type="text/javascript" src=""></script>
<link href="styles.css" rel="stylesheet" type="text/css" />

To begin we have written a simple heading section to our document. This includes a general Doctype declaration for HTML5 and some HTML/XML document elements. These aren’t exactly required, but will ease the rendering process in older (and newer) browsers. Also it never hurts to offer more information.

A bit further down we can see 2 lines right before our closing heading tag. The first includes our jQuery script from the online Google Code Repository. This is required for our dynamic page errors to work. Directly below this we have the inclusion of a basic CSS document containing all of our page styles.

Inside our document body we have a few containing divisions withholding a main contact form. This houses 3 input elements for the user’s name, e-mail address, and personal message. The HTML markup is fairly standard and shouldn’t boggle the mind of any intermediate developer.

<!-- @begin contact -->
<div id="contact" class="section">
	<div class="container content">

	 <?php if(isset($emailSent) && $emailSent == true) { ?>
     	<p class="info">Your email was sent. Huzzah!</p>
     <?php } else { ?>

Here we have a basic PHP conditional code nested within a few page containers. This checks for the set value of a variable named $emailSent and if equal to true, it will display a success message.

Inside our Form HTML

The else statement is what will run on first page load since there won’t be any content to send initially. Inside here we will include a brief collection of form elements and a submit button.

<div id="contact-form">
	<?php if(isset($hasError) || isset($captchaError) ) { ?>
    	<p class="alert">Error submitting the form</p>
    <?php } ?>

	<form id="contact-us" action="contact.php" method="post">
		<div class="formblock">
		<label class="screen-reader-text">Name</label>
		<input type="text" name="contactName" id="contactName" value="<?php if(isset($_POST['contactName'])) echo $_POST['contactName'];?>" class="txt requiredField" placeholder="Name:" />

		<?php if($nameError != '') { ?>
			<br /><span class="error"><?php echo $nameError;?></span>
		<?php } ?>


		<div class="formblock">
		<label class="screen-reader-text">Email</label>
		<input type="text" name="email" id="email" value="<?php if(isset($_POST['email']))  echo $_POST['email'];?>" class="txt requiredField email" placeholder="Email:" />

		<?php if($emailError != '') { ?>
			<br /><span class="error"><?php echo $emailError;?></span>
		<?php } ?>


		<div class="formblock">
			<label class="screen-reader-text">Message</label>
			<textarea name="comments" id="commentsText" class="txtarea requiredField" placeholder="Message:"><?php if(isset($_POST['comments'])) { if(function_exists('stripslashes')) { echo stripslashes($_POST['comments']); } else { echo $_POST['comments']; } } ?></textarea>

		<?php if($commentError != '') { ?>
			<br /><span class="error"><?php echo $commentError;?></span>
		<?php } ?>

		<button name="submit" type="submit" class="subbutton">Send us Mail!</button>
		<input type="hidden" name="submitted" id="submitted" value="true" />

<?php } ?>
</div><!-- End #contact -->

You may have noticed there is another conditional block directly after the starting form. This checks for a variable named $hasError and will display an error message upon confirmation. This fallback method is only used if JavaScript is disabled in the browser and thus can’t generate dynamic errors.

All the way down we can find individual PHP variables being checked. The statements are regulating if the form has already been submitted with only partial amounts of data filled in. This is another fallback system which displays the contents of fields already filled out – a nice trick for proper user experience!

Directly after our form completion is the few jQuery functions we’ve written. We will talk over these first since they are the default implementation on pageload. However if the browser doesn’t accept JavaScript then by default we can rely on our PHP code.

Opening to jQuery

The easiest way to get started talking on this topic would be to dive right in. I’ll break down individual blocks line-by-line so you can see what the script is actually checking for.

However if you get lost just review the project code files. All of the full blocks are pre-written and well documented in the jQuery website. To get started we open our code similar to any other:

<script type="text/javascript">
$(document).ready(function() {
	$('form#contact-us').submit(function() {

The first few lines are checking for specific event occurrences. After our CDATA comments to hide the code from older, buggy browsers we get started checking for ready events.

The first bit checks if the document has fully loaded and is ready for manipulation. This is a classic technique and the easiest way to start coding a jQuery project.

Once inside we are checking for a form element under the ID "contact-us", and we want to know when it is submitted. Upon doing so we call another function to display our error messages or slideUp() upon success.

$('form#contact-us .error').remove();
var hasError = false;
$('.requiredField').each(function() {
    if($.trim($(this).val()) == '') {
        var labelText = $(this).prev('label').text();
        $(this).parent().append('<span class="error">Your forgot to enter your '+labelText+'.</span>');
        hasError = true;
    } else if($(this).hasClass('email')) {
        var emailReg = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;
        if(!emailReg.test($.trim($(this).val()))) {
            var labelText = $(this).prev('label').text();
            $(this).parent().append('<span class="error">Sorry! You\'ve entered an invalid '+labelText+'.</span>');
            hasError = true;

First we remove any pre-existing errors so we don’t hold any previous messages from before. A few lines down we can see a selector for all elements under the class “requiredField“. These are all of our required field elements – name, e-mail, and message.

jQuery will take the value of each field and remove all spaces from the value. If the content is equal to nothing, then we display an error message next to that field warning our user to fill in some value. Right before the end of our logic there is a bit of Regex code validating the e-mail value.

Lastly we can see if no error is set and check for full input content. If this is the case we call a jQuery method named post(). This will submit our form and check within the PHP code for any errors. Assuming none are found the slideUp() animation is called to hide our contact form and display a “success!” message.

if(!hasError) {
	var formInput = $(this).serialize();
	$.post($(this).attr('action'),formInput, function(data){
	$('form#contact-us').slideUp("fast", function() {
		$(this).before('<p class="tick"><strong>Thanks!</strong> Your email has been delivered. Huzzah!</p>');

	return false;

If you are familiar with callbacks you may notice the post() function has a built-in set of parameters. Callbacks are smaller functions which are called upon the response of data from another function.

So for example, when our function successfully shoots an e-mail it will call its own internal function to display the sliding animation. All of this code could be written in its own block and moved elsewhere. However for the sake of this tutorial it’s much easier writing the callback as an inline function.

Breaking past our PHP

The final hurdle to mention is the logic behind our PHP processor. This is the backend system which will actually call a mail function and send out the message. All of the code used in the examples below can be found directly at the top of our main .php file, before any HTML output.

There are also a few internal styles which freshen up the page. There isn’t anything specifically new here so we won’t be going into any of the details. However the styles.css document is included within the project code and contains rudimentary CSS3 techniques.

//If the form is submitted
if(isset($_POST['submitted'])) {

To start we open our PHP clause and check if the form was even submitted. The POST variable “submitted” was actually a hidden input field added at the very end of our form. It’s a useful way to check if the user has submitted anything yet so we don’t waste server resources.

After this we have 3 separate if/else statement checking to see if each input field has been filled out. I won’t include each bit of logic here since they are all very repetitive in nature. However, to give you a brief example I’ve included the e-mail verification clause below:

// need valid email
if(trim($_POST['email']) === '')  {
	$emailError = 'Forgot to enter in your e-mail address.';
	$hasError = true;
} else if (!preg_match("/^[[:alnum:]][a-z0-9_.-]*@[a-z0-9.-]+\.[a-z]{2,4}$/i", trim($_POST['email']))) {
	$emailError = 'You entered an invalid email address.';
	$hasError = true;
} else {
	$email = trim($_POST['email']);

PHP will trim all whitespace from the value and check to see if anything is left over. If so we have a detailed Regular Expression (Regex) to see if our user’s input string matches up with an e-mail pattern.

You certainly don’t need to understand how preg_match() works to build this script. It is a useful function to determine rules and requirements for a successful type of data, but commands advanced programming knowledge to really grasp. In this scenario we are ensuring the user only inputs a select few characters, includes an @ symbol followed by 2-4 characters representing a Top-Level Domain.

After all of our logic passes and we return no errors it’s time to send our message! This bit of code will set individual variables to customize our e-mail message and setup some mail headers for the process.

// upon no failure errors let's email now!
	if(!isset($hasError)) {
		$emailTo = '';
		$subject = 'Submitted message from '.$name;
		$sendCopy = trim($_POST['sendCopy']);
		$body = "Name: $name \n\nEmail: $email \n\nComments: $comments";
		$headers = 'From: ' .' <'.$emailTo.'>' . "\r\n" . 'Reply-To: ' . $email;

		mail($emailTo, $subject, $body, $headers);

        // set our boolean completion value to TRUE
		$emailSent = true;

If you were wondering how the code was going to figure out your e-mail address, this is the part to fill in. The first variable in our set is titled $emailTo and should contain whichever e-mail address, which is going to receive the message.

Inside our $body variable we take advantage of the \n delimiter to add new lines into the message. This adds small placements for the sender’s name, e-mail address, followed by a break for their message content. Of course you could spend time prettying up the display, but this structure works just fine.


This closes our tutorial for an advanced contact form. If you’d like to style your elements in relation to mine you can check out my example styles.css within the project code. However, the page is structured well enough that you could design your own look & feel very easily.

Feel free to download the source code and examine what I’ve done a bit closer. It’s good to follow a tutorial but having direct access to the project source can be invaluable. I’ve also included a brief stylesheet to make customizations a breeze, thanks for your view!

Mobile Toolbox for WordPress (Tutorials, Plugins and Themes)

Mobile browsing clearly does have its limitations, mainly from its smaller physical design, but it also limited by web sites not having a mobile version tailored for the smaller screen. Current mobile web browsing stats stands at 4.5% of total world-wide internet usage and, with the prediction for the next five years being that more users will connect to the internet over mobile devices than desktop computers, it is now time to act and make your website mobile friendly.

Of course, it does depend on the size and complexity of your site, but creating a mobile version of your site does neither have to be over-expensive nor very time-consuming, especially if your site has been built using WordPress. As everybody knows, WordPress is by far and away the most popular CMS, and with it comes a thriving community of designers and developers that constantly push its boundaries further and ever-more improving its functionality. Its community has realized for some time that the mobile phenomenon has been coming, and as such does have a multitude of themes, plugins and resources available that will help you create a mobile version of your site with the minimum of fuss.

In this article, Mobile Toolbox for WordPress, we highlight themes (free and premium), plugins and easy-to-follow tutorials that will help you create a mobile version of your site.

iPhonsta 1.1

iPhonsta 1.1iPhonsta 1.1
Despite its name iPhonsta does not exclusively only work on the iPhone, it works on most mobile devices, like Android, Palm Pre and Blackberry. The theme has a fluid layout, configures the font size automatically and is WordPress 3 compatible.
iPhonsta Home →View the Demo →

Smooci 2

Smooci 2Smooci 2
This basic free theme works in conjunction with the Smooci (WordPress on Mobiles) plugin which is used to display the mobile optimised theme when your WordPress site is visited via a mobile device.
Smooci 2 Home →View the Demo →

WordPress Mobile Theme

WordPress Mobile ThemeWordPress Mobile Theme
This is a minimalistic and lightweight theme that will fit perfectly with all the mobile phones resolutions. The three key features of this theme are: You can choose your own theme color from the theme options; The theme can have 100% width if you want the theme to fit on every mobile phone, or you can define a fixed width in pixels to target special users; The front page will dynamically create thumbnails for your posts.
WordPress Mobile Theme Home →View the Demo →

jQuery Mobile

jQuery Mobile
Built with the incredible jQuery Mobile plugin, this theme is perfect for those who want to make a good looking and easy to read version of their blog. It uses most of jQuery Mobile features to guarantee an optimal ease of reading on mobile devices such as the iPhone, Blackberry or Android.
jQuery Mobile Home →View the Demo →


Mobius is a feature rich free theme that is compatible with all touchscreen mobile phones (iPhone & iPod Touch, Android, BlackBerry, Windows Phone, Palm Pre, Symbian…). It comes packaged with three variations (Sky Blue, Amethyst & Rain Forest), its widget ready, native support of non-web fonts (@font-face) and also has optional Twitter and Facebook icons.
Mobius Home →

The dotMobi WordPress Mobile Pack

The dotMobi WordPress Mobile PackThe dotMobi WordPress Mobile Pack
The dotMobi WordPress Mobile Pack is a complete toolkit from dotMobi to help mobilize your WordPress site and blog.
It includes a mobile switcher to select themes based on the type of user that is visiting the site, a selection of mobile themes, extra widgets, device adaptation and a mobile administration panel to allow users to edit the site or write new posts when out and about.
The dotMobi WordPress Mobile Pack →

Carrington Mobile

Carrington MobileCarrington Mobile
Carrington Mobile is an elegant mobile theme with that supports advanced touch browsers (iPhone, Android, BlackBerry, Pre) and is also backward compatible with older mobile devices.
Carrington Mobile Home →View the Demo →


A beautiful 4 in 1 theme (Blackboard, Wood, Leather, Nature), with 2 widget ready areas, gestures based navigation and auto-resizes images. Automatic detection if a user visits your website from an iPhone and iPod touch, thanks to its built-in plugin that comes packed with the theme.
Price: $22
touchPress Home →

1ST Giant Leap

1ST Giant Leap
1stGiantLeap Mobile is a HTML5 /CSS3 template tuned to look perfect in mobile browsers. The markup is device orientation (landscape/portrait) sensitive, so when you change device orientation by rotating it 90 degrees CW or CCW this template will look nice.
Price: $15
1ST Giant Leap →

WPtouch 2.0 Pro

WPtouch 2.0 Pro
WPtouch 2.0 Pro allows you to setup a feature-rich and fast version of your website for touch-mobile devices with just a few clicks. It does come packaged with a wide variety of pre-built themes, or you could build your own custom theme with WPtouch’s Skeleton theme template. It scales post images, captions and videos automatically and breaks up content with ‘Load More’ links that use ajax to make browsing easier for visitors.
Price: Its FREE for the basic version, $39 for Pro, $69 for the Pro 5 pack and $199 for the full developer pack.
WPtouch 2.0 Pro Home →

Mobility WordPress Theme for Web and iPad

Mobility WordPress Theme for Web and iPad
Mobility is an iPad-ready WordPress theme with finger sliding capabilities and a custom drag-and-drop gallery admin. Both the regular and iPad versions have seven color options and the choice between a single or three-way JavaScript slider on the homepage. The iPad version can switch between portrait and landscape mode upon rotation.
Price: $30.
Mobility WordPress Theme for Web and iPad Home →View the Demo →

WordPress Mobile Theme Framework from Obox

WordPress Mobile Theme Framework from Obox
Obox Mobile is a WordPress Mobile Theme Framework that gives your site a unique and beautiful layout which is compatible for mobile devices. Obox Mobile comes packaged with two Obox Themes (MobiLight & MobiDark) as well as WooMobile from WooThemes.
We currently use Obox Mobile for Speckyboy.
Price: $50.
WordPress Mobile Theme Framework Home →View the Demo →

Simple Mobile

Simple Mobile
Simple Mobile is feature-rich theme that works parallel with another theme and presented to mobile users only. It comes with 8 color schemes, collapsible multi-level menu, WP 3.0 custom menus support, 43 social media icons, a slick Twitter implementation (optimized for speed) and much more.
Price: $20.
Simple Mobile Home →View the Demo →


PadPressed functions as a WordPress plugin and allows publishers to take their content and make it perfectly formatted for the iPad. The most important aspect of PadPressed is its 100% design for the tablet touch experience. Each skin plays to a specific touch dynamic. SwipePad focuses on swiping to advance and a swipe featured slider. It notices the orientation (portrait or landscape) of a reader’s iPad.
Price: $49 for a single license and $149 for a developer license.
PadPressed Home →View the Demo →

My Mobile Page

My Mobile Page
The My Mobile Page WordPress Theme is a minimal mobile WordPress theme with a modern look and a lot of cool features. This theme can be used for personal mobile pages, web designers mobile pages, artists mobile pages and many other. The theme use automatic resolution detection so you can use for small screen resolutions and bigger resolutions.
Price: $20
My Mobile Page Home →View the Demo →

On Demand Mobile

On Demand Mobile
This is a joint collaboration between WPtap (plugin developers) and Press75 (theme developers) to release a mobile version of the video theme On Demand, providing a fully featured video solution for mobile platforms.
Price: On Demand Mobile for $49, or with On Demand iPad for $90.00
On Demand Mobile Home →View the Demo →

Tap News – iPhone App Style Mobile Theme

Tap News - iPhone App Style Mobile Theme
Tap News is an iphone-app style mobile plugin/theme package that instantly converts your wordpress site into a mobile web-application experience. It is specially designed for iPhone/iPod touch, Android, and Blackberry touch mobile device. The theme features elegant iPhone-style sliding layout, and it will truly turn your site into a mobile application. Other features include thumbnail pictures, full support for twitter, social bookmarking, and email.
Price: $49
Tap News Home →View the Demo →

iBusiness iPhone-iPod Template

iBusiness iPhone-iPod Template
iBusiness is a website template designed especially for the iPhone/iPod. It comes with 9 different themes, 3 page templates, 3 widget areas, PSD source files, Twitter stream, and much more.
Price: $15.
iBusiness Home →View the Demo →

Video Theme for iPhone & Android

Video Theme for iPhone & Android
The Video Tube theme is specifically designed for video blogging and content sharing on your mobile site. It fully supportsthe iPhone/iPod Touch, Android, and touch-based Blackberry devices.
With all WordPress features and customized insertion functions, it makes adding Youtube and MP4 videos to your mobile site exetremely easy.
Price: $49.
Video Theme Home →View the Demo →

SOFA iBloggr

SOFA iBloggr
Sofa iBloggr perfectly fits to the iPhones 320px wide screen without the need for screen orientation switch. You can easily turn this theme into Blog + Flickr + Twitter mashup. iBloggr supports widgets, it has a built-in Plugger system, almost everything can be controlled from theme options page – including quick translation table, image size, Post excerpt length…
Price: $15.
SOFA iBloggr Home →View the Demo →

News Press Mobile Theme

News Press Mobile Theme
The News Gallery theme is designed with the photography blogger in mind featuring frontpage slideshow, thumbnail picture and gallery style layout options. It is the perfect choice for image-centric and magazine style WordPress websites. It comes with six stylish colors designed to fit your sites’ unique profile and style.
Price: $49
News Press Mobile Theme Home →View the Demo →


iWorld is a jQuery powered feature-rich mobile theme. It comes with 10 color schemes, built-in slider & contact form (including validation plugin), Twitter & Flickr widget, a selection of social icons and comes with PSD source.
Price: $25.
iWorld Home →View the Demo →

Video Elements Mobile

Video Elements Mobile
Video Elements Mobile Home →View the Demo →

WordPress Mobile Plugins

MobilePress – Enable The Mobile Web →
MobilePress is a free open source plugin that is flexible in that it allows you to customize your mobile presence by creating your own themes, creating themes for specific mobile browsers (iPhone and generic devices) and also allowing you to decide when to display your mobile blog.

WPmob Lite →
WPmob automatically transforms your WordPress blog into an iPhone application-style theme, complete with ajax loading articles and effects, when viewed from an iPhone, iPod touch, Android, Opera Mini, Palm Pre, Samsung touch and BlackBerry Storm/Torch mobile devices. The admin panel allows you to customize many aspects of its appearance, and deliver a fast, user-friendly and stylish version of your site

WP Mobile Detector →
WP Mobile Detector is a simple plugin that automatically detects standard and advanced mobile devices and displays a compatible WordPress mobile theme.

Mobile Kit →
MobileKit is a small WordPress plugin created to make the development of WP mobile themes and apps simple, allowing theme designers to create more immersive user experiences across platforms and devices.

BAAP Mobile Version →
The BAAP Mobile Version is a complete toolkit to help mobilize your WordPress site and blog.
It includes a mobile switcher to select themes based on the type of user that is visiting the site, a selection of mobile themes, extra widgets, device adaptation and a mobile administration panel to allow users to edit the site or write new posts when out and about.

BuddyPress Mobile →
This is a Mobile BuddyPress theme that has been optimized for viewing onthe iPhone and iPod Touch, and will also work on Android and some Blackberry devices.

WordPress Mobile Tutorials

Mobile WordPress Theming →
In this four part tutorial series, from Mobile Tuts+, you will learn how to create a powerful mobile WordPress theme that can be applied to your blog making the site easily accessible to mobile users.
Mobile WordPress Theming: Day 1 →
Mobile WordPress Theming: Day 2 →
Mobile WordPress Theming: Day 3 →
Mobile WordPress Theming: Day 4 →

Making your WordPress Blog Android and iPhone Friendly →
This article is intended for those who already have a web or WordPress background. If you don’t quite understand how to put together your own templates, this detailed tutorial may not for you.

Mobile Browser Detection →
This tutorial covers everything you will need to know about mobile browser detection covering a spectrum of various options, including a WP solution and a PHP solution.

Redirect Mobile Users to a Mobile WordPress Theme →

Detect Mobile Browsers – Mobile User Agent Detection →
This PHP function lets you choose how to manage your mobile visitors, they can be redirected to a page built for mobiles or you can use it to decide which markup language and stylesheet to show that user.

Add a Mobile Landing Page to Your Site →
This tutorial isn’t about creating an entire mobile version of your site, instead it is a means of offering a quick introduction to visitors from the mobile world before passing them through through to your main site.

You might also like…

WordPress Shopping/Ecommerce Toolbox (Plugins and Themes) →
30 Grid-Based WordPress Themes →
40 More Stylish, Minimal and Clean Free WordPress Themes →
20+ Free and Stylish Typography WordPress Themes →
30 Brand New Quality WordPress Themes →
10 Blank/Naked WordPress Themes Perfect for Development →
25 Fresh, Clean and Unique WordPress Themes →
40 Awesome and Fresh WordPress Themes →
Essential WordPress Plugin Development Resources, Tutorials and Guides →
20+ Powerful WordPress Security Plugins and Some Tips and Tricks →

10 Completely Free Wireframing and Mockup Tools

The wireframing process is the straight-to-the-point and completely non-tech stage of any web project. It only requires that you define a skeletal outline of essential page elements such as headers, footers, navigation and content area and should illustrate how to cater and respond to any possible interaction from a user.
It is the most important, yet underused, stage of any web or apps development.

There are several avenues you could take for sketching a wireframe, most notably pen and paper (the easiest and most cost effective way), but for the sake of this article we have focused on apps that are not only highly effective and easy to use, they are also completely free.

We have covered free wireframe apps before (here), but a year is a long time in web development – some of the apps we had previously covered are either no longer completely free or are no longer available. And as such, we felt that we should compile a new list with more detail and covering all areas of design including web pages, mobile apps and application dev.
As well as showcasing a variety of free apps (11 in total), at the bottom of the post, we have also highlighted some premium wireframing services that do offer free, yet limited, options. You may like to try them.

Please note that all of these apps have been confirmed as completely free on this articles publishing date.

Lumzy - Quick Mockup Creation and Prototyping Tool
With Lumzy, you can create mockups of how your site or application will function by adding events from the extensive list of controls on offer. As well as having great tools for creating your mockup, you can also create Message Alerts, interactive Page Navigation, add Links to external content, and much more. It does offer a great set collaboration tools for live team editing and a chat engine for deliberating over designs. All of this and it is absolutely FREE.
Lumzy Homepage →View Editor →

Lumzy Editor Screenshot

Lumzy Demo

Mockup Builder
Mockup Builder has just recenly been released and looks very promising. It is feature-rich and versatile by allowing you create various prototyping styles, including: UI mockups, interactive wireframes, website layouts, desktop software prototypes and even sitemaps & screen navigation.
Of course, it does come with great collaboration tools for sharing with clients and colleagues. And yes, it is completely FREE.
Mockup Builder Homepage →View Editor →

Mockup Builder Editor Screenshot

Mockup Builder Demo

Tiggr - Creating Prototypes Collaboratively
The idea behind Tiggr (currently in beta) is to give you the resources needed to create prototypes (for web, app or mobile) that look and feel like the final product. It allows you to design from a large number of components, share (via email, Twitter or Facebook), you can collaborate with any number of users and will generate an HTML/JS/CSS so that you can preview your UI mockups very quickly. A 10 second registration (email & password) is the only thing you have to go through to use this fantastic FREE tool.
Tiggr Homepage →

Tiggr Editor Screenshot

Tiggr - Creating Prototypes Collaboratively

Frame Box - Lightweight Online Tool for Creating Mockups
Frame Box does not have an extensive list of features (like the web based apps above). You can drag and drop, re-size and copy/paste the UI units, but its main focus, and why we like it so much, is that it allows you to create your mockup/prototype very, very quickly by using its very easy to use drag and drop interface. Again, this app is FREE and only requires a quick registration.
Frame Box Homepage →

SimpleDiagrams Adobe Air App
SimpleDiagrams (free version) is a tiny Adobe Air app that helps you express your design ideas quickly and simply. Drag & drop symbols from its libraries, add images or post-notes, export as a PNG are all of its features, adding up to just just enough functionality to create a decent mockup.
SimpleDiagrams Homepage →

iPhone Mockup
With iPhone Mockup you have a choice of using either the Pencil styled editor (screenshot above) or the Illustration editor (screenshot below). Whichever editor you decide to use, the functionality remains the same: Its a very simple and easy to use app that allows you to create your own iPhone mockups very quickly, share them with other people at the click of a button, and any changes you make will by synced to everyone who has the mockup’s URL.
iPhone Mockup Homepage →Illustration Editor →Pencil Editor →

iPhone Mockup Editor Screenshot

iPhone Mockup

fluidIA is a downloadable web based design tool for prototyping rich user interfaces. It allows for rapid refinement and exploration of concepts using an object-oriented approach to design. The original idea behind fluidIA is to discover whether a group of interaction designers, IA’s, UX professionals and developers can create there own prototyping tool in an open way. Progress on FluidIA has been a little bit slow recently, but the actual app works perfectly for designing a wireframe mockup.
fluidIA Homepage →Fluidia (GitHub) →

fluidIA Editor Screenshot


Pencil Project
Pencil Project is a free and opensource Firefox addon for designing GUI prototypes. With its built-in stencils you can create linked multi-page UI documents and finally export your mockup in either HTML, PNG, document, Word document or PDF. What more would you want from a wireframing app? This truly is an essential Firefox extension that any serious developer or designer should use.
Pencil Project Homepage →Screenshots →

Pencil Project Editor Screenshot

Pencil Project Screenshots

CogTool - General Purpose UI Prototyping Tool
CogTool is a FREE and powerful general purpose UI prototyping tool with a difference – it automatically evaluates your design with a predictive human performance model (a “cognitive crash dummy”). You simply create a storyboard of your design idea with sketches, images or on a canvas with CogTool’s widgets, demonstrate tasks on that storyboard, then press a button to produce a valid cognitive model predicting how long it will take a skilled user to complete those tasks. CogTool offers a lot of support via its extensive user guides, step-by-step tutorials (video and articles), its forum and also offers example files to help you get started.
CogTool Homepage →

Software Prototyping - Serena Software
Prototype Composer makes it possible to simulate how an application will look and function before any code is ever written. Instead of endless text entries, complex data hierarchies, or too technical UML diagrams, Serena Prototype Composer makes it easy for business users and business analysts to collaborate on requirements by building simple, high fidelity prototypes that simulate a working application. It is a tool for prototyping data, processes, activities and most importantly, user interfaces. The application also works as a fairly easy to use Project Management tool.
The Community Edition is its free version which allows users to work in a sample project as well as in one user-defined project.
Prototype Composer Homepage →

DENIM is a free desktop application that is available for Windows, Unix, and Mac OS X. DENIM describes itself as “an Informal Tool For Early Stage Web Site and UI Design”.
It combines many of the benefits of paper-based sketching with existing electronic prototyping tools. It allows designers to quickly sketch an interface, preserving the important properties of pencil and paper: a rough drawing can be produced quickly and the medium is flexible. However, unlike a paper sketch, this electronic sketch is interactive and can easily be annotated and modified.
DUB – DENIM Homepage →

All of the Wireframe/Prototype/Mockup web-based applications below are premium services that do offer a free, yet limited, option. You may like to try them:

MockFlow: Online Wireframe Tool

MockFlow: Online Wireframe Tool
MockFlow Homepage →

Gliffy – Online Diagram Software and Flowchart Software

Gliffy - Online Diagram Software and Flowchart Software
Gliffy Homepage →

Naview – Create Easier Navigations Through Prototyping and Testing

Naview - Create Easier Navigations Through Prototyping and Testing
Naview Homepage →

iPlotz – Wireframing, Mockups and Prototyping

iPlotz - Wireframing, Mockups and Prototyping
iPlotz Homepage →

Creately – Collaborative Online Diagram Software

Creately - Collaborative Online Diagram Software
Creately Homepage →

FlairBuilder – Wireframes. Mockups. Prototypes

FlairBuilder - Wireframes. Mockups. Prototypes
FlairBuilder Homepage →

Cacoo – Create Diagrams Online

Cacoo - Create Diagrams Online
Cacoo Homepage →

Mockabilly – iPhone app mockup

Mockabilly - iPhone app mockup
Mockabilly Homepage →

You may also like…

An Introduction to HTML Prototyping →
A Collection of Useful Web Design Wireframing Resources →
A Collection of Printable Web Browser Sketching and Wireframe Templates →
15 Javascript Web UI Libraries, Frameworks and Toolkits →
25 UI Inspiration and Design Pattern Resources →
50 Essential Web Typography Tutorials, Tips, Guides and Best Practices →
25 Free Pictogram and Symbols Sign Icon Sets →
Illustrator Template Toolbox for Web, Mobile and App Developers →
20 Free Web UI Element Kits and Stencils →

Essential Tips for Maintaining and Speeding Up WordPress

WordPress is one of the most popular and widely-used blogging platforms and CMSs (content management system). The reason is it’s easy to install and use, so you can focus on creating content rather than building and maintaining your website. Everything from small personal blogs to big digital magazines like Smashing use WordPress to run their sites. Chances are you’re using WordPress for your own site or are planning on using it. Well, although WordPress is fine out of the box, it’s not optimized – and worse, it can crash when you start getting more traffic. Lucky for you, this article brings you essential tips for maintaining and speeding up WordPress.

Using these simple and free tweaks and plugin installations, you can:

Maintain your WordPress site to be in tip-top error-free shape using automated methods so you don’t need to waste your precious time

Speed up your WordPress site so it not only loads faster but holds up to traffic spikes

Monitor your WordPress site so you’re aware when a problem pops up and how to quickly fix it

All of which will ultimately free up your time to focus more on creating content and great work, not wasting time fixing your site when it goes down. So without further ado, here are the essential tips for maintaining and speeding up WordPress…

1. Regularly backup your database

In case your WordPress-powered blog breaks or you need to reinstall WordPress. You’ll have all of your latest pages, posts and comments in a handy file. Automate this by using the WP-DBManager plugin. You can set it to regularly backup your database and save a file on your hosting or by emailing an attachment.

2. Optimize your database

Again, you can use the WP-DBManager plugin to automate this.

3. Regularly backup your WordPress files

This means your images and plugins. Automate this by using the WordPress Backup plugin. You can set it to regularly backup your WordPress files and email an attachment.

4. Reduce spam comments

Have Akismet plugin running and filtering out the spam comments. This will save you time by helping speed up comment moderation/reading/replying.

5. Make sure you don’t have unnecessary 404′s

This is when people try to access your pages and posts and get a 404 error message page instead. Use the 404 Notifier plugin to identify the 404 errors and fix them with redirection by using the Redirection plugin.

6. Switch to pretty permalinks

That is if you haven’t already. Go to Settings > Permalinks panel and choose a pretty permalink style (like ““). Like the URL style that Speckyboy here has, rather than the “/?p=X” permalink style that WordPress for some reason still insists on defaulting to. This not only helps with SEO (search engine optimization, since the keywords people would use to find your post will be right there in the URL) but with human readability. It becomes obvious what you’re going to read as well as making it easier to share.

7. Automate basic SEO (search engine optimization)

Install the All in One SEO Pack plugin. Add your title, keywords, and description in the plugin options screen. This will make it easier for people who are searching for what you have to find you.

1. Use caching

Install the WP Super Cache plugin and enable the Gzip option. This will load only the appropriate cached content to visitors rather than loading every single script and element of your WordPress site. Your bandwidth is greatly reduced and you avoid your site going down during traffic spikes (and if you’re making a kick-butt site with kick-butt content, you should expect them more often than not).

2. Reduce the CSS files to as few as possible

Combine multiple custom CSS files into one big one. The less individual CSS files the theme needs to read the faster it’ll load. Simply copy/paste the code from individual CSS files into the main style.css or a custom.css file in your theme.

3. Reduce the Javascript files to as few as possible

Combine multiple .js files into one big one. The less individual .js files the theme needs to read the faster it’ll load. You can copy/paste the code from individual Javascript files (/js/jquery.js, /js/jquery.slider.js, /js/jquery.tooltip.js) into a new single Javascript file (/js/jquery.js,jquery.slider.js,jquery.tooltip.js).

3. Put as much Javascript code as possible in the footer

In the footer.php file of your theme, or in the footer section in your theme’s customization panel if applicable. This is so that the Javscript calls load last. This way, your visitors will be able to quickly read the content while the Javascript loads in the background.

4. Use as few plugins as possible

The less plugins need to load the more stable your WordPress site can be (and slightly faster in certain cases if a plugin isn’t properly coded). Do that by seeing if you can copy/paste code or hand-code the functionality into your theme, or using a theme that has the functionality built-in, or having it designed or customized for you. This doesn’t mean don’t use any plugins, especially since this article is suggesting plugins for WordPress optimization – just stick to only the essential ones rather than random sidebar widgets and whatnot.

5. Speed up image loading

Use the Amazon S3 storage service to upload and host your files. The images will load faster and your visitors won’t have to wait as long for them to load – especially important for web and visual designers with lots of images and portfolios to showcase. You can use the Amazon S3 for WordPress plugin to streamline image uploading and inserting into your pages and posts.

1. See your basic hosting server info and WordPress PHP memory usage

Install the WP System Health plugin. This can let you see if there are memory issues so you can identify and fix the problem rather than blindly trying things when your WordPress site is slow.

2. See more detailed hosting server info

Install the Hosting Monitor plugin. This will let you know if slowness or any other performance issues are something to do with WordPress or your hosting, and you can fix it or contact your hosting accordingly.

3. Have any WordPress errors logged and notifications emailed

Install the Error Reporting plugin. Since you’ll be notified right when an error occurs, you can fix it right away.

By using these tweaks and installing these plugins, you’ll not only take your WordPress site’s performance and stability from merely okay to great, but you’ll automate a lot of it so that you don’t have to spend time maintaining your site. Not to mention you won’t have to waste time fixing and trying to get your WordPress site back up when it crashes from a traffic spike or whatnot.

All of which boils down to why you should even care about any of this in the first place: you free up time to focus on creating content and great work.

Over to you: what are some other essential tips for maintaining and speeding up WordPress that weren’t featured here? Feel free to share your useful additions in the comments section below.

You might also like…

20 Plugin Replacing Tutorials, Tips, Snippets and Solutions for WordPress →
Dummy Content Filler Resources for WordPress, Drupal and Joomla Developers →
10 Useful WordPress Search Code Snippets →
30 Grid-Based WordPress Themes →
40 More Stylish, Minimal and Clean Free WordPress Themes →
20+ Free and Stylish Typography WordPress Themes →
30 Brand New Quality WordPress Themes →
10 Blank/Naked WordPress Themes Perfect for Development →
25 Fresh, Clean and Unique WordPress Themes →
40 Awesome and Fresh WordPress Themes →
Essential WordPress Plugin Development Resources, Tutorials and Guides →
20+ Powerful WordPress Security Plugins and Some Tips and Tricks →