# Plugin design suggestion: full page or modal?

**URL:** <https://meta.discourse.org/t/plugin-design-suggestion-full-page-or-modal/119669>\
**Category:** Development\
**Created:** [06.Июнь.2019 14:28:53 UTC](https://meta.discourse.org/t/plugin-design-suggestion-full-page-or-modal/119669 "2019-06-06T14:28:53Z")\
**Posts on this page:** 1\
**Showing post:** 1

<div class="post-metadata">

**Author:** ![emanuele](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/emanuele/32/142687_2.png) [@emanuele](https://meta.discourse.org/u/emanuele)\
**Post date:** [06.Июнь.2019 14:28:53 UTC](https://meta.discourse.org/t/plugin-design-suggestion-full-page-or-modal/119669/1 "2019-06-06T14:28:53Z")

</div>

Hi everyone 🙂

I am writing a plugin for [Keybase Proofs](https://meta.discourse.org/t/discourse-keybase-proof/115239/9), and since it is my first attempt at writing a Discourse plugin, I am still trying to figure out the best way to integrate it with the product 🙂

The plugin itself needs just a couple UI components, and one of them is still a bit tricky for me to implement: the page that shows the association between the Discourse user and the Keybase user (see the screenshot [here](https://keybase.io/docs/proof_integration_guide#2-2-proof-creation)).

The easiest way for me to implement it is a full page, for example served at `/keybase-proofs/new-proof`, but it seems like it is discouraged to have a plugin define their own full pages (@eviltrout I _think_ I remember you writing about this somewhere, perhaps you can give me some hints?).

So what I am trying to do instead is having a modal dialog appear when the url to create the association is hit. So ideally I’d like to show the Discourse homepage with a modal on top, using an outlet. Would this be a better design? If so: how do I make the modal appear only when a specific url is hit, _with the homepage in the background_? The only way I see to make this happen is to use query parameters:

```plaintext
https://${MY_DISCOURSE_SITE}/?new_keybase_proof=true&kb_username=...

```

Here, I would use `new_keybase_proof=true` to decide if I need to show the modal or not.

UPDATE: Perhaps I should do something like what happens for `/login`? That is, do a redirect to the homepage in the route `beforeModel()` method and then call the method that shows the modal?

---

_[View the full topic](https://meta.discourse.org/t/plugin-design-suggestion-full-page-or-modal/119669)._
