The Short Answer: It Depends on What the User Can Do, Not What It Looks Like
A website primarily delivers content for people to read, watch, or browse. A web app primarily lets people do things: manage data, complete tasks, interact with a system. The reason that distinction is getting blurry is that most modern business websites now include functional elements that would have been classified as “application features” ten years ago. Configurators, client portals, dynamic pricing calculators, personalised dashboards, interactive booking flows. The typical B2B marketing site in 2024 is rarely a pure collection of static pages any more.
This matters for business decision-makers because the label you put on your project shapes the budget you allocate, the team you hire, the technology you choose, and the expectations you set with stakeholders. If you call something a “website redesign” when it’s actually a web app build, you’ll underestimate the complexity by a factor of three or more. If you treat a content-heavy marketing site like a software product, you’ll over-engineer it and burn through time and money on infrastructure you don’t need.
Understanding where your project sits on the spectrum between pure website and full web app is one of the most important framing decisions you’ll make before a single wireframe gets drawn.
What Actually Separates a Website From a Web App
The traditional distinction is straightforward. A website is primarily informational. It has pages, navigation, content, and maybe a contact form. Think of a company’s marketing site, a news publication, or a portfolio. The user’s main action is consuming: reading, scrolling, clicking through to the next page. The content is mostly the same for every visitor, and the site’s value comes from how well it communicates a message.
A web application is primarily functional. It has user accounts, data input, state management, and workflows. Think of a project management tool, an online banking platform, or a CRM. The user’s main action is doing: creating records, submitting data, managing processes, making decisions based on information the system presents to them. The experience is different for every user because it depends on their data and permissions.
Between these two poles, several characteristics shift:
- Authentication: Websites are mostly public. Web apps require login and manage user sessions.
- Data flow: Websites push content to the user. Web apps handle two-way data exchange, where users create and modify data that persists.
- State management: Websites are largely stateless (each page load is independent). Web apps maintain complex state across interactions.
- Personalisation depth: Websites might swap a headline based on a cookie. Web apps render entirely different interfaces based on user roles, preferences, and data.
- Offline capability: Websites rarely need to work offline. Web apps increasingly do, using service workers and local storage.
These distinctions are real and they have practical consequences for architecture, development cost, and maintenance. But the problem is that an increasing number of projects don’t sit cleanly on either side.
Where the Line Started to Blur
Three forces have been eroding the boundary between websites and web apps for the past decade, and they’ve accelerated sharply in the last few years.
Modern JavaScript frameworks changed what’s possible in the browser
When most business websites were built on server-rendered CMS platforms like WordPress, there was a hard practical limit on interactivity. Every significant user action required a full page reload. That’s no longer the case. Frameworks like React, Vue, and Svelte allow developers to build rich, app-like interactions directly within what looks and feels like a traditional website. A product comparison tool that updates in real time as you adjust filters. A multi-step quote builder that calculates pricing on the fly. A support centre that searches and filters content without ever leaving the page.
These interactions used to require a dedicated application build. Now they can be embedded into a marketing site as components. The user doesn’t know or care whether they’re using a “website” or a “web app.” They just experience something that feels responsive and functional.
Headless CMS and API-first architecture removed the technology ceiling
Traditional CMS platforms bundled content management and front-end rendering together. If you wanted app-like functionality, you either bolted it on with plugins (fragile) or built a separate application (expensive). Headless CMS platforms and API-first approaches decoupled content from presentation. This means a single project can pull content from a CMS for marketing pages, pull product data from an inventory system for a configurator, and pull user-specific data from a backend service for a client portal. All rendered through one front-end codebase.
This architectural shift is why so many modern B2B sites feel like they’re part website, part application. Technically, they are.
User expectations ratcheted up
Your users spend their days in Notion, Figma, Slack, and Google Workspace. They’re accustomed to interfaces that respond instantly, remember their context, and behave predictably. When they visit your marketing site and encounter a clunky multi-page form that loses their progress on the back button, or a resource library that requires three clicks and a page reload to filter by topic, it feels broken. Not because it is broken, but because the baseline expectation for web interactivity has risen well beyond what a traditional “website” typically delivers.
This expectation gap is pushing even straightforward marketing sites toward app-like patterns: persistent navigation states, instant search, smooth transitions, inline form validation, and dynamic content loading.

