I think I have cracked freelance portfolio projects & landing pages.
Tags: webdev, javascript, freelance, productivity
Published: 2020-05-12 08:35:27

I have made a lot of landing pages for my friends, co workers, my dads construction company, his friends, for my marketing team at office and for a lot of clients.

So I usally used to do the below things *(I was new used to do many things the complex way, so bear with me)* and the requirements would be same 75% of the time from these clients.

1. Buy a Domain and a Server to host the code. Mostly on godaddy with the linux server plan, you get PHP and Mysql, yay!
2. Write code locally and send it to server via FTP, whenever I updated it.
3. If a lead fills the form save it to a database and show them in a admin dashboard or save it to a CRM.
4. Send a Email to the client whenever someone fills up the contact us form. I usually coded a SMTP script to send them emails or used sendgrid's free tier.
5. These kind of projects most of the time involve repeated data you need to display in your UI for example - events, music, projects etc. The client would always come back to me and request to add new data (I would charge a minimal fee for this as maintenance & udpates).

So usually this involved a lot of repetitive tasks like maintaining the code and sending it to server via FTP, write a backend app for connecting it to a CRM or saving it to a database, write a script fpr sending emails to clients. Deploy everytime I made changes to the code or if the client asked for a update. 

This was back when I was new to coding and I just wanted to earn money, add more projects to my portfolio and did not think of code maintenance, feasibility and saving time, but I feel I have evolved from these practices. These days I am writing more cleaner code(I think), completing the projects quicker than before, and actually earning more from these kind of projects.

How? I noticed some things like, the client does not care what server I am using, what language I write the code in. They dont need the data to be saved in a database or use the CRM, in the end they were just downloading the data in an excel sheet, I never asked why.  They want quick notifications whenever someone filled the data and not necessarily on email, heck most clients I made portfolios for, don't even actively check their emails and  missed replying back to leads/customers.

Here's what I did to become better at handling these projects and eventually started earning more.

1. The only thing the client will be buying here will be a domain.
2. There was no need of a server honestly. Host everything on Netlify, [Now.sh](http://now.sh) or firebase. This will make you more productive as a developer and saves you a lot of time, and it's git based, so you dont always have to worry about keeping you code in sync with your codebase, no manual builds, code pushed to specified github branches will be auto deployed.
3. Save the data to a Google Sheet directly using Google appscript or use something like zapier, integromat. Host the appscript as a webhook and it gives you a endpoint, simply make a HTTP request for saving the data. 
4. No need of writing code for sending emails, I found this awesome tool which send emails for free with no cap [https://www.staticforms.xyz/](https://www.staticforms.xyz/).
5. As I mentioned a lot of these client don't actively check email, offer making a telegram bot which will send them notifications instantly and on their phones as a add on for a additional fee.  No need to write backend code again, make use of [https://nocodeapi.com/](https://nocodeapi.com/).
6. If for some reason you need to write some backend code, make use of [now.sh](http://now.sh) or [glitch.com](http://glitch.com). 
7. Make use of Netlify CMS, it works as a github based CMS which also let's you save the content in json format. Implement this as a one time fee in exchange of monthly maintenance & updates charges.
8. Use glideapps which acts as a admin data management tool where they can manage their leads. An add on for a minimal fee.


So basically you are saving the client a lot of money here and technically earning more by saving the client some money. You make these projects more quicket & make use of better and advanced tools. 

The client and you both get to be happy, a win win.