Code Planning

When building an application there’s two significant things to make decisions on:

  • How the app will fit together, and respond to user interaction
  • What tech stack you’ll choose

Service Blueprinting

When you’re building something, it’s important to consider the points of interaction for the user

When the user interacts with the app, what should happen in the backend?

Plan out the stages of the user journey and the corresponding actions which will be triggered

What does the user see, and what do they do?

What does the app see, and what does it do?

A service blueprint

Tech Stack

It’s important to make deliberate choices

Try to consider alternative approaches.

What are the pros and cons of each?

“We already know this technology” is a valid pro!

Your technical choices should help fulfil the project requirements

Specific questions to consider

Where does the data come from?

Individual user, all users, or you?

Do you need to sync data across devices?

Keeping everything on-device can be simpler.

Do you need a full database?

Could you just use localStorage?

Do you need a SQL relational database?

Would a simple object store be easier?

Do you need full control of the data?

Could you use a simple hosted service like Airtable?

Do you need Authentication?

Will you use a back-end-as-service (like Firebase or Supabase)

Will your app run on the client or server (or both)?

This is going to depend on data requirements.

Can you build “frontend first” to validate the MVP?

Setting up a database can suck up a lot of time at the start.

Do you need a frontend framework?

Or is your app mostly static?

Will you use a platform-as-a-service (like Fly.io or Vercel)?

Or do you need more control over the hosting environment?

Will you use any tools or frameworks for Testing?

Do you need help managing styling?

Or will your app be simple enough to get away with vanilla CSS?

You don’t have to pick the exact right tool for the job

but you should be able to justify your choice.