How to build a Community/Project from scratch

Let´s say you want to start a new community/project (herein after refered as project) how would you approach this task?

STEP 1:Finding the Main Topic

The most important thing for a successfull new project is the major topic your project will have.
Most likely you already have an idea about what your project will be.
If you don´t have one start thinking about what your interests are.
If you start a project about something that doesn´t realy interests you (let´s say because you have a cool sounding domain about aircrafts but you hate flying )
it will most likely don´t work because any project needs leaders that activly participate in the project live and spend quite some energy on building the project and make it a success.

Spend some time thinking about your major topic:

Is the major topic interesting enough to build a project around it?

Are there any other projects already existing about this topic?

If there are allready others, how many?

Do I miss anything important on these projects that I could implement in mine or would mine be just a copy/alteration of the other projects?

You need to offer your new members something special that makes them want to be part of your project.

The more "unique" your topic is and the less other communities exists about your major topic the more likely your project will be a success.

Starting a project with no major topic will end up for over 99% in an unsuccessfull atempt.
There are literaly millions of "General Chat Communities" (only a few of them are realy successfull) so why the heck would anyone be interested in joining another new starting project without a major topic? Would you?

STEP 2:The Concept

Most Users who want to start a project have an Idea and are so excited about it that they get on building a website or forum right away.
STOP HERE
Of course you could... but believe me, it is better to make some additional thoughts first.
Sit back and start thinking about what you want to achive.
Make a text file like "Concept.txt" and start making notes.

Things you should think about are:

What is my major topic?

What are my target users/usergroups?

Who are my competitors?

What do my competitors offer?

What will differ my project from my competitors?

What are my goals?

What do I want in my project?

Do I need a Website?

Do I need a Forum?

If I need a Forum wich one is the right one for me?

Do I need additional Software/Scripts/something else?

Are there any open source/free scripts that would do things I need?

What content can I offer at start of my project?

Do I need help?

Do I need someone that can program PHP?

Do I need someone for the Design of the Project?

How will the structure of the project be?

Structure of the Website

Forum Structure

Community Structure

What features will be project offer the users

What problems could occure in the future?

How can I prevent/solve/avoid these problems?

How much will it cost me? Can I afford it?

How should the project look like (design ideas)?

Do I need a logo?

What will the name of the project be?

Is there a domain available that fits the name of my project?

You can keep this relativly simple or make it complex by outlining the whole project and it´s structure.
If you will need help like from a php programmer to build your project for you it realy helps to have good concept so that he understands
your ideas and get an idea how to make them possible. This will also later come in handy if you lost your track a little because you can always read this and get back on track.
The Concept is also important for geting help in the first place.
The more time you spent thinking and outlining your project the more likely it is that you will get help (explained in Step 3) and can avoid future problems.

Step 3:Finding Help (if you don´t need help skip this Step)

After you have made a Concept for your project you most likely realised that you need help on one or more things regarding your project.
Let´s say you have no clue how to write a php script and are no crack in working with graphic programs either but you are not that rich to afford payed work either (If you are it´s much easier to find help cause people love payment ).
Ok how to get help when you can´t pay?

First thing you need now is, to find places where people hang out that could help you.
For PHP Programmers this would be forums about PHP
Start to google for forums about php and php programing.
Look for forums with an active community and lots of posts because on small communities you´ll propably wount find anyone willing to help you.
After you found 3-5 communities you need to make a help request thread.

There are several keys for a successfull requests:

