Frequently Asked Questions

Creating Taxonomies Programmatically in Drupal 7
DUGLV, Pinkpeas
2013-09-21

Keyword Ranking with Rank Tracker
DUGLV, Pinkpeas
2013-09-21

Keyword Ranking with Free Monitor for Google
DUGLV, Pinkpeas
2013-07-20

Drupal 7 Essential Modules
DUGLV, /usr/lib
2013-03-13

Creating a Drupal 7 Distribution
DUGLV, /usr/lib
2012-12-05

Drush 5 Installation and Basics for Windows
DUGLV, /usr/lib
2012-11-07

Ubercart Affiliate v2 Drupal Module
DUGLV, /usr/lib
2012-09-12

Artisteer for Creating Drupal Themes
DUGLV, Pinkpeas
2012-02-17

Drupal 6 Base Installation Settings
DUGLV, Pinkpeas
2011-11-04

Drupal 6 Modules for Every Website
DUGLV, Pinkpeas
2011-09-09

iTransact Basics
SDWTG, Hampton Inn
2009-01-15

CubeCart 3.0
SDWTG, Hampton Inn
2008-10-16

Dupal 5 Installation
SDWTG, Escondido YMCA
2007-10-18

Joomla 1.5 Installation
SDWTG, Ramada Inn
2007-08-16

I began working with Drupal in February 2008, with version 6.1. Since then, I have:

Like all technical professionals, web developers must keep their skills up-to-date. I do so by staying active in the web development world — specifically:

  • writing web development articles for various publications
  • reading computer programming books, and writing detailed reviews, which are published on leading technical news websites
  • editing programming books for publishers
  • participating in technical user groups
  • giving talks on web development topics
  • listening to podcasts on the latest innovations and tools in the world of web design and development
  • contributing user styles to improve the user interfaces of popular web services
  • Web scripting and formatting languages: PHP, HTML, CSS, JavaScript, XML, RSS
  • CMSs: Drupal, Joomla, WordPress
  • Database systems and tools: MySQL, SQL, Perl DBI, Oracle, PL/SQL, Sybase
  • Desktop software languages: Perl, Java, C / C++, Unix shell scripts
  • Shopping carts: CubeCart, 1ShoppingCart, Magento
  • Payment systems: PayPal, Authorize.Net, iTransact

I use whatever technologies are best suited for the client's needs. In most cases, they include:

  • Drupal, for many reasons
  • PHP is the most popular Web scripting language. It generates Web pages dynamically, and thereby makes possible interactive websites, eliminates redundant HTML code, and reduces the time needed for modifying a website.
  • CSS is the best tool for Web page styling and layout. It makes future changes easier and faster, and improves a website's visibility to search engines and its accessibility to blind visitors.
  • MySQL is the most commonly used Web database system. Like the above technologies, it requires no licensing fees.
  • I am skilled in all the leading Web technologies, programming languages, database systems, shopping carts, payment gateways, content management systems, and accessibility standards. Few developers can offer that breadth of knowledge.
  • Unlike most developers and agencies, I do not build a website such that the client is forced to come back to me for making changes in the future. I create websites using open-source tools, so the client is never dependent upon me, and a second developer could step in and take over, if needed.
  • Clients often tell me that I really listen to them, keep them up-to-date on progress, clearly explain technical information, respond quickly to any requests, and help their businesses by devising innovative solutions to a wide range of problems.
  • I'm usually available seven days a week, from 8 a.m. to 9 p.m. (Pacific time).
  • My meticulous organizational skills make it much easier to manage and modify a website, because the files and directories are neatly organized and easy to find.
  • I have a proven track record, of more than a decade, working with established businesses, startups, colleges, and nonprofit organizations. My portfolio of successfully completed projects includes work done for a variety of organizations.
  • Unlike many other freelancers, I always meet deadlines, oftentimes completing projects ahead of schedule.
  • My rates are reasonable. I charge by the half-hour, and always round down to the nearest half-hour, as a courtesy to my clients. (Most freelancers charge by the hour, and round up.)
  • I can work independently, or in conjunction with a team or a sole Web designer.
  • I complete work quicker than most developers, and oftentimes can start within minutes of the client sending instructions.
  • Despite zero advertising, I am experiencing increasing demand for my services, because my clients often refer me to other businesspeople.
  • I am the highest ranking independent website developer in the world on Google Search, since early 2009.

I am able to work at a very rapid pace and finish the work faster than most developers, while maintaining quality, for several reasons:

  • Decades of experience have taught me what tools to use to get the job done as efficiently as possible.
  • The code I write is reliable, clean, and well structured — which makes it much easier to modify if needed.
  • The websites I build use CSS for layout, which makes styling easier.
  • I'm not interrupted by telephone calls, television, and other distractions.
  • Because I'm in steady demand, I try to wrap up projects without delay, so I can move on to another project — oftentimes for the same business owner.

My portfolio section describes websites I have created, with screenshots and project summaries.

Several of my clients are "refugees" of irresponsible developers who disappeared, without passing the client along to another developer — which is inexcusable. Fortunately, I'm the exact opposite: I have been here for my clients for over a decade, and look forward to continuing to provide the best service available, in the decades ahead.

This FAQ section has more detailed information, but my overall approach is:

  • As soon as I have a complete description, in writing, of what you want in your website, I can build it.
  • My preferred form of communication is email.
  • I charge by the half-hour, and always round down.
  • Invoices are sent at the end of the month, and are due upon receipt.
  • For any sizable project, prior to my getting started, I need a deposit of 50 percent of the minimum estimated cost of the project. Once a client has made a few payments, no further deposits are needed.
  • Because of my years of experience, I'm able to complete tasks faster than most developers.
  • Clients often comment that they find me extremely responsive, and that's partly because I work seven days a week, so I'm almost always at my computer.

