How to Create a Web Development & Design Agency (While in School or Working Full-Time)

By the time I graduated college in mid-2017, I had earned nearly $100,000 from a small business I started just two short years earlier, all while completing my Bachelor’s degree (in Computer Engineering) and two minors (in business).

I don’t say this to be a braggart. Please do not take it as such. I say this to bring to your mind what is possible with deliberate, focused effort. There are certainly others – whether my age at the time or younger – who made the same amount of money, if not more, doing the same or doing something completely unrelated.

What follows is a guide, written with lessons-learned, for both those young in age and those later on in life wanting to start a side business, whether it’s to add another income stream or to slowly build what you’ve always dreamed of working on.

I repeat: this guide is not only for aspiring agency owners in college. Anyone of any age with any skillset can benefit from this guide. (With that said, for sake of transparency, I did acquire the knowledge I share below while operating my small business in college.)


Prior to graduating high school (which may seem like a looong time ago for some of you), I often found myself mentally exploring various career paths, in efforts to find a path most-fulfilling to me yet also and – of course, especially for a youngster – financially rewarding. (Pretty atypical of a soon-to-be college student, right?)

Many hours of online videos watched later, my interest was piqued by technology, particularly internet-enabled technologies. While the internet arose in the early 1960’s as a wartime communication system [1], it quickly became the publicly-utilized behemoth it is today for information consumption and dissemination following its newly realized capacity for doing so in the 1990’s.

Seeing companies like Facebook, Dropbox, and other new “tech unicorns” grazing the headlines of my parents’ South Florida newspapers only furthered my interest. What this said to me was this: “The internet has made things possible not even conceivable just 100 years ago. There is immense, untapped opportunity. There are endless possibilities for what you can create, whether it be a revolutionary new tool, product, or service, or an enhancement of an old-school business process which has not yet been transmuted to the internet.

While money wasn’t my only motivation, I certainly wanted to be able to provide for myself and the family I always imagined having down-the-line. However, deep inside me, I knew that technology could be more than an income stream for me. It has sparked a new revolution in productivity (not unlike the industrial revolution), and its full potential has only been partially realized, even at the time of writing this article. I wanted to not only make a living, but make a difference as well, both through the power and enablement of technology.

So, with that, I decided technology would be my forte. The only problem is, I had no idea where to start. I was a high-achieving student (at least according to my high school), but I had never dabbled in technology beyond video games and Microsoft’s suite of “Office” programs…

How to Get Started

Note: If you already know how to program i.e., are some form of a web programmer already, you’ll likely want to skip down to the “Getting Paid (or, Transitioning to Client Work)” section below. This section provides a primer on learning to develop and design websites and web applications.

With a plan of eventually owning and running my own web development and design business, I knew I had to learn how to program. How else would I actually provide the service I would soon be advertising?

When I started my education, it appeared to me that every successful website or web application was carefully orchestrated and implemented by senior developers with many years of experience. I had no such individuals in my life. No professional programmers or mentors who could point me in the direction of one. So, I devised a strategy for learning how to program using what I saw but I didn’t have…

I would open up my web browser, go to my favorite websites and look at their backend by viewing their “source code”. To do this, all you need to do is right-click a web page and click “View Page Source” (exact terminology varies browser-to-browser). After doing this, you’ll see a bunch of often-garbled code which comprises the backbone of the page you saw prior to clicking “View Page Source”.

My thoughts were, if I could understand everything in here, I could learn how to code, yet I failed miserably. I tried to learn bottom-up rather than top-down [2]. I had no conception of the different layers of a website or web application. I tried to understand the end result without understanding the planning, tools, and processes used to get there. This was a big mistake, yet an understandable one due to my naiveté.

Eventually, after a long period of time and a lack of progress in becoming the next Bill Gates / Steve Jobs / Mark Zuckerberg / (insert your own tech idol here), I realized my next best option for continuing my self-education was to walk into a physical bookstore and purchase as many books on programming as possible. It started with a book on HTML and CSS, a book on Javascript and jQuery, and lastly a book on PHP and MySQL. Don’t worry about what each of these daunting acronyms mean right now, you’ll learn as you go. Don’t worry about where to find these books either, we have for that now.

I dug into these books for countless hours straight, often putting off outings with friends or school obligations just to finish a chapter or dive into another.

Eventually, by the time I entered college – about a year after I had first begun learning how to program – I had learned enough to get to the point of creating websites for fun, as proof I could apply my knowledge.