1)Look for the right forum to post in and respect the rules of the forum!
If a forum has a "Job offers" forum post there. If they don´t have a specific forum for requests post in the one that you think most likely fits.
Simply posting in a forum like "PHP Professionals" woun´t get you help when there is a "job" forum because your thread gets deleted 2) Make a descriptiv topic!
A topic like "need help" will not work! Make a topic like "Need a php programmer for a "your Topic" Project" 3) Introduce yourself.
Tell them your name, how old you are, what your experiences are and everything you think they need to know about you. 4) Describe in as much detail as possible what you are going to build without giving away any specific secrets.
Describe the Idea you have, how you want to achive this.
Tell them if you intent to earn money with it (if you intent to, you most likely need to offer them a percantage of your earnings)
or if it will be a non commercial project.
Here your concept comes in handy. The more unique your Idea is and the more effort your spend on thinking your project through, the more likely you find someone that will support you because he likes the idea.
Simply saying "I want to do a browser game" wount get you any help but if you have a full concept of what you want to achive you might get lucky. 5)Describe your requirements of the programmer skills as detailed as possible.
It is a huge difference if you need someone that can program a guestbook or someone who can program an online shop from scratch for example.
And always make sure that there are no free/open source scripts available for what you are asking help.
If you want someone program an online shop for you, you wount find one (unless you pay) because there are free online shops available and it would be a waist of time for the programmer.6) Describe what you already have or will haveTell them what you have, like a server or host for the project, that you already have or will get a domain (you don´t need to name it, just that you have one or planing to buy one). If you realy are serious about this project don´t use free domains or webspace. No programmer (most likely) will spend time working on a project that don´t even has it´s own domain.7) Offer them something in return.
If you can´t offer money offer them advertising. Or let them use your project for there portfolio.
Offer them to name them in your "About Us" section with email and homepage link.
Or anything else you think would be interesting for them like if you expect to earn money with the project later a share of the future money.8)Leave as much contact details as possible!
Give them the possibilitie to contact you in different ways if they are interested or have questions:

by PM in this forum (make sure you activate email notification for new PMs)

by Replying to this thread (make sure you activate email notification for new Replies)

by Email

other means like Instant Messangers (ICQ, Yahoo, MSN,...), IRC,...

9) Post your request in more then one forum (about 3-5)
The more you post the more likely you will find someone that helps you. But don´t post in to many forums at first.
If you have posted your request in 3-5 forums wait a while (a few days) before you start posting in additional forums.
With "forums" I don´t mean more then one forum on a single website!!
I mean DIFFERENT Websites!

After you have posted your request you will most likely get TONS and TONS of replies like "you never find one helping you for free" or
"who would work for free if he can get payed" and so on and on.
Just ignore these replies or answer FRIENDLY (even if they don´t!) why you think someone would still help you.

In my experience I often looked for help that I could not pay for and I always found people helping me because they liked my ideas.
But it takes quite some afforts and patients to find them.
The more details you give about what you have in mind and the more unique your idea is the more likely you will find help.

Step 4:Building the Project

The Code
Ok now that you have your concept and found a php programmer and a designer to help you, you start working on your project.
I would suggest make a "ToDo" list.
Note down every feature you want your project to have and describe what it should do as exactly as possible.
Make the ToDo list structured. Mark important features and features that you don´t need right away.
It most likely helps to describe the whole project in the todo list with all it´s features as detailed as possible.
This helps your programmer to write the code for your project.

The Design
A good Design is functional and is connecting this functionality with a good "look and feel".
To be functional it needs a good concept (see STEP 2).
A good concept is well thought through and has "aged" for some time.

Only after the concept is done the designer starts to work.
Talk to the designer and tell him hat you have in mind for the design.
If you don´t have an idea about how the design should look like give the designer free hand on the design (if he is good he will find the right design for your project).

For this he needs to know wich kind of users are the targeted usergroup and what the prospective users expect.