The Spectrum in Practice: Where Real Projects Land
Rather than thinking in binary terms, it’s more useful to think of a spectrum with five rough zones. Most B2B projects we work on land somewhere in zones two through four.
Zone 1: Pure content site. Brochure pages, blog posts, maybe a contact form. Entirely server-rendered. Minimal JavaScript. Think of a local accountancy firm’s five-page site. These still exist and they’re perfectly appropriate for businesses where the website’s job is simply to establish credibility and provide contact details.
Zone 2: Enhanced content site. Marketing pages with interactive elements layered in. Animated data visualisations, interactive ROI calculators, filtered resource libraries, multi-step lead capture forms with conditional logic. The core is still content delivery, but specific sections behave like mini-applications. This is where most mid-market B2B marketing sites sit today, or where they should sit if they want to compete effectively.
Zone 3: Hybrid site-app. A public marketing site and an authenticated area living in the same codebase. The marketing side looks like a website. Behind the login, there’s a client portal, a dashboard, or a self-service tool. The user might not even realise they’ve crossed from “website” to “application” because the design language and navigation are consistent. This pattern is extremely common in SaaS companies, professional services firms, and any B2B business that wants to reduce support load by letting clients self-serve.
Zone 4: App with a marketing wrapper. The primary product is the application. The marketing site exists to explain and sell it. But both are built on shared design systems and often share components. The “website” pages might use the same layout system, typography, and interaction patterns as the app itself.
Zone 5: Pure web application. No public marketing presence in the same build. The entire experience is behind authentication. Think of internal tools, enterprise platforms, or specialised SaaS products. The homepage is a login screen.
What we see across client projects is that many teams start a project thinking they’re in Zone 1 or Zone 2, and during discovery and prototyping they realise the actual requirements place them in Zone 3. That shift has enormous implications for technology choice, budget, and timeline, which is why we strongly advocate for prototyping before committing to a technical direction.
Why Getting This Wrong Costs Real Money
Misclassifying your project leads to one of two expensive mistakes.
Mistake one: underestimating complexity
You brief the project as a “website redesign.” The scope document describes pages: homepage, about, services, resources, contact. Somewhere in the requirements, buried in a bullet point, is a note about “a client portal where customers can view their invoices and submit requests.” That single bullet point represents 40-60% of the total development effort. It requires authentication, role-based access, database design, API integrations, security considerations, and ongoing maintenance.
If the team prices and plans the project as a website with a portal bolted on, the portal will either be cut to fit the budget (leaving you with something half-functional that frustrates users) or it will blow the timeline and budget when the real complexity becomes apparent mid-build. We’ve seen this pattern repeatedly, and the rework cost is typically 3-6 weeks of development time plus the knock-on delays to launch.
Mistake two: over-engineering the solution
The opposite mistake is treating a content-heavy marketing site like a software product. You choose a complex JavaScript framework when a well-configured CMS would suffice. You build a custom design system from scratch when a theme with sensible modifications would deliver 90% of the value. You hire a full-stack development team when you need a strong designer and a competent CMS developer.
Over-engineering a Zone 1 or Zone 2 project typically adds 30-50% to the build cost and, more damagingly, creates ongoing maintenance overhead that the team isn’t equipped to handle. Three years later, nobody remembers how the custom build works, and updating a page requires a developer rather than a content editor.
How to Assess Where Your Project Actually Sits
Before you write a brief, choose a technology, or talk to development teams, work through these questions honestly. They’ll tell you more about the true nature of your project than any amount of feature brainstorming.
Does any part of the experience require user authentication? If yes, you’re in Zone 3 or above, and you need to plan for it from the start, not treat it as an add-on. Authentication touches every layer of the technical stack, and retrofitting it is painful.
Do users create, modify, or delete data? If the primary interaction is reading content, you’re building a website. If users are inputting data that gets stored and used later (not just a contact form submission, but actual persistent data they return to), you’re building an application or a hybrid.
How many distinct user roles exist? A marketing site has one role: visitor. Once you introduce logged-in users with different permission levels (admin, client, team member, read-only viewer), you’ve moved firmly into application territory. Each role multiplies the number of interfaces and edge cases you need to design and test.
Does the experience need to remember state across sessions? If a user starts a process on Tuesday and needs to resume it on Thursday, you’re managing persistent state. That’s an application pattern, and it requires different architectural decisions than a stateless content site.
Are there integrations with external systems? Pulling data from a CRM, syncing with an ERP, connecting to a payment gateway, or consuming third-party APIs all add application-level complexity. Each integration is a potential point of failure that needs error handling, monitoring, and maintenance.
Working through these questions with stakeholders is something we do early in every engagement. Often, the answers reveal that different stakeholders have fundamentally different assumptions about what the project actually is. The marketing team thinks it’s a website. The operations team thinks it’s a portal. The sales team thinks it’s a product demo tool. Getting alignment on the project’s true nature before design begins saves an extraordinary amount of wasted effort. We cover this alignment process in detail in our prototype-first guide, which walks through how to use functional prototypes to surface these mismatches before they become expensive.