Sorry, no. For many reasons, I do not do unpaid speculative work. Also, any designs made for a proposal tend to be created to impress the client and not the website's target audience. Producing an excellent website design is a partnership between the client and the designer.

To develop a new website for you, I need to know exactly what you want it to be able to do. That information forms the project specification (often referred to as the "project specs" or "design brief"). Please send me the following in an email message:

  • A list of all the desired features (unless you already sent me a complete list).
  • The text for the website — or at least everything needed for the homepage — or indication that you want me to use the text on your existing website, if any.
  • The images (a logo, a staff photo, product photos, etc.) and other multimedia for the website. The higher the resolution of the images, the better.
  • For all the administrative users who will need to login to the website and make changes: each person's name, email address, and a chosen username. I could set the usernames if you have a preferred format. I will set the initial passwords, which can always be changed later.
  • If you already have a Web host, then I need the access information (username and password) for the Web host (FTP) and for the database admin (typically cPanel). If you do not already have Web hosting, or you want a better provider, please see my instructions.
  • Planning: I discuss with the client what she is looking for in a new website. The client chooses a domain name (if one is not already registered), and opens a web hosting account. The client tells me the project specification, and we clarify any remaining questions and options.
  • Development: I build the website. This includes creating any needed content types, user roles, and test users, as well as installing and enabling modules. If the client has requested that I design the website, then I install and possibly customize a theme. When the website is functional, I make it available to the client on a staging server, for review.
  • Feedback: The client confirms that the website incorporates all of the requested functionality, or identifies any discrepancies, which I then fix. The website is then complete.
  • Launch: I deploy the website to the client's server. The website is then "live" on the Internet.
  • Promotion: To increase the new website's publicity, the client may at this point use a variety of online marketing techniques. This may include hiring me to write and distribute an online press release, announcing that the new website is open for business. At the very least, a link should be published on a known web page, so search engines can find a new website and index it.

Years of experience have shown that large projects are best created in phases (with each phase invoiced separately):

  • The success of each phase allows both parties to verify that the project is on track, and to know what is the next step.
  • At each stage, both parties have tangible proof of commitment, in the form of completed work and cleared payments.
  • Cash flow is improved, by spreading out payments over the entire project, which helps accounting and budgeting. Prompt payment of invoices is especially critical for small businesses such as mine. If I do not receive a milestone payment, then I stop working on the project.
  • After each phase, both parties have a chance to provide timely feedback, thus minimizing risks and maximizing both parties' engagement in the process.
  • Each phase can be started when I have received payment for the prior phase and the client has decided on all of the work that she would like done in that subsequent phase.
  • Estimates are more accurate, because it is easier for Web developers to provide accurate quotes for smaller amounts of work.
  • Overall website delivery is faster, because some parts of it can be launched while others are in development, thereby preventing a single part from stalling the remaining parts.
  • There are more marketing opportunities, because each new feature can be publicized when it is launched, thereby motivating the public to visit the website again to try out the feature.
  • Your website address.
  • Your company's exact name and address (if it is not on your website).
  • Your Web hosting company's name and website address.
  • The access information (username and password) for the Web host (FTP) and for the database admin (typically cPanel). This information likely was sent to you by your Web hosting company when you signed up with them. I need this information so I can download any existing multimedia files, and then later make changes to your website.
  • The access information for the account administration tool and any databases.
  • The details of your shopping cart (website address, username, and password), if applicable.

For discussing the details of your project, email — or a collaborative project management tool, such as Basecamp — is much better, for many reasons:

  • The information is saved online, and serves as a valuable record of our discussion.
  • Email messages can be searched and referenced at any time in the future, so we do not have to rely upon our memories of phone conversations.
  • Any messages can be resent if necessary.
  • Both parties can take all the time and space they want, to be exact in describing questions and answers. When you express what you want in your own words in an email message, it reduces the potential for misunderstandings.
  • Project requests conveyed in a phone conversation can be (unintentionally) vague, which causes frustration and wastes valuable time. In contrast, email messages encourage us to be more specific.
  • Everyone has the information they need to do their tasks, which saves time and reduces the chances of miscommunication.
  • Files and website addresses can be easily sent via email.
  • Email allows us to send and receive messages whenever we want, day or night. It is not intrusive nor does it interrupt what we are doing, as does a phone call. We can receive and send information at our convenience, not dictated by a ringing telephone.
  • Because I spend my productive time at my computer, it is easier to read and respond to an email as soon as it is received.
  • I'm more productive with no phone, as it allows me to concentrate on work, since writing code requires uninterrupted focusing.
  • Contacting me via email is just as fast and reliable as would using a phone, because I'm at my computer for most of the day.
  • Any project instructions will need to be provided in writing anyway — either as a project specifications document or in an email message.

You will. I build most new websites using Drupal, which is "open source" — both the core code and any contributed modules. This means that I don't own any of the code, and it is licensed to be freely used by you. Non-Drupal third-party applications, which are typically not needed for the websites I build, are owned by their respective creators, and usually offer a license for use by anyone, without charge. You will own the text, images, and other content that you create, including anything edited by me. Copyright and ownership of the complete website are transferred to you, the client, only when full payment for the project is received.

I reserve the right to use a screenshot and description of the website in marketing materials, which at this time is only the portfolio section on my website.

Yes, but I would need all of the required information, including the credit card details to pay for the service. Some of my clients find it easier to give me that information (which naturally I keep completely confidential), but most clients sign up for the services themselves, and then send me the login information that I need for accessing the account.

