Mobile Friendly
Drupal & WordPress
Responsive Websites



iMac with Zenific website

Larry works with clients worldwide to make custom responsive websites powered by either Drupal or WordPress CMS. Each project is analyzed independently with a fresh perspective, to reflect the company's branding and achieve a distinctive look. Websites are designed to be mobile friendly, feature rich, secure, and have good SEO. Websites are initially locally built in Linux to match the typical hosting environment, and some use Git version control. All websites are kept up-to-date with the newest core and module versions so that they function well and stay secure.


Petrequin College Consulting

The website is great! It has brought me both compliments and clients. Thank you!

Marilyn Petrequin | College Consultant
This custom designed responsive website is built with Drupal 7 using Panels. It includes two long evaluation forms, a Leaflet location map, an interactive calendar, and a slideshow.

Website displayed on an iPad
Horizontal view of website on iPhone

Cockpit Lights

Larry made an awesome new redesign of the website for my business at a terrific price!

David Hoffman | David Hoffman Products

Aircraft lighting manufacturer website made with Drupal 7 which includes a responsive slideshow. Completely custom made design using Panels.

Website on laptop computer
Website on screen of mobile phone

Nissan Photo Contest Winners

Balancing Greatness
Nissan Pathfinder on top of Balancing Rock in Arches National Park (with a little help from Photoshop).

Nissan Armada plows through the ocean leading the Spanish Armada
Nissan Armada plows through the ocean leading the Spanish Armada.


Meet Up

Meet Up ⇨

Free initial consultation either by email, phone, Skype, or in person, depending on your location and preference. I want to get an understanding of your business, your customers needs, and your future goals so that I can craft a plan specifically for you.


Brainstorm ⇨

I'll put together a plan of action and determine the requirements. We'll discuss it, make changes if necessary, and come to an agreement.


Design ⇨

Assemble content, such as text, images, icons, graphics, for a website to be powered by either Drupal or WordPress. Then get the website installed locally, set up the initial layout, and add content to it.

WordPress CMS


Powering a fourth of the world's websites now, WordPress makes lots of things available to have on your website, like slideshows, image galleries, blogs, and private areas. The administration section is very user friendly. You can easily add, edit and delete content right on your website.

Drupal CMS


Drupal is the world's 2nd most popular Content Management System (CMS) after WordPress. It doesn't power nearly as many websites, but many it does are large and powerful. Drupal runs lots of large corporate and government websites, from the Weather Channel to the White House.

Develop the website

Features ⇨

Add site functionality with features such as slideshows, animation, maps, forms, e-commerce, shopping carts, private sections, etc, depending on what you need for your website. Google Analytics is normally included with all websites.


Checklist ⇨

Check everything before going live. Since I build websites locally in Linux and use a recent version of PHP, uploading and setting up new websites to reputable Unix-based hosting usually goes very smoothly.

Launch your website


Take your new website live. Make checks and do any necessary tweaks, so that it's secure, looks and runs great, and is fully functional.


Web Design

Modern CMS Websites

Larry on making modern websites: “Drupal offers probably the most flexibility and power of any open-source content management system (CMS). I do custom theming using Panels, or else use existing themes, depending on the project. WordPress has a very user friendly administrative backend, and is nice to use on less complex websites. This website was made using WordPress 4.”
WordPress & Drupal Features:
  •  Contact Forms
  •  Custom Made Forms
  • Photo Galleries
  • Slide Shows
  • E-Commerce
  • Shopping Carts
  • Maps
  • Blogs
  • Visitor Comments
  • Community Forums
  • Multi-Lingual
  • Site Search Engines
  • Accessibility
  • RSS Feeds
  • Calendars
  • Password sections
  • SEO optimization

Graphic Design

Larry on graphics: “Icons, logos and infographics can set the tone for websites. Depending on the use either I use existing graphics, alter or embellish them, or make new ones from scratch, particularly with logos, since they need to be unique. I use Adobe Illustrator and Photoshop for creating custom graphics.”



Larry on photography: “I enjoy both taking and editing photos, to optimize their size and look for use on websites. Keeping file size down is important on mobile devices. Doing this helps websites I've made to load quickly. Generally I use either photos provided by the client, appropriate photos I've taken, or pictures with Creative Commons Zero (CC0) licenses from stock photo websites.”
Young Buddhist monks playing chess


