Part 1 of our Website Rebuild series. Read the overview: Rebuilding Envigna.com in Two Days


Let me tell you about the most expensive word in web development: "should."

"We should have a CMS."
"We should use React."
"We should add a user portal."
"We should build for scale."

That word—"should"—has cost more project budget, developer sanity, and timeline slippage than any bug or technical issue.

The most expensive word in website development - Should

When we started planning our website rebuild, we had a list of "shoulds" too. A full CMS. A modern JavaScript framework. A database-backed blog. Search functionality. Newsletter integration. The works.

Two days later, we shipped a website with none of those things.

And it's faster, cleaner, and easier to maintain than anything we "should" have built.

Here's how we figured out what we actually needed—and how you can too.

Biggest savings in website development - sticking with what you actually need

The Temptation to Over-Spec

There's a strange phenomenon in web development: the gap between what you need and what you think you need grows in direct proportion to how much you know about web development.

The statistics are sobering:

  • 66% of software projects fail (Standish Group 2020 CHAOS report)
  • 45% of features are never used across all software projects
  • 52.7% exceed budgets by 189%
  • Large-scale projects fail 3-5x more often than small ones

Why? Complexity kills projects. The more features you add, the more things can break, the longer it takes to build, the harder it is to maintain.

Our initial spec:

  • Laravel or Statamic CMS
  • Tailwind CSS framework
  • Database for articles
  • User authentication
  • Search functionality
  • Newsletter integration
  • Custom admin panel

What we actually needed:

  • Five static pages
  • A blog that updates monthly
  • A contact form
  • Fast loading
  • Easy updates

Time to build: 2 days instead of 6+ weeks
Annual cost: $60 instead of $7,000+
Maintenance: 2 hours/year instead of 24+

Start with Business Goals, Not Features

Here's the framework that saved us: business goals before features.

What are you trying to accomplish?

For us:

  • Showcase our services clearly
  • Share insights via blog articles
  • Generate qualified leads
  • Establish credibility with mid-market businesses

Notice what's NOT on that list:

  • Impress other developers
  • Use every modern framework
  • Support thousands of concurrent users

Who is your audience?

For us:

  • Mid-market business owners (40-60 years old)
  • CTOs at growing companies
  • Non-technical decision makers

What does that audience care about?

  • Can you solve my problem?
  • Do you understand my business?
  • Can I trust you?
  • How do I contact you?

What do they NOT care about?

  • Your JavaScript framework choice
  • Your database schema elegance
  • Your microservices architecture

What actions should they take?

For us:

  • Read about our services
  • Understand our approach
  • Contact us for a conversation

That's it. Three actions. None of them require a CMS, a database, or a JavaScript framework.

The Decision Framework

For each feature someone suggests (including yourself), ask:

1. What problem does this solve?

If you can't articulate a specific problem, you don't need the feature.

Bad answer: "It would be nice to have."
Good answer: "Clients frequently ask for pricing information, and we're losing leads because they can't find it."

2. How often will we use it?

Usage frequency guide:

  • Daily: Build it
  • Weekly: Probably build it
  • Monthly: Maybe (if simple)
  • Quarterly: Don't build it
  • Annually: Definitely don't build it
  • Someday: Absolutely don't build it

3. What's the simplest solution?

Always ask: "Can I solve this with less?"

Example: Newsletter signup

Complex: Mailchimp API integration, custom signup flow, double opt-in automation, database, admin panel.
Time: 2 days

Simple: "Email us to subscribe" link.
Time: 30 seconds

Does the complex version provide $2,000 worth of additional value?

Probably not.

4. What's the maintenance burden?

Every feature you build is a feature you maintain forever.

CMS maintenance example:

  • Initial build: 2 weeks
  • Monthly security patches
  • Breaking changes: 2-3 times/year
  • Plugin conflicts: Ongoing debugging
  • Annual cost: ~$6,000 in developer time

Reality: Professional WordPress maintenance costs $50-$500+ per month, requiring 6.82-24.5 hours per year just for basic upkeep. With WordPress sites facing over 90,000 attacks per minute (Wordfence), that maintenance isn't optional.

What did we save? All of it.

5. Can we add it later if needed?

If yes, don't build it now.

We can add a CMS in a day or two if we need one later. But we probably won't.

Three Common Over-Engineering Patterns

Pattern 1: The Premature CMS

Symptom: You have 5 pages and 100 MB of CMS software.

Reality: You're editing content twice a year.

Better approach:

  • "How often will we update content?"
  • "Maybe quarterly?"
  • "How comfortable are you with simple text files?"
  • "Pretty comfortable."
  • "Great. Markdown files. Done."

Savings:

  • Setup time: 3 weeks → 15 minutes
  • Hosting costs: $30/month → $5/month
  • Security updates: 2 hours/month → 0
  • Decision fatigue: Endless → None

Performance impact: 47% of customers expect a webpage to load in 2 seconds or less, and 53% of mobile users abandon pages that take longer than 3 seconds. CMS overhead isn't just costing you money—it's costing you visitors.

Pattern 2: The Framework for Everything

Symptom: Your brochure site loads 500 KB of JavaScript to display text.

Reality: You don't have client-side interactions. You have content.

Our decision:

  • "Do we need client-side interactivity?" → No, just animations
  • "Server-rendered HTML with progressive enhancement?" → Perfect

