# how to create an extension

**URL:** <https://discuss.dev.twitch.com/t/how-to-create-an-extension/59537>\
**Category:** Extensions\
**Created:** [July 1, 2024, 8:46am UTC](https://discuss.dev.twitch.com/t/how-to-create-an-extension/59537 "2024-07-01T08:46:14Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![tonokiro](https://avatars.discourse-cdn.com/v4/letter/t/58f4c7/32.png) [@tonokiro](https://discuss.dev.twitch.com/u/tonokiro)\
**Post date:** [July 1, 2024, 8:46am UTC](https://discuss.dev.twitch.com/t/how-to-create-an-extension/59537/1 "2024-07-01T08:46:14Z")

</div>

Hello, I know practically nothing about creating an extension and that’s why I want to ask you how to create an extension. what is necessary to function what is necessary to do.

---

<div class="post-metadata">

**Author:** ![BarryCarlyon](https://d3ovvz0v2ajtpu.cloudfront.net/user_avatar/discuss.dev.twitch.com/barrycarlyon/32/253_2.png) [@BarryCarlyon](https://discuss.dev.twitch.com/u/BarryCarlyon)\
**Post date:** [July 1, 2024, 8:50am UTC](https://discuss.dev.twitch.com/t/how-to-create-an-extension/59537/2 "2024-07-01T08:50:07Z")

</div>

Extensions are just websites.

So if you have prior knowledge of building websites you have a starting point.

Extensions can just about do whatever a website can do.  
The Extension frontend is static HTML, JS, CSS. (see also the documentation about what can/can’t be included - [Extensions | Twitch Developers](https://dev.twitch.tv/docs/extensions/#restrictions-on-content))  
The Frontend is served from a “dumb”/static content CDN with nginx  
The frontend must incliude the Twitch JS helper  
Your JS must invoke the onAuthorized callback  
Your extension in localtest, just means not on the TwitchCDN.  
In hosted test and above your extension is in a sub folder on the extensions subdomain

If you align your dev environment to match then you have a good starting point.

The backend, if your extension needs one, can be in whatever language you want it just needs to operate over SSL.

See also the technical guide: [Required Technical Background | Twitch Developers](https://dev.twitch.tv/docs/extensions/required-technical-background/)