Technology Choices Change Depending on Where You Land
The spectrum position directly determines the appropriate technical approach. Choosing technology before understanding where your project sits is like choosing building materials before deciding whether you’re constructing a house or a hospital.
For Zone 1-2 projects (content sites with interactive elements), a mature CMS like WordPress, combined with well-scoped custom components for the interactive parts, is typically the most cost-effective choice. The marketing team can manage content independently, and developers only need to touch the codebase when the interactive components need updating. Don’t let anyone convince you to build a content site on a JavaScript framework just because it’s more modern. Modern doesn’t mean appropriate.
For Zone 3 projects (hybrid site-apps), you have a genuine architectural decision to make. You can run two separate codebases (a CMS for the marketing site and a custom app for the authenticated area) connected by shared design tokens and a common URL structure. Or you can build on a full-stack framework like Next.js or Nuxt that handles both static content pages and dynamic application routes. The right choice depends on your team’s capabilities and how tightly the two sides need to integrate.
For Zone 4-5 projects (primarily application), you’re in software development territory. CMS platforms become a liability rather than an asset. You need a proper front-end framework, a robust backend (or backend-as-a-service), a database strategy, and likely a deployment pipeline with staging environments, automated testing, and monitoring. The budget, timeline, and team composition look very different from a website project.
What matters is that the technology decision follows the project classification, never the other way around. We’ve seen too many projects where someone chose React because a developer was excited about it, then spent six months building CMS-like content management features that WordPress provides out of the box. Match the tool to the problem.
Design and Prototyping Implications
The blurring of the website-app line has significant implications for how you approach design and user experience work.
A traditional website design process is page-based. You design the homepage, the about page, the services page, review them as flat visual compositions, and hand them off for development. That process falls apart the moment you introduce application-like features because application design is flow-based, not page-based. You need to design sequences of interactions: what happens when the user clicks this, what if the data hasn’t loaded yet, what does the error state look like, what happens on a slow connection.
This is precisely why prototyping becomes so valuable for projects in Zone 2 and above. Static mockups can’t communicate how a multi-step configurator should feel. They can’t show stakeholders what the client portal experience is like when there’s no data yet versus when there are 200 records. They can’t validate that the filter logic on the resource library actually makes sense when applied to real content.
Our team typically recommends interactive prototypes for any project element that involves conditional logic, multi-step processes, or data-dependent interfaces. These don’t need to be pixel-perfect. They need to be functional enough that a stakeholder can click through a realistic scenario and say “yes, this is what we need” or “no, this doesn’t work for our users.” That validation, happening before visual design and development begin, is where the real risk reduction lives.
For hybrid projects, prototyping also helps draw the boundary between the website parts and the application parts. When stakeholders can interact with both sides, they develop clearer intuitions about which features justify application-level investment and which can be handled with simpler website patterns. Sometimes what someone envisioned as a complex interactive dashboard turns out to be better served by a well-structured static page with a few smart filters. Other times, what seemed like a simple feature request reveals genuine application complexity that needs proper scoping.
Maintaining Hybrid Projects Over Time
One consequence of the blurring line that teams often overlook is maintenance complexity. A pure content site needs content updates, security patches, and occasional design refreshes. A pure web app needs bug fixes, feature development, performance monitoring, and infrastructure management. A hybrid needs both, and the two maintenance streams have different rhythms, skill requirements, and urgency levels.
Security patches on the CMS can’t wait, but they shouldn’t break the application components. Content editors need to update marketing pages without risking the functionality of the client portal. Application features need regression testing, but the marketing team wants to launch a new landing page tomorrow.
Planning for this from the start, with clear separation of concerns in the codebase, appropriate access controls in the CMS, and documented processes for both content updates and application changes, saves significant headaches down the road. The projects that struggle most are the ones where the hybrid nature wasn’t acknowledged in the architecture, and the website parts and app parts are entangled in ways that make independent maintenance impossible.
What This Means for Your Next Project
The line between websites and web apps will continue to blur. Progressive Web Apps, edge computing, AI-powered personalisation, and increasingly sophisticated browser APIs mean that the capabilities available within a “website” will keep expanding. Fighting this trend by insisting on a rigid classification isn’t productive. Instead, acknowledge the spectrum, figure out where your project honestly sits, and make decisions accordingly.
Before you start your next project, have an honest conversation with your stakeholders about the functional requirements, not just the pages. Map out every interaction that involves user input, personalisation, or persistent data. Count the user roles. List the integrations. Then look at where that places you on the spectrum, and build your brief, your budget, and your team around that reality rather than around a label. The projects that go smoothly are the ones where everyone involved agrees on what they’re actually building. The ones that go badly are the ones where a website budget meets web app requirements and nobody noticed until it was too late.