I recommend that all my clients choose reliable Web hosting and domain name registration services, which can save a lot of time and trouble. If a client insists upon using a problematic hosting service (such as Go Daddy or Network Solutions), then it will cost extra because it will take more time to set up and maintain the website. If a client-chosen hosting service is causing us many problems, then the client must open an account with a service I recommend.

Yes. If you send me the website addresses for all of your leading competitors, then I can research what they are doing right and wrong on the Web, and suggest ways that you can leverage this knowledge.

Each paragraph (i.e., set of contiguous lines) represents a table. The first line is the table's name.

All of the other lines are fields within that table. You can think of them as columns in an Excel worksheet. The first field is usually an ID number, which is a 10-digit number that uniquely identifies the particular record.

For each line, the possible components are:

  • Field name: The name is lowercase, except for acronyms. Title case is used for labels on forms and reports.
  • Data type: characters, digits, or "Yes/No".
  • Data size: For example, "4 digits" can go up to 9999.
  • Optional: The column can have no value, such as when a record is first created.
  • Unique: Each record will have to have a unique value for this field.
  • Allowed values: Specified using a computer notation known as a "regular expression", which might be puzzling at first glance, but which computers understand exactly. E.g., "x|y" means "x or y".
  • Default value: The value used if the website visitor specifies no other.
  • Notes: Appears next to the entry field on a form, to help the user understand the purpose of the field.

When making any changes to the design, use the exact format described above — including the use of two spaces to separate components — because the design needs to be read by a computer program.

All client information is kept strictly confidential. I respect your privacy, and will never sell or distribute your organization's sensitive data, such as contact information, ideas for new businesses, etc. Over the years, my clients have learned to trust me to the point where many of them provide credit card numbers (so I can order services on their behalf). Occasionally, an organization requires that I sign a nondisclosure agreement (NDA), and I have no problem doing that, as long as the form does not solicit confidential information.

Most of my clients simply tell me the passwords needed for changing settings in their accounts. In fact, I'm often the one setting those passwords. But if you prefer, you could set any password to a temporary value, and then later set it back to its original value, after I've finished accessing the particular account.

How limited is limited? I don't need to know any exact amounts, but I definitely need to know a ballpark figure for your budget, so that we don't spend time discussing a project that cannot be afforded. Please let me know. Thanks for your understanding.

Like other web-based professionals, I do not accept cash, because it can get lost in the mail, with no recourse. The fees for my services can be paid using a bank check or wire:

  • A bank wire costs a nominal fee, but it is the fastest and most secure method, especially for international money transfers. Also, it allows me to begin work on your project immediately.
  • A bank check is free, but it takes a few days. Most banks offer free electronic bill payments, in which they cut and mail the check for you.
  • In either case, contact me for the bank account information.

There are several reasons why PayPal is not the best choice for sending large sums of money, including these:

  • We are charged a PayPal fee that costs much more than any bank check or wire.
  • Consequently, either I end up not receiving the full amount for my work, or you pay more for it.
  • When a bank sends a check or wire to another bank, the money is truly transferred. But with PayPal, they can retract the money at any time and without warning, even if it has been withdrawn from the destination PayPal account.

All client information is kept strictly confidential. I respect your privacy, and will never sell or distribute your organization's sensitive data, such as contact information, ideas for new businesses, etc. Over the years, my clients have learned to trust me to the point where many of them provide credit card numbers (so I can order services on their behalf). Occasionally, an organization requires that I sign a nondisclosure agreement (NDA), and I have no problem doing that. If you think that is necessary, you could mail such a form to me, with a self-addressed stamped envelope, and I would be happy to sign it and send it back to you.

The time that it takes to develop a new website — and thus the cost to do so — depends upon the complexity of the website, including:

  • what features the website has (i.e. all the functionality it provides to visitors)
  • the number of pages
  • the amount of text and images
  • the size of the navigation menu
  • any multimedia elements
  • any e-commerce capabilities (such as online products and a shopping cart)
  • the ambiguity of the project, and thus the amount of time required to clarify exactly what is desired

Website development costs can generally be charged in one of two ways: at an hourly rate for all hours spent working on the project, or a fixed bid for the entire project. If the client can specify exactly what she wants in a website, then a fixed-price estimate can be provided. But for undefined custom work, fixed-price contracts do not work well for either party, for several reasons:

  • They often limit the client to her first idea about how the website should look or how it might work. I don't want to limit either a client's options or opportunities for her to change her mind.
  • To accurately estimate the total number of hours the project will require, the client would have to specify, in writing, the details of all the functionality of a new website or changes to an existing one. This information needs to include text, images, links, navigation, online forums, embedded audio and video, etc. — not all of which anyone can foresee ahead of time.
  • Small-business owners do not have the time for documenting all of this information. They find it much easier and faster to provide just enough information for the first cut of the website, and then provide general direction and specific instructions for future versions of the website.
  • Even if a website were defined in great detail, it would still be quite difficult to accurately predict how many hours of work it would take. For a substantial website, it can be impossible.
  • As the website is developed, the client typically learns of previously unexpected features that she wants to try. A fixed estimate upfront would miss these enhancements, and thus underestimate the capabilities of the finished website and the time involved in developing it.
  • Once a website's specifications have been detailed, it can discourage the client from quickly changing course as needed. Such documentation either becomes out of date, or it must be updated with all changes, and yet probably won't be read by anyone. Even perfect documentation is not strictly a part of the delivery.
  • Likewise, as a project progresses, we can encounter unforeseen technical challenges, which invariably can be overcome, but require extra work. This is especially true for projects that involve integrating multiple technologies, such as payment systems.

My billing rate depends upon the type of work, its urgency, and other factors. Contact me for more information. Developers with my skill set charge anywhere from $70 per hour to twice that.

