As developers we all love a well-defined brief. But more often than not, we get handed something vague like: "Just make us a landing page." And that’s it...no copy, no colors, no branding, no clear goals.
Sound familiar?
If you’re nodding along, you’re not alone. Many clients start with an unclear vision of what they want. That’s not necessarily a bad thing, but it does mean you’ll need to take charge and shape that vision into something workable. Here's how I do that without burning out, getting underpaid, or ending up stuck in scope creep hell.
💡 Step 1: Turn vague into concrete & guide the client
When a client comes to me with a fuzzy idea, I see it as my role to help define the project. One useful tool is a discovery questionnaire: a structured set of questions that can help uncover the client's needs, goals, target audience, and design preferences. There are plenty of templates online you can adapt.
Also, I ask for things like:
- Branding documents (fonts, colors, tone of voice)
- Existing content or marketing materials
- Clear business goals: is the goal conversion? SEO? Brand awareness?
Oh, and one more thing: try to get a clear sense of what the company stands for and what their voice is. How do they communicate on social media, on their website, or even in personal conversations? This gives you a great feel for their tone and identity, which will help you bring their vision to life and build an outstanding digital “visiting card.”
This initial phase is really vital so treat it like a mini-research project.
📋 Step 2: Be crystal clear in your project proposal or contract
Once I know what the client actually wants, I put it in writing. Your offer or contract should clearly state:
- The main deliverables (e.g., “a landing page with 3 additional pages connected to a headless CMS”)
- The number of meetings or revisions included (e.g., “2 x 30-minute calls and 1 revision round”)
- What’s out of scope (e.g., “SEO optimization and analytics setup not included”)
- How much extra work will cost
This avoids the dreaded “just one more quick change” creeping in over time. If it's not in the scope, it's not part of the job (unless you explicitly agree to it and bill for it).
💰 Step 3: Know your worth
Sometimes a client can’t pay your full rate, but you might still want to work with them: maybe for the experience, the portfolio, or because you align with their mission.
That’s okay, but make sure to communicate clearly that it’s a one-time discount. Otherwise, word spreads and suddenly everyone thinks your discounted rate is your normal rate.
Also: research your market value. Know what other freelancers or developers with your experience level are charging, and stay realistic. Your time has value so don’t undersell it unless there’s a strong strategic reason!
⚖️ Step 4: Define responsibilities (on both sides)
Don’t let unclear responsibilities cause confusion mid-project. The contract should also outline what the client is responsible for: e.g., delivering branding, copy, or login access.
Be clear about the end point: “The project ends once X is delivered.” After that, they can re-hire you for any additional work.
Clients may try to sneak in extra tasks with “just a small thing”...and you can choose whether to take that on, but set expectations either way. Be polite but firm:
“That’s outside the current scope, but I’m happy to discuss it as a next step!”
When working with clients who have a vague vision, take the lead in shaping that vision into a defined project. Be specific in your scope, clearly communicate your process, and set boundaries around your time and responsibilities. If you offer discounts or extras, be intentional and always write everything down. It's not only about coding...it's more than that: you’re managing a relationship, and protecting your time and energy is just as important as delivering great work.
What are some guidelines and tips that you work with for freelance gigs? Let me know in the comments!
Top comments (0)