# Extend Existing Controller?

**URL:** https://meta.discourse.org/t/extend-existing-controller/266411
**Category:** Development
**Created:** [May 28, 2023, 1:59am UTC](https://meta.discourse.org/t/extend-existing-controller/266411 "2023-05-28T01:59:19Z")
**Posts on this page:** 1
**Showing post:** 10

<div class="post-metadata">

### Author: ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)
#### Post date: [May 28, 2023, 10:47am UTC](https://meta.discourse.org/t/extend-existing-controller/266411/10 "2023-05-28T10:47:16Z")

</div>

If you do need to add features, you want to create a plugin or theme component, not fork discourse.

> [@petermarkley](#):
>
> Signup UX

You can do that in a theme component, so you don’t need a plugin for that, but if you are making a plugin, you can include the front end changes in the plugin too. [Developing Discourse Plugins - Part 1 - Create a basic plugin](https://meta.discourse.org/t/developing-discourse-plugins-part-1-create-a-basic-plugin/30515). Looking for plugins that add similar functionality is also a good way to go. There is a Discourse repo called all-the-plugins that you can use to be able to search for examples.

> [@petermarkley](#):
>
> Field privacy settings

Having public vs private versions of those fields as suggested seems like a good solution, but you can also add user fields in a plugin and control how and whether those fields are added to the serializer to display them.

> [@petermarkley](#):
>
> Fancy styling

This is what theme components do. [Theme Developer Quick Reference Guide](https://meta.discourse.org/t/theme-developer-quick-reference-guide/110448) could be a start.

---

_[View the full topic](https://meta.discourse.org/t/extend-existing-controller/266411)._