Unlike most consultants, I do not round up to the nearest hour. Instead, I round down to the nearest half hour. This saves the client money, especially for many small tasks requested separately.

For anything but small tasks, I require 50 percent of the estimated total as a prepaid nonrefundable deposit, before I can begin work on any projects or deliverables. A deposit not only helps to protect me, but you as well, because it commits me to completing your project and not getting sidetracked by other clients. Brand new clients don't get the privilege of "work now, pay later" service; established clients do.

I bill my clients at the end of every month. Invoices are due and payable upon receipt. Tardy clients quickly become ex-clients.

If you have a critical project that you would like me to begin immediately, or you anticipate such a project in the near future, then you are encouraged to prepay for a block of time, which will guarantee that your project will be the highest on my priority list.

I am compensated purely for my time spent developing a website and computer code, and not for any products. Thus I am liable only for my productivity during the time billed, and your solicitation of my services indicates your acknowledgement of such. You will find that I am dedicated to the highest in quality service, professional results, full confidentiality, and client satisfaction. This is why clients are happy to refer me to their friends and colleagues.

Some business owners worry that an unethical or incompetent developer will milk them for as many hours as possible, or simply walk away with the deposit, without having completed the project. Admittedly, there are unscrupulous developers out there (as in any profession). But they can be easily identified, because, unlike me, they lack the characteristics of professional long-term developers.

