Architecture
MVC is a software design pattern that separates an application into three interconnected components: the Model (data and business logic), the View (user interface presentation), and the Controller (input handling and coordination between Model and View).
By separating concerns into three distinct layers, MVC makes codebases easier to maintain and test — a change to the visual design (View) does not require touching the data logic (Model), and business rules can be unit-tested independently of the UI. The Model manages data, validation, and database interactions; the Controller receives user input (HTTP requests in web apps), invokes the appropriate Model operations, and selects which View to render; the View formats data from the Model into HTML, JSON, or another presentation format. MVC is the foundational pattern for web frameworks including Ruby on Rails, Django, Laravel, ASP.NET Core MVC, and Spring MVC, all of which enforce this separation through directory conventions and framework scaffolding. Variants like MVVM (Model-View-ViewModel) are common in frontend frameworks like Angular and Vue, adapting the pattern for reactive UI binding.
Example
In a Ruby on Rails e-commerce app, the Product model validates price fields and queries the database, the Products controller handles GET/POST requests, and the product show.html.erb view renders the product page sent to the browser.
Related terms
Backend
Backend refers to the server-side layer of an application that handles business logic, data processing, authentication, and communication with databases and third-party services — invisible to the end user but powering everything they experience.
ORM (Object-Relational Mapping)
An ORM is a programming library that automatically translates between the object-oriented data models used in application code and the relational tables and SQL queries used in a database, eliminating most manual SQL writing.
Full-Stack Development
Full-stack development refers to the practice of building both the frontend (client-side) and backend (server-side) components of a web application, giving a developer end-to-end ownership of the entire technology stack.
Frontend
Frontend refers to the client-side layer of a web or mobile application — everything the user sees and interacts with directly, including layout, visual design, navigation, and interactive behaviour rendered in the browser or on the device.
Ready to grow your business?
Tell us what you're building. We'll reply within one business day with a clear next step.