Following that, it was just practice, practice, practice. Practice enough deliberately and eventually you can do things naturally, not at the speed of light, but subconsciously to the extent where you are able to keep the “big picture” in your head without constantly worrying about all the minute details like “how will I implement this next feature?” Even to this day, I do not remember every single piece of terminology I learned. The wondrous internet I introduced at the start of this guide is our friend. Save your working memory for high level concepts, not the nitty-gritty of whatever programming language you are working in; there are reference books, Google, and Stack Overflow (all my personal favorites) for that.

The moral of the story here (or “how to start”, really) is this:

  1. Recognize where you’re at in your understanding of web development and design. This may lead to a feeling of being overwhelmed at “how far” you have to go, but realize that everyone started from scratch at some point in their lives. Nobody is born with the knowledge of how to program or even type on a keyboard or use a computer mouse.
  2. Find resources which can aid in your growth. For me, this was a plethora of books from Barnes & Noble. Today, learning from scratch is much easier thanks to the plethora of online coding schools – some free, others paid. Check out our “The Best Online Coding Schools” article to find your favorite.
  3. Set a goal to accomplish by utilizing those resources to boost your knowledge and skillset. An example goal would be to create a “static” webpage (simply put, one without advanced functibeonality) which mimics a page of your favorite website. Another may be to create a very basic web application which helps you accomplish something — for me, one was a note-taking app, a very simplified version of today’s Evernote.
  4. Set deadlines by which to accomplish these goals. Next, project the time it will take to accomplish your goals. Using your deadline and the projected time-to-completion, set aside an ample amount of time each day prior to your deadline, to enable yourself to progress toward and eventually reach these goals. At the start, you will vastly underestimate the time it takes to, say, change the background color of the various “elements” on your new “static” webpage, but you will eventually get the hang of it. We’ve all been there!
  5. Take action. You must apply the knowledge you’ve absorbed from your learning materials (whether a book, mentor, online code school, or other). Bit-by-bit, your first website will come together, then your second, then your third, and so forth…  With every project you embark on, keep the big picture in the back of your head, as to apply context to what you are learning and how you can make use of it.

You must know: You will hit roadbumps. You will likely get discouraged. But if creating a work-from-anywhere business creating websites and web applications for others is your dream, then you’ll have the passion to see it through, even if you have to take a day or two off from learning periodically. My largest source of perseverance was my own drive to create a working product which could benefit others. Nothing felt better than bringing something valuable into the world, so with this understanding, I kept a high-level perspective on my end goal while simultaneously being “in the trenches” actually building it. This approach helped guide me toward what I learned next as well as what – out of what I’ve learned – I would apply, and when.

Eventually you will create enough websites and/or web applications which have not only allowed you to learn and apply all the skills necessary to build sophisticated websites or web applications for others, but also showcase your newfound skills. There is nothing better than a work portfolio for showcasing your abilities – and the end products you’re able to produce with said abilities – to potential clients.

Getting Paid (or, Transitioning to Client Work)

You’re probably asking yourself “Now that I have these skills, how do I make money from them..?” At the beginning of your monetizing-your-development skills journey, you will need to hustle to find and secure paid gigs.

Assemble your work portfolio.

In case you haven’t already, you’ll want to create a portfolio of your work. Typically, you should post this online either under your name or the name of the business which you have created and wish to work under. (Need help starting a business? Here are our recommendations on “How To Create a Legal Entity For Your New Web-Based Business”).

Seek out interested family and friends.

My very first gigs came from family and friends who were in need of either an entirely new web presence or an updated presence. More often than not, my first gigs were for businesses, rather than for individuals. It resulted this way due not only to the fact that businesses often have a higher budget for their sites (they don’t just want a website to post pictures of their pets on), but because individuals often utilize one of the many “website builder” tools out there (SquareSpace, GoDaddy, Webs, Wix, etc.) today. While these tools enable individuals to get up and running with a simple site quickly, businesses’ online needs are often far more complex than the websites these self-serve website builders are capable of creating.

Note: Do not be overly direct in soliciting business from your family and friends, as this can strain or even sever these important familial relationships and/or friendships. You should instead take a gentle approach to communication. Introductions should be gentle and personable. Follow-ups, made as necessary, should be light and infrequent, perhaps 1-2 weeks after you last heard from them. Don’t forget everyone has their own life including their own ups and downs they are going through at any given moment. Most importantly, since these are your family and friends, be personable with them through the entire process, from initial consultation, to project start, through project stages, and after project completion. Lastly, never think of ever screwing over a friend or family member to better yourself monetarily. You may not realize it yet, but your reputation will carry you in this industry.

