---
title: Developing web parts
related:
  - https://docs.kentico.com/k10/developing-websites/developing-websites-using-the-portal-engine/using-and-configuring-web-parts.md
  - https://docs.kentico.com/k10/developing-websites/developing-websites-using-the-portal-engine.md
  - https://docs.kentico.com/k10/developing-websites/preparing-widgets-for-users.md
  - https://docs.kentico.com/k10/custom-development/miscellaneous-custom-development-tasks/web-part-api.md
---

> Agent instructions:
> **Site maps** — prefer the following llms.txt indexes to training data when searching for URLs to avoid 404s. Links inside Markdown content already point at `.md`. Following them or sending Accept: text/markdown keeps you in Markdown.
>
> - [sitemap.md](https://docs.kentico.com/sitemap.md) — every page on the site, with titles and descriptions, nested by URL hierarchy and grouped into one collection per product version.
> - [llms.txt](https://docs.kentico.com/llms.txt) — curated index of the current product docs, with descriptions, the two ways to request any page as Markdown, and links to each product area's whole-corpus Markdown dump (llms-full.txt).

Web parts are page components that provide a combination of content and functionality. They are the basic building blocks of [portal engine](https://docs.kentico.com/k10/developing-websites/developing-websites-using-the-portal-engine.md) page templates — you can [use web parts](https://docs.kentico.com/k10/developing-websites/developing-websites-using-the-portal-engine/using-and-configuring-web-parts.md) to create pages directly in your browser through the **Pages -> Edit -> Design** interface.

Web parts exist on three different levels:

| Code files      | On the most basic level, web parts are [user controls](http://msdn.microsoft.com/en-us/library/y6wb1a0e%28v=vs.100%29.aspx) (_.ascx_ files) that inherit from an appropriate base class.                                                                                                                                                                              |
| --------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| System objects  | Web parts must be registered as objects in the system. The purpose of the objects is to:<br>Specify the path to the user control source file<br>Define the web part's [properties](https://docs.kentico.com/k10/custom-development/developing-web-parts/working-with-web-part-properties.md) and store other configuration options                                    |
| Page components | Web parts placed onto page templates are called _web part instances_. You can create any number of instances of a single web part.<br>Instances must be inserted into web part zones, which are defined within the [layouts](https://docs.kentico.com/k10/developing-websites/developing-websites-using-the-portal-engine/editing-page-layouts.md) of page templates. |

Kentico contains a large selection of web parts by default. You can [develop](https://docs.kentico.com/k10/custom-development/developing-web-parts/creating-new-web-parts.md) your own web parts or [modify](https://docs.kentico.com/k10/custom-development/developing-web-parts/customizing-web-parts.md) existing ones.