Zenific Videos

Larry on videos: “I made 4 Thai food videos in 2012, which are on the Zenific channel on YouTube. Three of them are full of special effects using green screen backgrounds. It was fun making them. I'd love to make more videos on any topic if anyone would like a custom video made.”
Thai food video

Technical Details

Technical Stuff

Larry on technical stuff: “The internet has changed tremendously since I started making websites in 1999. The limits of what can be done has been expanded tremendously by modern browsers. I've completely changed the methods I use to make websites, and try to use open source software as much as possible. One of the things I do now is build them locally in Ubuntu Linux. This provides a development environment that's virtually the same as any Unix based server, which means transferring the site to a remote server is usually very smooth. I've become a whiz at using the Linux command line. What's particularly important on the command line is quickly and accurately setting ownership and permissions for all the hundreds of files Drupal and WordPress come with with just a few commands. Without that modern CMS websites won't run well, particularly with WordPress, which needs special ownership permissions. It's important too for site security.”
Tools I use:
  • Linux
  • HTML5
  • CSS3
  • SASS
  • PHP5
  • JavaScript
  • jQuery
  • Git
  • AJAX
  • Apache
  • SQL
  • Ubuntu
  • Windows 7
  • Drush
  • Compass
  • Composer
  • Singularity GS
  • Bootstrap

Websites for...?

Types of Websites?

Larry on types of websites: “I've made websites for a wide range of clients, such as manufacturers, online sellers, consultants, spas, travel agencies, clubs, resorts and organizations. Websites I make powered by Drupal or WordPress can provide the features needed by just about any type of business or organization. You can have both form and functionality.”
Types of enterprises:
  • Resorts & Clubs
  • Hotels & Motels
  • Restaurants & Cafes
  • Nightclubs & Bars
  • Online Entertainment
  • Startups
  • Professionals
  • Travel Agencies
  • Governments & NGO's
  • Environmental
  • Manufacturers
  • Real Estate
  • Retail Shops
  • Medical & Dental
  • Chiropractors
  • Therapists
  • Opticians
  • Legal Services
  • Spas, Massage & Yoga
  • Online Reservations
  • Shopping Carts
  • Schools & Education
  • Small Businesses
  • Organizations
  • Sports Clubs
  • Special Events
  • Music Groups
  • Non-Profits
  • Automotive
  • Anything I can add?


Web Design

MDDHosting logo

MDD Hosting

I've been using MDD Hosting since 2012 and it's only gotten better since then. The 3 things I like best about their web hosting is that they reply with very knowledgeable responses to support tickets within a few minutes, they provide SSH Shell command line access at no extra charge, and they're very inexpensive, yet feature packed. A lot of companies charge extra for shell terminal access, if they even have it. What's gotten better is that now you can select whatever version of PHP you want using cPanel. They have the latest PHP versions installed, which is important when using a PHP based CMS like Drupal or WordPress. To get 50% off on your first order enter the coupon code WHT50 when order their service.

Things I like about MDD Hosting

  • Quick Response: Support tickets normally get answered in just minutes with knowledgeable replies.
  • Latest PHP Version: You get to select which version of PHP you want to use.
  • Shell Terminal: Lots of cheap hosting companies don't offer shell terminals, or if they do they charge extra for it. One of the benefits for me is that I can run Drush to add Drupal modules and updates easily.
  • Update Notifications: Get email notifications when Drupal updates are available for my websites, something most companies don't do.
  • Great cPanel: The cPanel they offer has an excellent File Manager. I can easily change permission levels and open files in any type of code and make updates without ever having to FTP files back and forth. Lots faster and less hassle that way for small changes. A lot of hosting File Managers are useless for doing those things, or even moving files about. The cPanel also has Softaculous, making it simple to install new Drupal and WordPress websites, and lots of other CMS's too.
  • Inexpensive: It's really cheap with a 50% introductory coupon, about US$3.15 per month. I recommend signing up for 3 years because after that's used up you can't use a coupon again. They'll give you 15% off the monthly rate to extend your service for another year, and occasionally offer some coupon discount that's never more than 25% off.
  • 50% off coupon: For your first MDD Hosting order use this coupon code: WHT50

Web Security