A good Designer knows the [ame="http://en.wikipedia.org/wiki/Color_theory"]Color theory - Wikipedia, the free encyclopedia@@AMEPARAM@@/wiki/File:Question_book-new.svg" class="image"><img alt="Question book-new.svg" src="http://upload.wikimedia.org/wikipedia/en/thumb/9/99/Question_book-new.svg/50px-Question_book-new.svg.png"@@AMEPARAM@@en/thumb/9/99/Question_book-new.svg/50px-Question_book-new.svg.png[/ame], accidence and the [ame="http://en.wikipedia.org/wiki/Color_psychology"]Color psychology - Wikipedia, the free encyclopedia@@AMEPARAM@@/wiki/Filesi2.svg" class="image"><img alt="Stub icon" src="http://upload.wikimedia.org/wikipedia/commons/thumb/6/6c/Psi2.svg/30px-Psi2.svg.png"@@AMEPARAM@@commons/thumb/6/6c/Psi2.svg/30px-Psi2.svg.png[/ame] and shapes.
He also knows to only discreetly use signal [ame="http://en.wikipedia.org/wiki/Colors"]Color - Wikipedia, the free encyclopedia@@AMEPARAM@@/wiki/File:Colouring_pencils.jpg" class="image"><img alt="" src="http://upload.wikimedia.org/wikipedia/commons/thumb/b/b1/Colouring_pencils.jpg/300px-Colouring_pencils.jpg"@@AMEPARAM@@commons/thumb/b/b1/Colouring_pencils.jpg/300px-Colouring_pencils.jpg[/ame] and in which case to use emotionalising and in which not.
A good design looks professional, is easy on the eye, it is unique and doesn´t need to be packed full with graphics.

A good design survives the trend.
„Form follows function“ should be the nuts and bolts.
Especially for dynamic webpages and during the developement the designer needs to pay attention to stylistic methodes, if they are convertible and useful.
(X)HTML has besides its features also many austerities which sometimes can´t be bypassed or only with complicated Javascripts or Flashanimations.
Because of this the designer needs to work close with your programer if he doesn´t have adequate knowledge about programing himself.

Talk with your designer about a Logo for your project.
Not every project needs a logo but it helps a lot for branding your project later.
Logos need to be simple, rememerable and not to big.

Depending on your targeted usergroup it could be important to factor in handicapped users into your Designconcept.
Not every User has a 21" monitor or speakers maybe he even is color blind ( http://www.w3.org/WAI/ ).
On the other hand normal Users shouldn´t be subchallenged or bored to death with the design and functionality.

The most important thing about designs is (besides the good look) the page navigation.
A user must be able to find it´s way through your project by it´s first visit without much problems.
Otherwise he will leave and not come back if he didn´t find what he was looking for.
Structure your menus in a good way. Make them easy accessable and selfexplaining.

Also don´t forget cross-browser-compatibility! A design should look the same on InternetExplorer, Firefox (Mozilla) and Opera.
Makeing a design that looks good on an Internet Explorer but not on Mozilla is not a good design at all.
And remember: There are still quite some users out there that use a resolution of 800x600

There is no nostrum for a perfect Design you need to think of it more like a process.
This process depends on many factors wich are bound to it.
A Toy website for example wouldn´t be good if you made it black and white it also makes no sence to create a rainbow color design for an insurance company website.

A Forum for Community building
A Forum highly increases the build of a community because it helps geting members in touch with each other and make them feel beeing part of the community.
Do you want a forum for your project?
Then start thinking about wich software you want to use.
There are quite some Forum softwares out there that offer good functionality and are for free (phpBB, Ikonboard)
or you can buy a forum lizenz for a payed forum software (vBulletin, Invision Power Board).
Which one is the best for your project, you have to find out for yourself.
Maybe start with a free forum and if it doesn´t work out switch to a payed forum.

If you have installed a forum start working on the forum structure.
Put the important forums about your major topic on top and more general forums at the bottom.
Make the name of every forum as selfexplaining as possible and write a description to what you want the posts to be about in this forums.
Always remember when creating forums: Less is more!
If you have a forum with 100 subforums and each has 10 threads it still looks empty but if you only have 10 forums and the same amount of posts your forum looks busy

Always keep in mind what your major topic is. Not every forum needs subforums like "Jokes", "Politiks", "Hardware", "Software", etc.
Users are on your site to talk about your major topic, most likely a "Small Talk" forum for the rest is sufficient.

Now that you have a good forum structure get your designer working on the forum design as well.
Nothing makes people leave a forum right away more then a standart out of the box forum design.
Make the forum fit your project design. Create your own buttons and graphics if possible and make it look unique.

