Typical Sites, Preparation for the Future
Moderator: General Moderators
-
jack_indigo
- Forum Contributor
- Posts: 186
- Joined: Sun Jun 08, 2008 11:25 pm
Typical Sites, Preparation for the Future
So far this year, I've been asked to make the following types of websites. It got me thinking about how to prepare for the future.
- manage a sales campaign pipeline -- was mostly CRUD with table and record views, and lots of heavy roles on what could and could not be done, followed by alerts
- classified listings (niche vendor topic), browsable on category, searchable on keyword
- product catalog with admin backend, along with simplistic PayPal integration (the free kind) with Add To Cart and Checkout Now buttons
- gadget to randomly show arcade game icons and links
- job search site -- is mostly CRUD on table and record views, but had a lot of similarities to the classified listings site
- contact forms w/captchas - 6 different clients
- 3 sites with custom CMSes (each client didn't want something canned)
- phpBB forum integration -- gadgets for putting into a CMS + comments on CMS articles get posted directly into the forum instead of into the CMS
- every site needed an admin system; had to use AJAX instead of FRAMEs and IFRAMEs in order to make the site zippy fast over the Internet -- admins don't like to have to wait for menus to be redrawn all the time on sometimes slow connections (busy websites).
- about 7 out of 10 sites needed some kind of file upload handler for either an icon, an image, an invoice, etc.
So, to all those guys considering becoming a freelancer out there, still working that regular programmer day job in a cubicle somewhere, I have this advice. Consider building the following frameworks, either using some existing framework and customizing, or develop your own framework on pure PHP. The frameworks would be:
- admin system with basic CRUD of record and table views; keep jQuery Accordion menus on the left and use jQuery Forms' AJAX to swap out the forms on the right (so you don't need to keep redrawing the menus and don't need FRAMEs or IFRAMEs).
- build a file upload handler
- learn a forum system well enough to build gadgets that draw content out of it, or to have comments on CMS articles post content into it.
- make your own micro CMS -- tie the admin system you build with some end user front-end gadgets that draw the CMS content out
- make a really good contact form that can't be hacked easily at all
- make a reusable product catalog that can be tied to PayPal with Add To Cart and Checkout Now buttons, and if you have the time, one with Google Checkout.
- build a job search site
- build a classified listings site
What I mean to say is, if you can do all of the above BEFORE you take the leap into 100% freelancing, you'll be able to hit the ground running with reusable code on like 70% of the projects you see out there. I mean, now that I've done these sorts of sites, I'm seeing my timelines shorten a great deal because I have so much reusable code that I just alter slightly and off I go. And you can do all of these kinds of sites initially as your own hosted projects, earning ad revenue or subscription revenue, BEFORE you start doing it for other clients. This will give you the necessary residual income you will need to help you ride out the dry periods.
Of course, this isn't the recipe for turning anyone into an excellent PHP developer. There's far more to learn out there to be the best you can be. It's just that if I had done all of the above BEFORE I had become a freelancer, I wouldn't have had such a rocky road up until now.
- manage a sales campaign pipeline -- was mostly CRUD with table and record views, and lots of heavy roles on what could and could not be done, followed by alerts
- classified listings (niche vendor topic), browsable on category, searchable on keyword
- product catalog with admin backend, along with simplistic PayPal integration (the free kind) with Add To Cart and Checkout Now buttons
- gadget to randomly show arcade game icons and links
- job search site -- is mostly CRUD on table and record views, but had a lot of similarities to the classified listings site
- contact forms w/captchas - 6 different clients
- 3 sites with custom CMSes (each client didn't want something canned)
- phpBB forum integration -- gadgets for putting into a CMS + comments on CMS articles get posted directly into the forum instead of into the CMS
- every site needed an admin system; had to use AJAX instead of FRAMEs and IFRAMEs in order to make the site zippy fast over the Internet -- admins don't like to have to wait for menus to be redrawn all the time on sometimes slow connections (busy websites).
- about 7 out of 10 sites needed some kind of file upload handler for either an icon, an image, an invoice, etc.
So, to all those guys considering becoming a freelancer out there, still working that regular programmer day job in a cubicle somewhere, I have this advice. Consider building the following frameworks, either using some existing framework and customizing, or develop your own framework on pure PHP. The frameworks would be:
- admin system with basic CRUD of record and table views; keep jQuery Accordion menus on the left and use jQuery Forms' AJAX to swap out the forms on the right (so you don't need to keep redrawing the menus and don't need FRAMEs or IFRAMEs).
- build a file upload handler
- learn a forum system well enough to build gadgets that draw content out of it, or to have comments on CMS articles post content into it.
- make your own micro CMS -- tie the admin system you build with some end user front-end gadgets that draw the CMS content out
- make a really good contact form that can't be hacked easily at all
- make a reusable product catalog that can be tied to PayPal with Add To Cart and Checkout Now buttons, and if you have the time, one with Google Checkout.
- build a job search site
- build a classified listings site
What I mean to say is, if you can do all of the above BEFORE you take the leap into 100% freelancing, you'll be able to hit the ground running with reusable code on like 70% of the projects you see out there. I mean, now that I've done these sorts of sites, I'm seeing my timelines shorten a great deal because I have so much reusable code that I just alter slightly and off I go. And you can do all of these kinds of sites initially as your own hosted projects, earning ad revenue or subscription revenue, BEFORE you start doing it for other clients. This will give you the necessary residual income you will need to help you ride out the dry periods.
Of course, this isn't the recipe for turning anyone into an excellent PHP developer. There's far more to learn out there to be the best you can be. It's just that if I had done all of the above BEFORE I had become a freelancer, I wouldn't have had such a rocky road up until now.
- lukewilkins
- Forum Commoner
- Posts: 55
- Joined: Tue Aug 12, 2008 2:42 pm
Re: Typical Sites, Preparation for the Future
jack_indigo,
Thanks for the post. It is interesting to hear what exactly is being asked for most out in the freelance world. I work full time as a PHP developer, but knowing what systems I should expand upon and know I can use in the future is a plus. Thanks for the post.
Luke
Thanks for the post. It is interesting to hear what exactly is being asked for most out in the freelance world. I work full time as a PHP developer, but knowing what systems I should expand upon and know I can use in the future is a plus. Thanks for the post.
Luke
-
jack_indigo
- Forum Contributor
- Posts: 186
- Joined: Sun Jun 08, 2008 11:25 pm
Re: Typical Sites, Preparation for the Future
Yeah, it's by no means complete. It's just a trend I'm seeing here. Sure, there can be like 100 different ways to build a classified listings site because of special client needs -- it's just that if you build one version, it sure makes building the other 99 a lot easier, right? And no freelancer can probably survive without being asked at least 3 or 4 times in a year to build a product catalog or integrate with one. So this is more about trends rather than concrete observations. And every site needs an admin system on the backend, so why not make a reusable framework for one that you can customize for each client?
Before I became a freelancer, I had only built a call tracking system and a dozen specialized needs (very small projects) on an intranet for a company. Eventually after so many years, the cubicle life wasn't for me, I didn't need the babysitting anymore, wanted a more flexible lifestyle, and set out to earn it. The only regrets I have now are (a) wishing I had done this sooner, and (b) wishing I had known about these trends and built these frameworks/systems/toolkits (whatever) before I had taken the leap so fast. If anything, I could have made some cash on the moonlight personal projects before I had taken the leap into freelancing, such as building a product catalog and selling digital media kinds of stuff, saving the cash and collecting up the skills for the big day.
Before I became a freelancer, I had only built a call tracking system and a dozen specialized needs (very small projects) on an intranet for a company. Eventually after so many years, the cubicle life wasn't for me, I didn't need the babysitting anymore, wanted a more flexible lifestyle, and set out to earn it. The only regrets I have now are (a) wishing I had done this sooner, and (b) wishing I had known about these trends and built these frameworks/systems/toolkits (whatever) before I had taken the leap so fast. If anything, I could have made some cash on the moonlight personal projects before I had taken the leap into freelancing, such as building a product catalog and selling digital media kinds of stuff, saving the cash and collecting up the skills for the big day.
Re: Typical Sites, Preparation for the Future
Thanks for the tips.
Most people here in my country (Greece) want sites with simple cms they can use, blogs, forums, e-shops and they are wild for Flash(y) content. Give them ajax effects or flash animations and they become crazy!
A client wanted to show my name in a popup on his site after the cool flash animation I made him. Exaggerations.
My personal aim is to create a program that does most of the work for me (generate css by drag and drop elements, generate secure contact form code, SEO assist etc.), and secondly a cms which is highly customizable and multi-purpose. For forums and blogs, IPB and Wordpress will work fine.
Most people here in my country (Greece) want sites with simple cms they can use, blogs, forums, e-shops and they are wild for Flash(y) content. Give them ajax effects or flash animations and they become crazy!
A client wanted to show my name in a popup on his site after the cool flash animation I made him. Exaggerations.
My personal aim is to create a program that does most of the work for me (generate css by drag and drop elements, generate secure contact form code, SEO assist etc.), and secondly a cms which is highly customizable and multi-purpose. For forums and blogs, IPB and Wordpress will work fine.
Re: Typical Sites, Preparation for the Future
If you switch to being a freelancer you won't have any code to reuse apart from what you've written for yourself in your spare time*. What you've written so far belongs to either your current employer or the client you wrote it for. It's not yours, and reusing it on projects you write on a freelance basis would be breach of copyright. Potentially that could mean the owner would be able to sue you, your client (who then sues you), and your former employer (who also then sues you). Using code you're not legally entitled to use isn't the best plan in the world...jack_indigo wrote:What I mean to say is, if you can do all of the above BEFORE you take the leap into 100% freelancing, you'll be able to hit the ground running with reusable code on like 70% of the projects you see out there. I mean, now that I've done these sorts of sites, I'm seeing my timelines shorten a great deal because I have so much reusable code that I just alter slightly and off I go.
Additionally to that, and much more importantly in my opinion, is the fact that writing the code is the easy bit when it comes to freelance work. The hard bit is dealing with the clients, marketing your services, networking with potential prospects, getting people to agree that a job is finished and actually complete the payment schedule ... those are the bits that make freelancing much less fun, so much so that I don't freelance any more. Clients suck my will to live.
* Read your current contract first though. Some employment contracts have clauses that mean any code you write, even in your spare time, belongs to your employer. It sucks, but it's true and it's enforceable. Be careful what you sign.
Re: Typical Sites, Preparation for the Future
You mean when doing a full-time job?If you switch to being a freelancer you won't have any code to reuse apart from what you've written for yourself in your spare time*. What you've written so far belongs to either your current employer or the client you wrote it for. It's not yours, and reusing it on projects you write on a freelance basis would be breach of copyright. Potentially that could mean the owner would be able to sue you, your client (who then sues you), and your former employer (who also then sues you). Using code you're not legally entitled to use isn't the best plan in the world...
And also copyrighting code sounds a bit odd. I mean if I'd make a cms I'd use the same code or coding style. Because I used that code in my previous work I'll have to change the variable names or add some linebreaks so the script looks different, or even find another way to do it? It doesn't make much sense.
Re: Typical Sites, Preparation for the Future
Yes, but not limited to that. When you write code for other people it's rare that you get to retain the copyright unless you expressly discuss the license for the code with the client.Sindarin wrote:You mean when doing a full-time job?
Well, if you rewrite something from scratch the chances are pretty high that there'll be some significant differences - you'll implement things differently, put in different features, etc. Enough to show that it's new work. All I'm saying is that you will have to rewrite everything until you have a library of code that you definitely own, or share, the rights to - something you'll have to get clients to contractually agree to. Having written things in the past for other people isn't enough.Sindarin wrote:And also copyrighting code sounds a bit odd. I mean if I'd make a cms I'd use the same code or coding style. Because I used that code in my previous work I'll have to change the variable names or add some linebreaks so the script looks different, or even find another way to do it? It doesn't make much sense.
Re: Typical Sites, Preparation for the Future
I wouldn't be so sure. I know in graphic design or photography that making something for a client does NOT automatically mean you transfer the copyright. For that, there has to be a written contract in place which spells that you give the copyright to the client.onion2k wrote:Yes, but not limited to that. When you write code for other people it's rare that you get to retain the copyright unless you expressly discuss the license for the code with the client.Sindarin wrote:You mean when doing a full-time job?
Basically, almost everything you make, whether it's music, art or code is yours and stays that way. Unless you explicitly transfer the rights to someone else.
of course, when you are in full-time employment somewhere, you probably signed a contract when you got the job. In that contract there's probably something about the rights of what you have done when working for that company.
Re: Typical Sites, Preparation for the Future
Gotta love my country, there is absolutely no copyright mention in the contract you sign to get employed.of course, when you are in full-time employment somewhere, you probably signed a contract when you got the job.
Re: Typical Sites, Preparation for the Future
That just mean the common default rule applies I think.Sindarin wrote:Gotta love my country, there is absolutely no copyright mention in the contract you sign to get employed.
Re: Typical Sites, Preparation for the Future
I agree 110%. The only thing I'd say do different is don't strive to a freelancer, a freelancer is still a worker. True wealth is having assets that make you money while you sleep. When I do something I always ask myself, "is this going to make me money in my sleep".. and if so i ask myself what the market value of it is. I think accounting integrated + e-commerce alone would only take a few months to build for most of us, and would allow a lot of you guys to quit your job and live very comfortably.jack_indigo wrote:So, to all those guys considering becoming a freelancer out there, still working that regular programmer day job in a cubicle somewhere, I have this advice. Consider building the following frameworks, either using some existing framework and customizing, or develop your own framework on pure PHP. The frameworks would be:
Of course, this isn't the recipe for turning anyone into an excellent PHP developer. There's far more to learn out there to be the best you can be. It's just that if I had done all of the above BEFORE I had become a freelancer, I wouldn't have had such a rocky road up until now.
When you get into the ERP stuff the going rate is per month per each end user, so the larger the companies you sell the more recurring passive income you build up that you make in your sleep.