Web Security

Website security

Security & Maintenance Updates

Keeping your website up-to-date with new security releases, bug fixes, and improved features is important. Insecure websites are ripe grounds for thieves, who can take over your website by adding new users with administrative privileges to do whatever they want. The site can be used to collect personal information, such as user names, passwords, financial information, or they might add links going to malware sites. On good hosting platforms website updates are easy to perform, keeping your site secure.


Drupal security padlock

Is the designer's website the current version?

Drupal Version 7.39

Looking for a web designer or web agency to make you a new website running on Drupal or WordPress? See if they are keeping their own websites up-to-date, or if they just put sites up, then never maintain them. By checking you'll see that many web design firms don't even bother to. Do you really want to have another pretty but totally insecure website? It's easy to determine if Drupal and WordPress websites are up-to-date or not using the free browser plugin available. Any Drupal 7 website less than version 7.32 has definitely been hacked because there was a huge security hole patched with that version that hackers quickly took advantage of. It may not be apparent looking at websites that haven't been getting updated but hackers have a back door, and take control of these sites, or just mine them for user information such as login passwords and financial information if it's there. E-commerce websites that haven't been getting upgraded should particularly be replaced with completely new websites including new databases that don't have the old database data.

The latest stable releases as of July 2017 are Drupal 6.38, Drupal 7.56, and Drupal 8.3.5. Drupal 6 only gets updates for security releases now, and it is recommended to update websites to Drupal 7 or 8.


How to Version Check

How to Version Check Drupal & WordPress

WordPress security padlock

In Google Chrome add the free "Version Check for Drupal" plugin. When you're on a Drupal website a Drupal icon will appear to the right of the website's address, like in these screenshots. Click on the icon to display what version of Drupal it's running and whether it's the current version or outdated. Since security is extremely important I keep my websites up-to-date, and use secure methods for coding sites.
Drupal Version 7.31-Outdated
As of July 2017 the current version of WordPress is 4.8. There's also a "Version Check for WordPress" but it isn't free. They charge around $10 for it. There's no reason to pay for a checker though because there's a really simple way to find out. All you have to do is type in readme.html just after the website's url address. For instance, if the website is, just add readme.html at the end like this, Then you should see a page listing the WordPress version right at the top. I've done this on a random WordPress website to show that this method works.

WordPress readme page

If for some reason that doesn't display a WordPress version page, then right click on the website's home page and select 'View page source'. Then press Command+F (Mac) or CTRL+F (Windows) to open a search box. Type in 'generator' and do a search. In the head section of the HTML source code there should be one line listing the WordPress version.

If it's not there, make sure it's a WordPress website. In the source code you should see files listed in the head area starting with the prefix wp-. If none are there it's probably not a WordPress website. To see what the current version of WordPress is go to (not

WordPress Install

How to Correctly Install WordPress on Ubuntu Linux

Here is the easiest way to correctly install WordPress in Ubuntu Linux that I have found. Once you get the hang of it you can properly install a new WordPress website in just a few minutes. Most of this should apply for installing in Apple OS X too though I don't have a Mac to test it on. File and folder ownership and permission settings are very important for a WordPress website to run correctly. If incorrect you won't be able to easily install plugins and updates. Done right it makes them a breeze to perform. When I first installed WordPress websites it was very frustrating. The website seemed to install just fine, but then trying to do an update or add a plugin failed, with error messages saying WordPress didn't have permission to make changes. Googling the error messages got all kinds of results, and much of that was wrong. I've compiled the steps I've gathered from various sources and trial and error into this step-by-step tutorial. Now let's get started.

Download the latest version of WordPress from

Right click on the file you downloaded, such as Now you have a folder named 'wordpress'. Rename that to something else, whatever you want your project to be called. It's best to have a short 1 word name. Don't have any spaces in the name.

Copy and paste the folder into var/www. Clicking on the Files icon and navigating to where the folder is is the simplest way to do that.

I'm assuming you have a LAMP stack installed. Usually it is by default in Ubuntu. If not you'll need to do that. Google "LAMP install in Ubuntu Linux" to get directions if necessary.

You should have a code editor installed too. If you don't I highly recommend the totally free Komodo Edit 9.