Post about your newfound skills.

After reaching out directly to your friends and family, you’ll want to make broader, more public-facing posts. This includes on your typical social media channels: Facebook, Twitter, LinkedIn, and Instagram. You can feel safe ignoring Pinterest as their platform is not very compatible with these types of postings. Some of you may already be bursting at the seams with your announcement, but for those that need a little help on what to post, here’s an example:

Hey friends, family, and colleagues — Over the past year I have mastered my craft of developing and designing websites and finally feel ready to bring my skills to the world.

If you have had an idea in mind you’d like to bring to life online or have a preexisting website and want it revamped, let’s chat! At this point in time, I am taking on any and all work, whether small or large.

Check out this link [insert link to your portfolio here] to view some of my previous work, and again please feel free to contact me with any questions, concerns, or for a 100% free consultation!

P.S. Thank you to everyone who have supported me throughout my journey, I am eternally grateful!

– Cody

If you had a mentor or two along the way helping you grow your technical skills, feel free to throw in that “P.S.” and maybe even reference your mentors’ names. This will make your post appear more grounded and “real” as opposed to a money-grab.

When you’re starting out, it’s better to be personal than extremely formal with your clients. Since you have yet to make a name for yourself, you will have to work harder than other established designers, developers, and agencies. Eventually, however, with an ever-growing portfolio of more and more advanced projects, your work will speak for itself and you can slowly swap out personability for professionalism in order to reach the big clients and save yourself time and stress in the process.

Other Sources of Gigs, Projects, and Work

If you have no friends or family seeking a new or revitalized web presence, or you’ve already completed all their projects (good for you!), there are several marketplaces online where you can create a profile and advertise your skills, including but certainly not limited to:

  • (acquired by Upwork)
  • And the list goes on…

I did not list these gig marketplaces in any particular order. Each of them have their own pros and cons, including fees paid to the platform, the way you secure gigs and work with clients, and other differences. I recommend you read up on each of them (and the others out there) before signing up. While you can certainly settle for just one platform, it is advantageous to sign up for multiple marketplaces in order to advertise your skillset as extensively as possible.

Being successful on these platforms requires a similar approach to that of working with friends and family, but there are differences. I could write a whole article on how best to position yourself, load your profile with past work, and the best method of communicating with potential and ongoing clients through this platform, but that would be a whole ‘nother article. Initially, I recommend you imitate what successful freelancers in those marketplaces do to advertise their skillset and secure gigs. Over time, you’ll learn what is working for you and what is not — that is when you adapt. You will not get it perfect from the start. Your journey will include a lot of trial and error, ups and downs, but let’s not forget the rewards, all of which combined will ultimately leave you with a better version of yourself at the end.

Securing Deals & Gauging Scope of Work

When you’ve finally got someone interested and ready to start, congratulations! It’s now time to assess their needs and create a “working agreement” which details out all the work you will perform, the payment required for such, and all the other details you must define and secure in writing prior to a project’s start.

At this point in your journey, you’re likely very familiar with what information you need to know in order to create an end product as specified. Being halfway through a project and realizing that the latest feature you want to add will require you to rewrite a substantial amount of your website or web application’s can be (and is) extremely frustrating. You’ll want to avoid these situations with clients, so while you can simply talk over their main objectives and jot down notes, you’ll want a more heavily ironed-out plan for assessing your clients needs and turning that into a work proposal with action items, and of course the price of your work.

I hate to do this to you, but this is another article in of itself, due to the depth in which we dive into accurately quoting clients. Here is the article, for your reading should you feel it necessary: “How to Accurately Estimate and Quote for Web Development & Design Projects”.

Starting Your Web Project

Wow, what a process, right? All that work just to start a project? Sure, it’s a lot of work at the start, but referencing something said earlier in this article, “Practice enough deliberately and eventually you can do things naturally”.

That is, after you’ve learned how to actually develop and/or design websites and web applications, have established a process of steadily acquiring new work, and have ironed-out your consultation and estimation process, the whole process requires much less cognitive load due to the fact you now have a set of “train tracks” to guide you through the process.

Your Work, Your Choice of Process

While your exact development and/or design methodology will vary from person to person, you’ve likely found how you like to work by now. You’ve also already had to take this into account when providing your clients estimates for their desired work. With that said, I won’t give you any best-practices for this part of the journey, i.e. developing or designing AKA actually providing the service your clients are paying for. (Maybe in the future I will, should you be bored enough to read it..)

