I don't bill hourly. I haven't since the first month I started freelancing. Here's why, and here's exactly how I price every project that comes through ModernGrindTech — from a $2K landing page to a $25K full-stack platform.
This isn't theory. These are the actual numbers, the actual process, and the actual conversations I have with clients before any code gets written. If you're thinking about hiring a solo dev (or you are one trying to figure out pricing), this is the post.
Why Fixed Pricing Over Hourly
Hourly billing creates a fundamentally broken incentive structure. If I bill $150/hour, I make more money the longer a project takes. The client wants me to work faster; I get paid more when I work slower. Neither side says this out loud, but both sides feel it. The client starts wondering if that 3-hour task really needed 3 hours. I start feeling defensive about every line item on the invoice. It poisons the relationship before the project even ships.
Fixed pricing flips the incentive. The client pays $X for a defined outcome. I make more per hour the faster I ship. Both sides want the same thing: get it done, get it done right, get it done fast. No timesheets to submit. No hour-tracking software. No awkward conversations about whether a meeting "counts" as billable time.
There's a second reason. I ship fast. Really fast. Regal Title expected a 3-month timeline based on their experience with previous developers. I delivered in 3 weeks. If I billed hourly at a reasonable rate, the invoice would look suspiciously low for the amount of software they received. Fixed pricing means I get paid for the value of the output, not the hours it took me to produce it.
Speed is my competitive advantage. Hourly billing punishes speed. Fixed pricing rewards it.
The Discovery Call
Every project starts with a discovery call. Usually 30-45 minutes. Sometimes two calls if the project is complex. The goal is simple: understand enough about the project to give an accurate fixed price. Not a ballpark. Not a range. A number.
Here's what I'm trying to figure out on the call:
- What does the software actually need to do? Not features — workflows. "A user signs up, creates a profile, uploads a document, an admin reviews it, and the user gets notified." That tells me more than a 40-item feature list.
- Who are the users? Technical users who can handle a dashboard with 30 fields? Or real estate agents who need big buttons and zero ambiguity? The audience determines the UI complexity, which is often half the work.
- What already exists? Am I building from zero or integrating with existing systems? Does the client have a database, a domain, brand guidelines, existing content? Every existing asset I can use saves time.
- What's the actual deadline? "As soon as possible" means nothing. "We launch the marketing campaign April 15 and need the site live before that" tells me everything.
- What does success look like? For some clients, success is "the site loads and looks professional." For others, it's "we need to process 200 orders per month through this system." The success criteria determines how much testing, performance work, and polish the project needs.
After the call, I write a scope document. One page. Plain English. It lists what I'm building, what I'm not building, what the client is responsible for (content, images, domain, DNS), and the fixed price. The client signs it. That's the contract.
No 30-page SOW. No legal language that requires a lawyer to decode. One page that both sides can reference when someone says "I thought we agreed on..."
The Pricing Tiers
Projects fall into three general buckets. The actual price depends on complexity, but these ranges hold for about 90% of what comes through the door.
Landing Pages and Marketing Sites: $2K–$5K
This is a 1-5 page website with a clear purpose: convert visitors into leads, explain a service, or establish a professional presence. Typical scope:
- Custom design (no templates, no WordPress themes)
- Responsive across all devices
- Contact form or booking integration
- Basic SEO setup (meta tags, structured data, sitemap)
- Deployed on Vercel or equivalent with custom domain
Timeline: 1-2 weeks. The $2K end is a single-page site with minimal interactivity. The $5K end is a multi-page site with animations, custom illustrations, or interactive elements like a quiz or calculator.
Web Applications: $5K–$15K
This is software that does something. User accounts. Dashboards. Data entry. CRUD operations. API integrations. Typical scope:
- User authentication and role-based access
- Database design and implementation
- API layer (REST or tRPC)
- Admin panel or back-office dashboard
- Third-party integrations (payment processing, email, CRM)
- Deployment with CI/CD pipeline
Timeline: 2-6 weeks. The $5K end is a straightforward CRUD app with a single user role and simple data model. The $15K end is a multi-role application with complex business logic, multiple integrations, and a polished UI that needs to impress.
eXp Richmond fits here. Recruitment website with a dual-path funnel, interactive fit quiz, per-team pages with real bios and production numbers, partner ecosystem section, and a premium dark design that deliberately breaks from every real estate web convention. Multiple pages, custom interactivity, brand-specific design work. Not a simple landing page, but not a full SaaS platform either.
Full Platforms: $15K–$25K
This is a production system. Multi-tenant architecture. Complex data relationships. Multiple user types with different permissions. Real-time features. Mobile responsiveness that goes beyond "it doesn't break on a phone" — it needs to be genuinely usable on mobile because that's where the users live. Typical scope:
- Everything in the web application tier
- Multi-tenant data isolation
- Advanced role-based permissions
- Real-time updates (WebSockets or polling)
- File management and document workflows
- Automated notifications (email, SMS, in-app)
- Analytics dashboard or reporting
- Comprehensive testing suite
Timeline: 4-10 weeks. This tier covers projects like Regal Title — a title company platform with order management, document workflows, attorney routing, multi-entity separation between the title company and law firm, fraud advisories, disclosure language, and role-based access for processors, attorneys, and admins. Or UPA Esports — a competitive gaming platform with Stripe-powered prize pools, team management, bracket systems, and a public-facing landing page.
These projects require multiple discovery calls. The scope document is still one page, but it references a detailed feature breakdown that both sides build together during the discovery process.
How I Handle Scope Creep
Scope creep kills projects. Not because the new requests are unreasonable — they usually aren't — but because unbounded scope destroys timelines, and missed timelines destroy trust.
My system is straightforward. During the build, the client will inevitably say "Can we also add..." Every time this happens, I do three things:
- Acknowledge it. "Good idea, let me think about that." Never dismiss a client request in the moment. They're telling you what they care about.
- Estimate it. I give them a rough effort estimate and a dollar amount if it's outside the original scope. "That's probably 2 days of work. I can add it to this phase for $X, or we can put it in the next phase."
- Document it. Every out-of-scope request goes into a shared list. The client can see the list growing. At milestones, we review it together and decide what makes it into the current phase (with a price adjustment) and what gets deferred.
The key insight: most clients self-moderate when they can see the list. When "Can we add a chat feature?" is item 12 on a list of 15 additions, they realize they're asking for a different product than what was scoped. Some items genuinely need to be in v1. Most can wait.
If a change is small enough that it doesn't affect the timeline — moving a button, changing copy, adjusting a color — I just do it. No paperwork. No change order. The scope document exists to prevent large deviations, not to create friction over trivial adjustments.
Payment Structure: 50/50
Every project follows the same payment structure:
- 50% upfront — paid before I write the first line of code. This covers the discovery work, scope document, and confirms the client is serious. I've never had a client object to this. If someone won't put 50% down, they're not ready to build.
- 50% on delivery — paid when the project is deployed to production and the client confirms it matches the scope document. Not when I say it's done. When they say it's done.
No milestone payments. No weekly invoices. No net-30 terms. Two payments. Simple.
Why not 100% upfront? Because the client needs assurance that I'll actually finish. The second payment is my incentive to deliver. Why not 100% on delivery? Because I need to know the client can pay before I invest weeks of work. The deposit is their commitment.
For projects in the $15K-$25K range, I occasionally do 40/30/30 — 40% upfront, 30% at a defined midpoint milestone, 30% on delivery. This only happens when the project timeline exceeds 6 weeks and the client specifically asks for milestone billing. I don't offer it by default because it adds administrative overhead that neither side enjoys.
Real Numbers from Real Projects
I'm going to be specific here because vague pricing posts are useless.
Regal Title — Full platform tier. Title company in Virginia with a dual-entity structure (title company + affiliated law firm), order management workflows, attorney routing, role-based permissions, fraud advisory systems, and regulatory disclosure requirements. Multiple discovery calls to understand the title industry workflow. Delivered in 3 weeks. The client expected it to take 3 months based on previous vendor experience.
eXp Richmond — Web application tier. Real estate recruitment website with dual-path funnel (team vs. independent agents), interactive fit quiz that routes to different intake flows, per-team pages with real bios and production numbers, partner ecosystem section, and a premium dark design that deliberately breaks from every real estate web convention. Shipped in 2 weeks.
UPA Esports — Full platform tier. Competitive NBA 2K platform for content creator EvThatGuy. Stripe integration for prize pools, team creation and management, bracket generation, player profiles, and a public landing page. The Stripe integration alone required careful handling of payouts, refunds, and the split between platform fees and prize distribution.
Each project had a one-page scope document. Each project had the 50/50 payment structure. Each project shipped on or ahead of the stated timeline. No surprise invoices. No "we went over budget." The price was the price.
What I Won't Do
Transparency about what's excluded matters as much as what's included:
- I don't do ongoing maintenance contracts. I'll build it, deploy it, and hand it over. If you need changes later, we scope a new project. I'm not charging a monthly retainer to be on standby.
- I don't do unlimited revisions. Three rounds of design feedback per page, defined upfront. After that, additional revisions are billed separately. Without this boundary, a homepage can take longer than the entire backend.
- I don't do "just make it look like this site." If you want a clone of someone else's product, hire someone cheaper. I build custom software that fits your specific problem.
- I don't negotiate on the upfront payment. 50% before work starts. Non-negotiable. It protects both of us.
Why This Works as a Solo Dev
Agencies charge more because they have overhead — project managers, designers, QA testers, office space, Slack subscriptions for 40 people. I charge less because I don't have any of that. It's me, a terminal, and Claude Code running 10 parallel agents.
That doesn't mean the work is lower quality. It means the money goes to building the product instead of funding an org chart. The client gets a single point of contact who understands every line of code, every design decision, and every deployment configuration. No handoffs between departments. No "let me check with the developer and get back to you."
The tradeoff: I can only take on 2-3 projects at a time. I don't have a bench of developers to absorb overflow. When I'm booked, I'm booked. That constraint is what makes the quality possible.
Get a Quote
If you're thinking about a project, here's the process: book a discovery call, tell me what you need, and I'll give you a fixed price within 48 hours. No obligation, no sales pitch, no follow-up emails asking if you've "made a decision yet."
Check the services page for a full breakdown of what I build. Look at case studies for proof that this process produces real results. And when you're ready, book the call.