Initially, clients who have never worked with me before can sometimes be concerned that they will be overcharged if we leave the amount of time open-ended. That's typically because they've been burned in the past by unscrupulous Web developers. But once the new clients start working with me, without exception they learn to trust me, just as I learn to trust them. So it works out well, and they end up referring me to other businesspeople (I've never done any advertising — all word-of-mouth). I work about nine hours per day, seven days per week, so I'm working continuously, and thus there is no incentive for me to drag out any client work. In fact, just the opposite, because I want to complete each project efficiently and move on to the next.

No. I'm not an employee and won't be treated as such. Also, if the IRS were to learn of it, they could reclassify me as an employee of your company, and charge you any back taxes.

If it takes less time to complete the work than I had estimated, then I charge for the lower amount (I always carefully track my time on tasks throughout the day). If it takes more time simply because I underestimated, then I only charge for the estimate, as a courtesy to my client. Naturally, if I go over budget as a result of the client changing the specifications or technical problems with a third-party service, then I would charge the actual hours. Any estimates are not to be construed as absolute commitments or fixed-price quotations. All work is billable on a time-and-materials basis. If a project is ever taking longer than expected, I keep the client updated on the hurdles that we are facing, how much more work needs to be done, and what our options are. Fortunately, this rarely happens.

No, my policy is to charge a fee for my services, due when the work is complete. I do not undertake any speculative work. Working for free dilutes the value of freelance work for everyone involved. You can read why spec work hurts both of us.

Generally, no. Feel free to put together any contract or agreement that you think might be needed. I've never used contracts in the past, but instead rely upon a combination of a deposit (for big projects), timely payments (for smaller invoices), and getting to know the client.

No. Sadly, I have had several cases of prospects asking countless technical questions, but never resulting in any work. One prospective project manager asked me many rounds of questions, all of which I answered, and all of which required substantial research. But he never sent any work my way. Months later, he was back on the same Web developer mailing list, asking the same types of questions — seeking another victim for unpaid research.

  • You will receive more immediate and personal attention.
  • I can focus on your project, and not be distracted by corporate meetings, politics, etc.
  • Freelancers are generally better innovators and more flexible thinkers, versus a staff member of a company accustomed to working in a prescribed manner, year after year.
  • You do not have to pay the additional expenses of a commercial real estate lease, office supplies, employee benefits, and other corporate overhead.
  • I can complete your project at a rapid pace — in less time than the typical bureaucratic company can. Most design agencies can take weeks, if not months, to build a website for you. Meanwhile, you are missing out on customer orders, website traffic, search engine indexing, and greater visibility on the Web from social media links to your website.
  • Business owners comment that when they hire an agency, they feel as if the agency is primarily working for itself — and it sometimes turns into an adversarial relationship. But a freelancer is working primarily for you. The freelancer knows that the more successful your business, the more lucrative projects you can offer to him or her in the future.
  • A good freelancer becomes loyal to your business, while agency staff are always more loyal to their own company.
  • A veteran freelancer can have over a decade of experience (as do I). But agencies tend to hire junior programmers fresh out of school, because they are cheaper. Agencies are always looking to reduce their costs, often at the expense of the client.

A business owner in need of a website can be tempted to choose the lowest bidder — such as a foreign programmer or even a relative. The owner thinks he is saving money, but he invariably ends up with a website that does not work for his business, and has to be scrapped and replaced with something that does work. In the end, the owner doesn't save any money, but loses it — and also loses valuable time, which may be worse than the monetary loss.

Among developers who have tried various tools for building websites, Drupal has emerged as the CMS of choice, and is becoming quite popular, for many reasons:

  • It is a powerful and flexible framework for creating dynamic, reliable, and scalable websites. It has built-in support for custom content types, rich editing, and content revisioning; user comments and forums; clean and search-engine friendly URLs; modular theming; tagging with keywords and taxonomy terms; image galleries; support for an unlimited number of web pages (with no coding required); user authentication, sessions, permissions, and management; internationalization and localization; and much more.
  • Drupal makes it possible for me to add new features to a website quickly. Over 20,000 prebuilt modules can be used to expand the functionality of a basic Drupal installation, with less time and effort than other solutions.
  • Site content and settings are saved for you in a database, which can be backed up, for greater security.
  • Drupal allows website owners to add and modify the content easily, without having to understand HTML or other technologies.
  • A Drupal website keeps track of ongoing activity, such as specific users logging in and out. Even the changes to page text can be logged, using revisioning.
  • Drupal is optimal for building search-engine friendly websites, including standards-compliant HTML/CSS, dynamic page titles, meta tags, customizable and readable URLs, RDF support, and Google Analytics integration.
  • It is based upon the most commonly used and trusted Web technologies available, including PHP and MySQL.
  • Drupal is actively maintained, tested, and improved — including updates for any security problems discovered.
  • Drupal is more secure than the only two CMSs more commonly used, WordPress and Joomla. Drupal's dedicated security team has more than 40 experts, who will unpublish any modules with unresolved security issues. Also, Drupal's password security meets the requirements for US government agencies. In fact, the websites of the White House and US Commerce were built using Drupal.
  • Drupal is built using high-quality, modular code that has been well tested, during its successful 10-year history.
  • It offers high performance, with built-in caching and scalability to multiple servers.
  • The Drupal software is free to download and use, and there are no license fees. So in most cases, the only cost for a new website is the design and development time.
  • Drupal is free, GPL licensed, and open source. So none of it is hidden from you or your staff. Consequently, you are not limited by any vendor's proprietary "black box" (which usually only the original developers can decipher). You are not locked into any relationship, and can easily move to a different Drupal vendor should you ever decide to do so. There are even agencies — staffed with Drupal experts — that can serve as backup vendors.
  • Drupal has a thriving and enthusiastic community of thousands of developers, so you will always be able to find people to maintain your website.
  • The number of websites worldwide running on Drupal is unknown, but estimates range from over one million to 7.19 million. These include such demanding clients as Fortune 500 companies, universities, non-profit organizations, and governments — for instance: The Economist, the Grammys, Harvard, IKEA, the City of Los Angeles, the Louvre, MTV, NBC Olympics, NASA, Sony, Viacom, Warner Brothers, the Weather Channel, Wikipedia, and Yahoo. These and other organizations run high-traffic Drupal websites, and have made strategic business decisions to invest in it.

Yes. I can set up your new website so that you can make updates to the text, images, videos, and other content within pages easily, anytime you like, without needing to request or pay for technical expertise. This significantly reduces the risks that your website will become obsolete in the future (which often happens when business owners try to save money by going with the lowest bidder, which typically delivers a website difficult or impossible to keep up-to-date).

If a client changes a website's code or settings that control how the website works, then there is no guarantee that the website will continue to work. If such changes result in my having to fix any problems, including code cleanup, then I will charge for the time required. Also, I would need to be apprised of exactly what changes had been made. This is just one reason why I strongly recommend against clients making code changes.

Yes. After your website is launched, I can make enhancements to it, as requested, even years later. Those modifications will be billed at my current rate. Most of my clients request that I make ongoing updates to their websites, to match their changing business needs. That allows them to focus on their business, while I maintain the value of the website.

The benefits of having discussion forums on your website include:

  • Customers can answer one another's questions, thus reducing your support costs.
  • If you or a customer answers someone's question — especially with a detailed response — this information can be referenced in the future, so you don't have to recreate it every time someone sends you the same question.
  • As customers discuss your offerings, they are generating, for free, fresh content that is rich in keywords and is attractive to search engines.
  • By having an online community, customers are encouraged to visit your website more often, and then they tell others about it.
  • Customers will typically and freely share ideas on how you could improve your offerings, market them better, and reach new prospects.

The primary risk is that spammers will try to litter your forums with messages promoting their own products. Fortunately, we can limit the posting and reading of forum contents by requiring visitors to log in, and we can keep out visitors unless they are approved by you or by forum moderators whom you designate. Those moderators can also police forum contents, and delete any spam that gets through.

No, it is better to have individual usernames and passwords. A single password for all users greatly increases the chances that it will be compromised. Assuming you discover the security leak, you then have to notify all of the users of the replacement password. Individual usernames and passwords offer many advantages:

  • Your website is more secure, because a person generally will not give away a username and password that uniquely identify him. But people often won't hesitate to give a universal password to unauthorized outsiders.
  • Any troublemaker is identifiable from his unique username. You can revoke his login privileges without affecting any other users.
  • It is easier to grant different permissions to users. For instance, you may want to allow a select group of trusted users to serve as moderators.
  • People prefer setting their own passwords.

No, because rapidly flashing (or scrolling) text or images usually look awful, are considered by Web designers to be quite outdated and amateurish, and are annoying to most Internet users, especially if they cannot turn off the effects. The only tasteful movement on a Web page is an optional slideshow, which rotates through non-advertising images at a slow pace, or an embedded video that does not start automatically but instead is controlled by the website visitor.

Every website should have an attractive design (a.k.a., its appearance, theme, "look and feel", etc.). As a full-time Web developer, I do not design websites. You have some options for getting the design of your own website:

  1. You may choose to have a custom design crafted by a professional designer. Some of my most successful projects involved teaming up with a freelance Web designer, and collaborating as a virtual team. This allows everyone to focus on what they do best. I perform all of the backend programming, i.e., building the website and its database. The designer then styles the website by modifying a CSS file, adding images, etc. I can work with in-house designers (within your organization), provided that they know CSS. I build the basic website first, so the designer can see the page types (that need to be styled separately) and the CSS class and ID names in the HTML pages generated by Drupal. If you do not have in-house talent, let me know if you want me to refer you to an excellent Web designer.
  2. If there is an existing website whose design you really like, I could create a similar design, which would probably cost less than choosing the above option. The design would be customized with your own company logo, up in the header of the pages, where you could optionally have a custom background image. If you choose this option, please send me the address of the website you like, and also send me your custom image(s).
  3. If you have a limited budget, you can choose a prebuilt theme, which I can modify with a new header image and/or your company's logo. Let me know the name of the theme you want me to use, and send me any image(s).

The finished website will have full functionality and styling in the latest stable versions of all the major Web browsers. The website will most likely work fine in each browser's previous major release, but may not look identical ("pixel perfect"). There is no guarantee as to how well the website will work in even older versions of browsers, which tend to be obsolete — especially Internet Explorer 5, 6, and 7.

Considering that your company's website is the face that it presents to the world, anything that would make it better would be well worth the time and effort. Secondly, some improvements in one's business are only temporary, while improvements to a website tend to be long-lasting, and they build upon one another. Many of my clients have been not only happy with the changes made to their legacy websites, but even more delighted when they learn that they can expand their existing websites to build an online community, take orders online, etc. Most if not all of these opportunities became known only after the clients began thinking of ways to improve their websites, and asking me what is possible.

Yes. Even if you only have enough text and pictures for one web page, a single-page website — often referred to as a "brochure website" or "nameplate website" — is far better than nothing at all. It serves much like an enlarged business card that you can hand out to potential customers all over the world, again and again. Such a website has at least two advantages over larger ones:

  • There is no need for any navigation controls.
  • It is possible to gather visitor information (to put it in simple terms) more easily.

We may need to find stock photos for your website, e.g., as the background image for the banner area at the top of every page. Fortunately, there are many websites that offer stock photos for free or low-cost, and without any royalty restrictions:

Experienced designers and developers recommend against this. Animated logos and other images can make your website look cheesy. The use of Adobe Flash — especially for navigation — can make your website inaccessible to people with disabilities. Putting your website's text in images makes it invisible to search engines.

I can add Flash movies to your website, but I do not know how to create the movies. Typically, a dedicated Flash specialist is the best choice. But if you simply want to rotate through a set number of images — optionally using effects for transitioning from one image to the next — that can be done without Flash, using techniques that I know.

  • Go to the Authorize.Net merchant login page, and login.
  • In the merchant interface, in the left sidebar, in the "TOOLS" section, click the "Simple Checkout" link.
  • In the "Item Id" column, choose an unused value and make a note of it.
  • Click the "+ Add Item" link, which takes you to the "Simple Checkout Item" page.
  • Enter an "Item Name", which is limited to 31 characters.
  • Enter the "Item ID" you chose earlier.
  • Set the appropriate "Type".
  • Enter a detailed "Description" of the product or service.
  • Enter a price. No dollar sign is needed.
  • Change the "Maximum Per Order" if needed.
  • Click the "Save" button.
  • On the next page, in the "Buy Now Button Code" section, find the value to the right of the "LinkId". It will comprise 36 characters (letters, digits, and hyphens). Make a note of it, because you will need it later, when adding the item to your website.

Whether you are a parent looking for a way to spend more time with your family, an entrepreneur wanting to create another revenue stream, a corporate employee ready to take control of your own future, or a retiree trying to supplement your income, selling goods or services online could help you to achieve more work/life balance, financial freedom, and peace of mind. Of course, there are no guarantees that an online business would make money. But you can be certain that you won't make that money if you don't try.

Most online businesses start with PayPal Website Payments Standard, because it is simple and cost effective for startups. When your customers check out, they are sent to the PayPal servers to make their payments securely. So you can accept major credit cards online, without having to pay for:

  • the PayPal Pro monthly fee
  • an SSL certificate for your website's server
  • PCI compliance

After you sign up for PayPal Standard, send me the e-mail address for the account, because I will need that for setting up your website to accept payments.

For each product to be listed in your shopping cart, you will need the:

  • product name
  • description
  • price
  • image, if applicable
  • product options, if any, and their changes to the price
  • shipping weight (for nondigital products)
  • your catalog number, i.e., any product code that you use for tracking that product
  • supplier's catalog number, if any, so we can reference the product from the supplier

It is best to gather all of this information in a spreadsheet, with a column for each of the items above. Also get at least one image for each product, preferably in PNG format, of the highest quality possible.

Yes. I can integrate any of the major payment systems with your online store so that you will be automatically notified when someone makes a purchase. That notification can take the form of an email message to you, or an update to your website's database. For instance, one client of mine sold electronic greeting cards, and they needed to be made available to the customer immediately after purchase. I used PayPal's IPN to automatically update the database to show that the chosen greeting had been paid for. Another client organizes racing events and wanted to be able to collect online payments from people registering for his races. I integrated iTransact with his race registration page so the user data is saved in a file on his server, so he could download it into his spreadsheet program.

Yes. We usually have some options:

  • Purchase buttons that send the visitor to a secure third-party payment server.
  • A shopping cart system built into your website, with secure payment on your website (this requires an SSL certificate) or on a third-party server.

In order to allow customers to connect to your server using a secure connection (indicated by the yellow padlock in their browser), you will need an SSL certificate purchased and installed in your Web hosting account. Here are the specific steps to follow:

  1. Login to your SiteGround hosting account.
  2. Click "Order Extras".
  3. Click "Private SSL Registration…".
  4. Under "Rapid SSL", click the orange "ORDER" button.
  5. Choose your domain name.
  6. If given the choice of registering your domain with or without the 'www' prefix, choose the former.
  7. Fill in the requested information, including your email address.
  8. Click the orange "SUBMIT" button.

Please let me know when the order has been completed.

Yes. I have done a lot of search engine optimization (SEO) for clients, as well as for my own website, which has a Google PageRank higher than most developers' websites and even some major businesses.

Your website can feature links to your Facebook account, a way for visitors to follow your business on Twitter, a list of your most recent tweets, etc. The social media revolution is being effectively leveraged by countless organizations that have the resources to do so.

Several articles explain why freelancers should think twice before investing a lot of time in online branding.

Business owners often decide to publish online newsletters to attract more publicity and prospects. A newsletter can be emailed to the subscribers, or it can be published on the website — perhaps in a subscribers-only area — and subscribers can be notified with a simple email. The latter approach is usually better, for several reasons:

  • Each issue of the newsletter can contain as much text as you want, and as many images, regardless of their size — versus filling people's email inboxes, and having to manage the rejection messages caused by your message being too large.
  • Search engine spiders can and will index your newsletter Web pages, which results in far more people discovering your newsletter than you could have ever contacted via email campaigns. The search engines will not find your emailed newsletters — unless someone happens to post them, but then you have lost control of that posted content.
  • Even though you may allow recipients to unsubscribe from the newsletter, many recipients will mistakenly flag your newsletter mailings as spam, which can cause all sorts of problems for your business.

Login using your administrative password. If your website has a login form visible to the public, then use that form. Otherwise, begin at your website's homepage, and add "user" at the end of the web address in your browser's address field. For instance, if your website address is http://example.com/, then you would go to http://example.com/user.

Once logged in, you should see a management menu somewhere on the screen. Its exact location depends upon your particular website design, but for most websites it is located in the left sidebar. Click the "Administration" link on the Management menu. Or there may be a black menu bar on top. Then follow the appropriate instructions below.

To log out, in the User menu, click "Logout".


To add new content (e.g., an article or a blog post): Go to "Content" > "Add content". Choose the desired content type. Fill in the form. Click the "Save" button.

To manage existing content (e.g., pages and FAQ entries): Go to "Content". Use the checkboxes and "Update options" listbox. Any user posts can be approved or deleted.

To manage user-contributed comments: Go to "Content" > "Comments" > "Unapproved comments".

To add links inside content: If your website uses CKEditor (a WYSIWYG editor), then web addresses and email addresses in the text are automatically turned into links. If you want the link text to be regular words, and not an address, then use the link button in the toolbar just above the text entry area. Click the second icon from the left, which shows a chain-link in front of a globe. If you have already selected some link text, it will appear automatically in the dialog box.

To add images inside content: If your website uses CKEditor, then when you are editing a page's contents, and you want to add an image, click on the location in the text where you want the image to go, which puts the insertion cursor (the flashing vertical bar) at the location. Then click on the icon that looks like a tiny painting, in the top row of the text editor's icons, near the middle.

To manage users: Go to "Configuration" > "People". You can approve or cancel new user account requests, or change anyone's password.

To manage taxonomy vocabularies and terms: Go to "Structure" > "Taxonomy", and use the links in the "Operations" column for the desired taxonomy.

To logout when no "Logout" link is visible: Go to [your domain name] + /user/logout


To manage the product attributes and options: Go to "Store" > "Products" section > "Attributes", and use the links in the "Operations" column for the desired attribute. Use the "options" link to change the option names and values.

To manage the existing products only: Go to "Content" (or "Store" > "Products" section > "View products"), click the desired product name, and click "Edit".

To add new products: Go to "Content" > "Add content" > "Product".

If the client organization has at least one technical staff member, then the project manager usually chooses that individual to maintain the website going forward, or at least serve as the single point of contact when sending me requests to make updates to the website. Smaller organizations usually do not have programmers on staff, and so they ask me to maintain the website. I can perform regular backups of files and databases, make requested improvements to the website, add new features, and update the CMS system and its modules. All of this work is billed at my regular rate. The website content is the responsibility of the client, but I can always help with any technical issues.

Some organizations make the mistake of viewing their website as a one-time project, rather than an ongoing one. Consequently, they let their websites fall into disrepair. To keep a website up to date and consistently effective, it should be updated with fresh content as often as possible.

The AWStats analytics program provides a lot of information on visitors to your website. All of the information is shown for each month in raw numbers, and most of it also as bar charts. You may get data on:

  • the number of unique visitors and visits, pages viewed, hits, and bandwidth usage
  • that information for the current month versus earlier months in the year
  • that information for every day of the month
  • that information grouped by day of the week and hours in the day
  • that information grouped by country
  • IP addresses of top visitors
  • search engine bots/spiders
  • visitors' time spent on the website, grouped into first 30 seconds, first two minutes, etc.
  • file types seen by visitors
  • site pages most frequently visited
  • visitors' operating systems and browsers
  • traffic from search engines and inbound links — this information is quite useful for organic marketing
  • key phrases and keywords used by visitors to find your website using search engines — also quite valuable
  • HTTP status codes, including pages not found ("404 errors"), which is critical for website diagnosis

Google Analytics has similar information, and is easy to implement and free.

Many of my clients have me analyze the traffic statistics for their websites, and send monthly reports, with recommendations. I can do the same for you.

  • The section labeled "Summary" provides an overview of the traffic statistics for the month: The yellow column, "Number of visits", shows the total number of times a human visitor arrived on the website. Search engine spiders are not included. However, return visits by the same person are considered separate visits, which dilutes the value of the number. A more meaningful number is shown in the orange column, "Unique visitors", which counts a frequent visitor only once. The closer that this number is to the total number of visits, the lower the rate of people returning to the website. The blue column shows the total number of pages viewed. Dividing that number by the number of visits, gives you a rough idea as to how active visitors are on the website. The other values in that Summary section are only of interest if they begin getting close to any bandwidth limitation imposed by the Web hosting service.
  • The "Monthly history" section is most valuable in showing trends from one month to the next.
  • The "Days of month" section shows the individual values for each day of the month, and is most valuable in showing the effect of any online marketing campaigns.
  • The section labeled "Robots/Spiders visitors" displays the top 25 web bots that have visited the website. (A web bot is any computer program that loads pages from a website; such bots include search engine spiders and "screen scrapers".) Generally, the leading search engine spiders — at least the ones willing to identify themselves — are those of Yahoo, Google, MSN, and Ask.com. They typically have no difficulty indexing a website, which means they examine all of the non-protected pages on the website, and store in their databases the keywords found. Many search engine spiders — for various reasons (and not all of them noble) — do not identify themselves, and thus are labeled "Unknown". Search engine companies choose to have their spiders revisit websites at different frequencies.
  • The "Visits duration" section shows how much time visitors are spending on the website before leaving. The first line, "0s-30s", shows the number of visitors who left the website within half a minute. A large percentage does not necessarily imply a problem, because search engine spiders are usually quite fast in reading a website's contents and then moving on. However, a sizable percentage in the second line means that a large portion of the human visitors are abandoning the website within two minutes of finding it. This is usually a result of a lack of compelling content on the website.
  • The section labeled "Connect to website from" shows the sources of incoming traffic. The first number indicates the amount of traffic from people's bookmarks, which largely consists of staff members working on the website, and also outsiders who had discovered the website in the past and liked it enough to save the address in their browser. Neither category is valuable as a source of fresh traffic. The second number indicates the amount of people who found the website using a search engine. The more, the better. The third number indicates the amount of people who arrived from external websites that have linked to the website (known as "backlinks"). A successful online marketing campaign aims to greatly increase this number, both in absolute terms and percentage-wise.
  • The sections labeled "Search Keyphrases" and "Search Keywords" show the words and phrases most commonly used by people in search engines to find the website. Ideally, those new visitors should be using keywords specific to your field, and not your organization's name.

Login using your administrative username and password. If your website has a login form visible to the public, then use that form. Otherwise, begin at your website's homepage, and add the word "user" at the end of the web address in your browser's address field. For instance, if your website address is http://example.com/, then go to http://example.com/user.

Once logged in, you should see an administrative menu somewhere on the screen. Its exact location depends upon your particular website design, but for most websites it is located in the left sidebar. Click the "Administer" link to expand the menu. Then follow the appropriate instructions below.

To add new content (e.g., an article or a blog entry): Go to "Create content". Choose the desired content type. Fill in the form. Click the "Save" button.

To manage existing content: Go to "Content management" > "Content". Use the checkboxes and "Update options" listbox. Any user posts can be approved or deleted.

To manage user-contributed comments: Go to "Content management" > "Comments" > "Approval queue".

To add links inside content: If your website uses CKEditor (a WYSIWYG editor), then web addresses and email addresses in the text are automatically turned into links. If you want the link text to be regular words, and not an address, then use the link button in the toolbar just above the text entry area. Click the second icon from the left, which shows a chain-link in front of a globe. If you have already selected some link text, it will appear automatically in the dialog box.

To add images inside content: If your website uses CKEditor, then when you are editing a page's contents, and you want to add an image, click on the location in the text where you want the image to go, which puts the insertion cursor (the flashing vertical bar) at the location. Then click on the icon that looks like a tiny painting, in the top row of the text editor's icons, near the middle.

To manage users: Go to "User management" > "Users". You can approve new user memberships or change anyone's password.

MailChimp is considered by many online marketers to be the best option for eblasts and newsletters.

For personal use, Gmail is free and has many features. Switching from another service is easy. You can backup all of your e-mail to your own computer, for free, using MailStore Home.

For business use, there are two options for setting up email service so that the addresses use your own domain name (e.g., "John.Doe@example.com"):

  1. We could use the email servers of your Web hosting company, but this has a number of disadvantages: You would have to set up your own email management using a desktop program (such as Outlook Express, which introduces security risks) installed on a local computer. If you were ever away from that computer and needed to access your business email, then you would have to log into one of the hosting company's online mail programs, but their user interfaces are awful and the spam protection is useless.
  2. A better option is Google Apps. All email is managed online; no programs need to be installed locally; and the spam protection is excellent. The free plan allows up to 10 addresses; the unlimited plan costs $50 per user per year.

Every computer on the Internet is identified by a unique IP address, a group of four numbers separated by periods. Your IP address can be found at whatismyipaddress.com

As the owner of a domain name, you might be contacted by a company (usually Asian) supposedly involved in domain name registration and intellectual property rights protection, claiming that they received an application from someone trying to register your domain name, or one similar. This is the Asian domain-name extortion scam. You can ignore such messages, because as long as your domain name is locked, no one can take it away from you. Notice how the text of the scammer's message slyly confuses the terms "domain name" and "keyword". Clever, but phony. You can flag such messages as spam, and delete them.

I welcome select excerpts from my book and software reviews being published on the Web or in print, provided that:

  • The attribution includes my proper name and profession, "Michael J. Ross, web developer", with the profession linked to my website (http://www.ross.ws/). The HTML code for that is:
    Michael J. Ross, <a href="http://www.ross.ws/" rel="author">web developer</a>
  • In the case of Slashdot book reviews, it is optional to also append "and Slashdot contributor" or "and Slashdot reviewer", with the last two words optionally linked to the Slashdot review.
  • I ask to be notified when any such excerpts are published online or in print.

In the past, I worked as an outsource editor for a leading subsidy publisher, and during that time edited over 75 books, totaling over 8,000 pages of text. The manuscripts included novels, political commentary, rural histories, poetry collections, accounts of war, illustrated children's books, self-help notebooks, social analyses, gaming strategy guides, and science-fiction novels. I have done formatting of 18 manuscripts, totaling over 3,500 pages of text, preparing them for publication.

I now focus exclusively on editing/rewriting children's books, and have ghostwritten four published children's books. I look forward to working with you, and getting your book ready for publication.

I'm currently developing a professional book indexing service for authors and publishers who need indexes made for the backs of their books.