Instead, what I will now discuss is the importance of breaking down a project and tracking progress on each goal or milestone as efficiently as possible, as to spend only a fraction of the time in the project managing it rather than furthering it via development or design.

Planning the Project

Prior to jumping into a project for a client, you’ll want to lay out – for yourself – all the stages and the milestones or subtask of each stage in a project management tool of your choice in order to track your own progress.

When I first started, my “project management tool” was a yellowpad with every single item necessary to complete a stand handwritten out. These days, we have better options (and I probably had them back then too, I just liked to start old-school).

  1. Pick your favorite project management tool, including but not limited to one of the following: Asana, Trello, Basecamp, Redbooth, Monday (formerly Dapulse), and many more.
  2. Create a new project in the tool and dump all stages of your development/design project into the tool.
  3. Next, drop in all milestones or subtasks for each stage. You may even add sub-sub tasks, depending on whether a task is large enough to require them (and if your choice of project management tool supports that functionality).
  4. Most importantly, review what you’ve done in 2-3 to be sure it’s accurate with what you’ve planned out earlier. You may have forgotten a detail or perhaps you can think of a “missing element” you have to add in, without which, the milestone or stage overall would not be completable.
  5. Assign deadlines to each top level stage, then assign deadlines to each subtask or milestone accordingly. These should coincide with the overall project schedule (which you’ve hopefully shared with your client).

Once you’ve gotten all stages, tasks, subtasks, and so forth laid out in your organizational system of your choosing, you’re ready to begin.

Tracking Progress & Communication

As you knock out project milestones, you’ll want to communicate your progress with your client. You definitely don’t want to send them an email every time you complete a small task. Typically what I recommend is: send your client an update every week or every time a major phase of the project is completed, whichever comes first.

For example: if you finished provisioning the web server for the project within week one, you may send your client an email letting them know. On the other hand, if setting up the server took longer than expected, for whatever reason, you may want to send them an email update the following week letting them know of your progress, including what happened, where you’re at with the current task, and what you are doing next. Lastly, you’ll want to let them know when you’ll check in next. It is very important to maintain an open line of communication with your client.

However, this can get tedious, especially with larger projects, or with clients that like to micromanage, and let me tell you, that is the majority of clients. When you spend your hard-earned money on some product or service and you want to be sure you get the most bang-for-your-buck, so do your clients, whether they are utilizing their own personal funds or part of a company’s budget to build out the project. Thus, frequent, transparent, and truly informative communication is very valuable. Thankfully, there is an easier way than sending tens (if not hundreds) of emails and having one or more conference calls a week… self-promotion incoming!

Move beyond manually updating your clients

What if you could let your client see your progress without manually enabling it per every revision of your web project? What if your client could provide feedback on their own time and you could review it on your own time as well, thus enabling Slack-like communication but for the incremental process of creating graphics, websites, and web applications?

Timeline, which is now being proclaimed as a “suite of visual collaboration tools”, can do just that. After inviting a client and creating a project for them, you can upload all graphics and link-to all websites/web applications relevant to the project. What comes next will save you a lot of time…

You and your client will be able to exchange feedback and comments on every part of graphic or website/web application. Automated notifications are sent to both parties to make sure you stay in the loop with what the other is doing at any given time. Better yet, Timeline integrates with your favorite pre-existing tools like Slack, Asana, etc. (see our Integrations here [link coming soon]) to make your work even more seamless.

Don’t believe us (or you do)? Sign up for a “Free Forever” account to play around with Timeline now. Want to get started more quickly? Let us onboard you [link coming soon] at no cost to you.


Want to know the most mutually-beneficial way to follow up with previous clients? A method of doing so which can bring in further work from that client, or significantly increase the chances of them referring you to others for more work?

The core of these “post-project-completion communication best practices” are periodic check-ins but you can read more here. In the meantime, if you haven’t already, add this now-complete project to your work portfolio.

Maintaining Your Business

See our “best practices” article for maintaining your web business here. We don’t want to bore you with an overly long, single guide.

Maintaining Yourself

Unrelated to the majority of this guide’s content thus far, yet an important point nonetheless, is your health during this process of creating your web business as well as maintaining it.

What is the point of immense success or even immense satisfaction from your work if your body won’t be around to enjoy it? While in the USA, we pride ourselves on “hustling” and the long hours that entails, we need to keep an eye out on our health. If you’re interested, check out our tips on being health while running a web business here.