Next, in a browser, preferably Chrome or Firefox, open localhost/phpmyadmin and create a new database. If you're not familiar with doing that it's simple. Click on the Databases tab and put the name in 'Create database'. Database names can't start with numbers and they can't have spaces. A short descriptive name is best. Write the database name, along with your username and password so you can access the database later.

Now comes the really important stuff. WordPress is very picky about file and folder ownership and permission levels. If they aren't correct then you won't be able to easily update and add new plugins to your website. Instead you'll get permission error messages and failed attempts. To do this you need to use the terminal. Open a terminal and then cd to your www directory.

To find out what groups your user account belongs to type this and press Enter:

$ groups

Now you need to add a snippet of code to see what group your web server belongs to. Open your code editor, navigate to your WordPress site in var/www and open index.php. At the very bottom of the page add this code:

echo exec( 'groups' );

Save that, then view your WordPress home page in a browser and in the bottom left it will display the name. Usually it's www-data. You'll only need to figure out the group name once, next time you install WordPress you can skip these steps.

Next go back to the terminal, and in the www folder type each line, then hit Enter:

$ sudo chown [your-ubuntu-username]:www-data [wordpress_folder_name] -R

$ cd [wordpress_folder_name]

$ sudo usermod -a -G www-data [your-ubuntu-username]

$ sudo find . -exec chown [your-ubuntu-username]:www-data {} +

For example, my Ubuntu username is zenific. If my WordPress folder was named 'toothpaste' these would be the commands:

$ sudo chown zenific:www-data toothpaste -R

$ cd toothpaste

$ sudo usermod -a -G www-data zenific

$ sudo find . -exec chown zenific:www-data {} +

That sets the ownership to the files and directories, aka folders, correctly for WordPress.

Now the permissions need to be set correctly. Here's what they need to be set to:
Permissions for all FOLDERS (aka DIRECTORIES) should be 775.
Permissions for all FILES should be 664.

To accomplish this with you still inside your WordPress root folder type these terminal commands:

$ sudo find . -type f -exec chmod 664 {} +

$ sudo find . -type d -exec chmod 775 {} +

In your code editor change the name of wp-config-sample.php to wp-config.php.
Next add the database settings to wp-config.php. For example, if the database is named toothpastedb you'd do it like this:

DB NAME: toothpastedb
DB USER: root
DB PASSWORD: rootpassword
DB HOST: localhost

Your password can be a simple one since you're on localhost. Of course use a strong password when the site is live.

While you are in wp-config, just below where you entered the database info there's a place to add keys. There is a link to copy -
Paste it into your browser. A page should display with keys for your website. Copy and paste those where the blank keys are located your wp-config.php file.

One more very important step to do in wp-config.php. Add the line of code below to the file. Without it when you try to make any changes to a plugin like updating or deleting it a box will come up wanting you to log in to your server:


Once that's done, back in the terminal type this command to set the correct permissions for wp-config:

$ sudo chmod 660 wp-config.php

The file wp-config.php should be 664 or 660, depending on your web server. Usually 660 is what should be used, that's best for security. Only use 664 if required to, such as if WordPress won't run with the file set at 660.

That's it, you should be all set now. Open your site in localhost, do the famous 5 minute easy install, which now should only take a few seconds, and your WordPress site will be up and running smoothly.

If you encounter any problems with this, such as errors using the terminal, the first thing to check is that your Ubuntu username has full privileges. If not you'll need to get that taken care of. After you do this install a couple of times you'll be able to do it fast and have a WordPress site installed and running correctly in just a few minutes.


Meet Larry

Larry Goodman at computer
Larry Goodman

Living in Chiang Mai, Thailand, Larry Goodman has been making websites since 1999 for businesses, organizations, and individuals. He currently specializes in making modern responsive websites powered by the world's two most popular content management systems (CMS), Drupal and WordPress. These websites are designed to be feature rich, responsive, mobile friendly, and secure.

Larry has made custom designed websites in all sizes and in multiple languages for American, Australian, and European companies. Currently he typically builds websites locally in Linux so that they will run optimally on most servers. He also uses Microsoft Windows and Macintosh OS for various projects.


Your Name *

Your Email *


Your Message *

* = required field

Get in touch

I work with clients worldwide on projects
from concept to delivery,
and post-delivery too,
keeping websites up-to-date and secure.