Result:

  • JavaScript: 500 KB → 15 KB
  • PageSpeed: 75 → 96
  • Build complexity: Gone

Why it matters: Conversion rates drop 4.42% per second of load time. A B2B site loading in 1 second has a conversion rate 3x higher than one loading in 5 seconds. Fast sites aren't just technically better—they're better for business.

Pattern 3: The Feature Kitchen Sink

Symptom: Chatbot, calendar, booking system, forum, wiki, knowledge base.

Reality: None get used. Site is slow. Maintenance is hell.

The data backs this up: Studies show 45% of features in software projects are never used. You're not just building things you don't need—you're building things nobody will ever use.

Better approach:

  • "What do we KNOW users need?" → A way to contact us
  • "What's the simplest way?" → A form. Or a phone number.
  • "Done."

Savings:

  • Development: 3-4 weeks → 1 day
  • Integrations: Multiple APIs → None
  • Things that can break: 7 → 1

Our Actual Decision Process

Let me walk you through our three biggest decisions:

Do we need a CMS?

Analysis:

  • Update frequency: Monthly blog, quarterly page edits
  • Who edits: Us, comfortable with markdown
  • Workflows needed: None
  • Maintenance burden: CMS = 2 hours/month, Markdown = 0
  • Can we add later: Yes, in a day

Decision: No CMS. Markdown files + PHP templates.

Savings: $6,000+/year, 2 hours/month maintenance

Do we need a JavaScript framework?

Analysis:

  • Building a web app or website? → Website
  • Complex client-side interactions? → No
  • Real-time updates? → No
  • Will it make the site faster? → No, slower

Decision: Vanilla JavaScript, server-rendered HTML.

Impact: 500 KB → 15 KB bundle, PageSpeed 75 → 96

Do we need a database?

Analysis:

  • Storing user data? → No
  • Relational content? → No
  • Complex queries? → No
  • Thousands of pages? → No

Decision: File-based content. Zero database overhead.

Savings: 1 week setup, $0/month hosting, no backup complexity

The "Might Need Later" Trap

Here's what we didn't build:

User Authentication
Reasoning: "We might want a client portal later."
Why we didn't: "Might" is not a requirement. Can add in days if needed.
6 months later: Still haven't needed it.

Search Functionality
Reasoning: "With more articles, users might want search."
Why we didn't: Useful at ~100+ articles. We have 12. Google works fine.
Better solution: Category filtering + good navigation.

Newsletter Integration
Reasoning: "Email signup would be good for lead gen."
Why we didn't: GDPR compliance, email service setup, maintenance burden.
If needed: Mailchimp in 2 hours.

The principle: Build for TODAY's needs with TOMORROW's change in mind. Don't build TOMORROW's features today.

Your Requirements Should Fit on One Page

Seriously. If your requirements doc is more than one page, you're building too much.

Requirements Template

Business Goals:
[What are you trying to achieve?]

Content Types:
[What kinds of content? How often updated?]

User Actions:
[What should visitors do? What's the conversion goal?]

Team Capabilities:
[Who manages it? What are their technical skills?]

Technical Constraints:
[Existing systems? Performance requirements? Budget?]

Explicit Non-Requirements:
[What are you specifically NOT building? What features are you deferring?]

What Simplicity Gets You

By saying "no" to most features, here's what we gained:

Speed:

  • Development: 2 days instead of 2 months
  • Page load: 96 PageSpeed score
  • Updates: 5 minutes to publish an article

Cost:

  • Hosting: $5/month instead of $50/month
  • Maintenance: ~1 hour/month instead of ~10 hours/month
  • No ongoing service fees

Reliability:

  • No database to crash
  • No CMS to update
  • No plugins to conflict
  • Fewer things to break

Flexibility:

  • Easy to update (edit files)
  • Easy to backup (copy a directory)
  • Easy to version control (Git)
  • Easy to migrate (just files)

Mental clarity:

  • Know exactly how everything works
  • No mysterious black boxes
  • No vendor lock-in
  • No complicated deployment

Conclusion: Less is More (Literally)

The best feature is the one you don't build.

Every feature you add takes time to build, needs maintenance, can break, adds complexity, and creates cognitive load.

Every feature you skip saves time now, saves maintenance forever, can't break, keeps things simple, and preserves mental clarity.

Most websites need 20% of what people think they need. Find that 20%. Build only that. Add more later if (and only if) you actually need it.

Our principle: Build for TODAY's needs with TOMORROW's change in mind. Don't build TOMORROW's features today.

That's how you ship in days instead of months.

Next in This Series

In our next article, we'll talk about how AI changed our package selection process—and why you still need to think critically about every suggestion it makes.

Coming next: How AI Changed Package Selection (And Why You Still Need to Think)

Want help figuring out what your project actually needs? That's what we do. We've been building web systems for 25 years, and we're really good at separating "must have" from "nice to have."

Let's talk: Contact us


This is Part 1 of our Website Rebuild series:

  • Part 1: What Your Website Actually Needs (You are here)
  • Part 2: AI Package Selection
  • Part 3: The New Web Economics [Coming Jan 31]
  • Part 4: Iterative Development [Coming Feb 15]
  • Part 5: SEO Fundamentals [Coming Feb 28]
  • Part 6: Performance Optimization [Coming Mar 15]

Read the series overview: Rebuilding Envigna.com in Two Days