For more tips on how to structure, organise and running a forum use the SEARCH from TAZ

Coordinating work
If you work with alot of people together on your project you may want to start coordinating the work.

There are several methods:

[1] The easiest is, if you have a forum, create a private section for your "workers" to communicate.
Make a "To Do List" thread and let them mark wich task they currently work on, wich they have finished and such.

[2] A Bug Tracking System like the open source Mantis Bug Tracking System can be used to coordinate work as well.
It is easy to set up, you can assign tasks to your "workers", you can note down new ideas, report bugs and so on and on.

[3] The most professional way to realy coordinate work on a project, especialy if you have more then one programmer working on your code, is a "Version Control System" like "CVS" (Concurrent Versions System) or "Subversion"
Working with a "Version Control System" is not an easy task if you never had contact with one before and you will need quite some time to learn and understand how it works but there is no real alternative for (bigger) projects with more then one programmer.
It is realy worth the energy. A "Version Control System" keeps a file history for every file you have in your repository.
Programmers can download the newest files from the "Version Control System" and update files after they have changed them.
With a "Version Control System" you can prevent the accidental overwrite of new code by another programmer if he forgets to update his files to the latest version for example.

[4] Beside all above options I find it very helpfull to keep in touch with my colleagues via Instant Messangers or IRC Chats.
Email contact is one thing but if you can chat live with your colleagues it´s always helpfull

The Content
After you have set up the forum, the programmer has written the basic code for your project and your designer has made and implemented the design you need to fill your project with content.NEVER EVER use something like "Site under construction"!!

You don´t need to have all features ready right away but you need content to make your project ready for launch.
So start filling your project with content. It doesn´t need to be much at start but you need to offer something to your first visitors.
Write some articles like about your project itself, the idea behind it, the people who worked on it and such.
I can´t give you any more tips here because I don´t know what your project is about

Backups
One of THE MOST IMPORTANT THING for any project are backups.
However most people don´t care much about them because "untill now nothing ever happened to my site".
They make backups once every 2 weeks or once a month or even less.
I strongly suggest you make backups as often as possible.
Before you start working on any files of your site or graphics or anything backup your files.
Make a folder on your local harddrive. Name it like your project and make date folders in it so you know when you made the backup.
Databases ALSO need backups! If a database is corrupted and you don´t have a backup your whole content is gone for good.
You will not be able to recover it and believe me when that happens you will thank god for the backup you did 2 days ago

BACKUP is everything!You may never need it, but when you need it you will be thankfull for every day that you don´t lose because of regular backups!

Step 5:Launching and Promoting your Project

It is hard to tell when a project is ready for launch. There is no overall answer to this question.
It all depends on how complex your project is.
The minimum requirement for launch is that all the basic features work and you have a ready design.
If you have many more extra features that you want to implement in your project but don´t think they need to be in right away for the launch,
call your site something like "beta status".
Adding extra features after a launch can have positive effects because that shows your users that you are constantly improving your project.
But don´t offer to less at start because then users will be more likely one time visitors only.

After you have arrived at a certain point where you think your project is ready for the first visitors you need to spread the word.

There are many articles about how to promote a project so I suggest you take a read
Here are some good ones:

After you got your first visitors ask them about what the like and what they don´t like on your project.
Make them feel part of your community and be interested in there opinions and ideas for how to improve your project.

Get your programmer to work on extra features that you couldn´t finish for the start.
A constantly improving project is always better then a project that is not improved over quite some time.
Think about additional things that you didn´t thought of before and put them on your todo list.
And most important continue to add content to your project. Get your members involved in helping you find new content.

Always remember:

Be the most active member of your community

Always be friendly and patient

Encourage others to participate

Constantly improve your project

Don´t stop promoting your project

Get help if you can´t handle it alone

Regular BACKUPS can save your a**

Don´t give up

I hope this article gives you a basic Idea for how to approch a new project that you have in mind.