AD
Episode
264
Interview
Web News

How to Choose the Right Stack for Your Clients

Recorded:
September 1, 2023
Released:
September 6, 2023
Episode Number:
264

It can be difficult to choose the right tech stack for your website or web app because there are so many to choose from. There are more traditional stacks like LAMP, MERN, and MEAN...as well as new serverless stacks that use Vercel/Netlify, Next.js, and Planetscale (MySQL). Furthermore, if you're working for a client in an agency or freelance, a single tech stack might not cut it. It's not uncommon for a client to bring you in to work on their website, setup their newsletter, and code up a new web app. Projects like this might use LAMP w/ WordPress for the website, serverless technologies for the web app, and Constant Contact for the newsletter. In this episode, Matt and Mike discuss choosing your tech stack based on its pros and cons, the project's requirements, and how to avoid personal bias that could cost you money.

Listen

Also available on...
...and many more, check your podcast app!

Who’s in This Episode?

Show Notes

What you'll learn in this episode

  • What is a tech stack?
  • What is a "client stack?"
  • How to choose the right stack for your clients based on...
    - The project's requirements
    - Personal considerations (ie your team's expereince level)
    - Technical considerations (ie can this stack run a website like this efficiently?)


How to support the show

Patreon

Prices subject to change and are listed in USD

  • Support the show from as little as ~$1/month
  • Get a shoutout at the end of the episode (while supplies last) for just ~$3/month
  • Help support the HTML All The Things Podcast: Click Here

Scrimba Discount!

We receive a monetary kickback when you use our link

  • Learn to code using Scrimba with their interactive follow along code editor
  • Join their exclusive discord communities and network to find your first job!
  • Use this URL to get 10% off on all their paid plans: https://tinyurl.com/ScrimbaHATT


Topics

What is a tech stack?

Formal Definition

  • A collection (or a “stack”) of technologies that are used together to build out an application (desktop, web app, website, etc.)
  • Popular stacks include:
    - MEAN: MongoDB, Express.js, AngularJS, Node.js
    - MERN: MongoDB, Express.js, React.js, and Node.js
    - LAMP: Linux OS, Apache web server, MySQL, PHP
  • New Stacks (serverless)
    -
    Vercel/Netlify, Next.js, Planetscale (MySQL) [serverless]

Our definition for this episode…

  • Our definition is a little bit different because we’re talking in the context of clients and selling them on your services…
    - Our Definition: A collection of technologies that are used together to build out a solution for a client
  • The solution for a client may be multi-faceted…for example:
    - WordPress for the marketing site
    - Custom code using LAMP stack for their web app
    - Constant Contact for their email marketing
  • Even though there are three stacks involved here, together they form sort of a “client stack”

Why is it important?

  • Your tech stack is a foundational piece of your project that dictates:
    - Your application’s overall capabilities
    - The typical issues you will face
    - How expensive the project may be to build, maintain, and scale


How to Choose the Right Stack for Your Clients

Requirements Gathering

  • Gather all your client’s requirements - answer this: what do they need this project to do?
  • If they’re non-technical, get them to walk you through what they want in non-techncial terms, even if they have a list of technical requirements given to them from their tech team
    - They may just be reading off items in a list, not knowing what they’re for
  • Limitations Gathering
    - Budget: How much money do they have to work with?
    - Time: How much time do they have to work with?
    - Power: Do they have the power to make decisions and changes on the fly, or do they need to talk to a manager? Have a big board meeting? Tied up in red tape
    - Experience: How experienced are they with running/administering the project you’re trying to build them? Are they going to call you every time someone has a problems with a password? How much handholding do you need to do?

Your Personal Considerations

  • People in the tech industry will no doubt generate opinions over time, some are for good reason, others are just personal bias - do not let personal bias cost you or your customer money, don’t custom code something that they would prefer you use WordPress for (if WordPress is appropriate an you just don’t want to use it because it’s not “real coding”)
  • Ask yourself these questions:
    - What is your current workload?
    - What is my team most experienced at?
    - How long does it take to learn a new technology that we haven’t touched yet?
    - Does the client budget work WITH a buffer zone for scope creep and unforeseen problems?
    - How are we going to manage this? Who’s in charge (project manager)? What are our policies on “last minute adds” (scope creep)? How strict are the deadlines?
    - Are you needed after the project has shipped? If so, can you handle the additional maintenance and/or support duty?

Technical Considerations

  • Ask and get answers to these questions:
    - Is this stack secure enough?
    - Is there a way to leave this stack? Is it easy? (migrating to another)
    - Can this stack scale enough for the client? (Always assume that the client will need to scale more than they said they would for a buffer zone)
    - Can we separate this project into phases? (Month 1: Marketing site, Month 2: Email list landing page, etc.) This helps with budget, timing, but also if you’re using multiple programs (WordPress, MailChimp, etc.)
    - How much commitment is required to your selected technology? (For example, if you go all in on Webflow, but the suddenly the client decides they absolutely need WordPress, it is not an easy 1:1 export and import) Proprietary custom code is usually not easily moved from platform to platform unless migration tools are created for them.