# Confused about which features are Octane only

**URL:** <https://discuss.emberjs.com/t/confused-about-which-features-are-octane-only/17249>\
**Category:** Questions\
**Created:** [November 24, 2019, 8:28pm UTC](https://discuss.emberjs.com/t/confused-about-which-features-are-octane-only/17249 "2019-11-24T20:28:05Z")\
**Posts on this page:** 11\
**Page:** 1

<div class="post-metadata">

**Author:** ![bmurphy](https://sea1.discourse-cdn.com/flex019/user_avatar/discuss.emberjs.com/bmurphy/32/16807_2.png) [@bmurphy](https://discuss.emberjs.com/u/bmurphy)\
**Post date:** [November 24, 2019, 8:28pm UTC](https://discuss.emberjs.com/t/confused-about-which-features-are-octane-only/17249/1 "2019-11-24T20:28:05Z")

</div>

Hello all,

I’m starting a fresh project (Ember 3.14.1) and I’ve enabled some optional features but I’ve decided to forgo enabling Octane for now. My question is what features are Octane only at this point? My confusion lies with blogs that say things like “Octane preview: Angle Bracket Components” or “tracked properties” etc. I’m using some of those features right now in my new project without having enabled Octane. Is there a way for me to determine what’s actually “siloed” in Octane so I know which features to use?

Appreciate it!

---

<div class="post-metadata">

**Author:** ![NullVoxPopuli](https://sea1.discourse-cdn.com/flex019/user_avatar/discuss.emberjs.com/nullvoxpopuli/32/18691_2.png) [@NullVoxPopuli](https://discuss.emberjs.com/u/NullVoxPopuli)\
**Post date:** [November 25, 2019, 1:07am UTC](https://discuss.emberjs.com/t/confused-about-which-features-are-octane-only/17249/2 "2019-11-25T01:07:17Z")

</div>

You could optionally start using octane since 3.13. octane is feature complete, and you can use it in its entirety 👍

---

<div class="post-metadata">

**Author:** ![ef4](https://sea1.discourse-cdn.com/flex019/user_avatar/discuss.emberjs.com/ef4/32/13470_2.png) [@ef4](https://discuss.emberjs.com/u/ef4)\
**Post date:** [November 25, 2019, 1:54am UTC](https://discuss.emberjs.com/t/confused-about-which-features-are-octane-only/17249/3 "2019-11-25T01:54:51Z")

</div>

Since Octane is the first time we’ve done an “edition”, it can be a little confusing.

There are no features that are “octane-only”. All the features in Octane work in at least one stable Ember release, and many of them have been stable for a many releases. They’re safe to use in any app.

Editions are trying to help us balance two needs:

- it’s better to improve software in small incremental steps, rather than giant releases
- but it’s easier to learn new things once all the new pieces are ready, rather than learning only some of the pieces and dealing with a half-new way of thinking.

People who _want_ to pick up any new feature in isolation are encouraged to do so. While people who don’t want to be distracted by new things can wait until an “edition” is announced saying that a new _coherent_ set of features is ready for broad adoption.

“Turning on octane” doesn’t actually enable any features. It does things like change the default blueprints so that when you generate a new component, etc, it will be formatted in the new octane way.

So the difference between “pre-octane” and “octane” is not really about what things work. It’s about what things a person needs to learn to use Ember. So the choice of when to start using the octane features is mostly about when your team is ready to spend some time learning.

---

<div class="post-metadata">

**Author:** ![sukima](https://sea1.discourse-cdn.com/flex019/user_avatar/discuss.emberjs.com/sukima/32/5773_2.png) [@sukima](https://discuss.emberjs.com/u/sukima)\
**Post date:** [November 25, 2019, 2:22am UTC](https://discuss.emberjs.com/t/confused-about-which-features-are-octane-only/17249/4 "2019-11-25T02:22:33Z")

</div>

Thank you. I honestly didn’t know that. I’ve been “waiting” but now I learn If my version is high enough I can use octane-ish features without feature flags?! Yes!.

---

<div class="post-metadata">

**Author:** ![bmurphy](https://sea1.discourse-cdn.com/flex019/user_avatar/discuss.emberjs.com/bmurphy/32/16807_2.png) [@bmurphy](https://discuss.emberjs.com/u/bmurphy)\
**Post date:** [November 25, 2019, 2:43am UTC](https://discuss.emberjs.com/t/confused-about-which-features-are-octane-only/17249/5 "2019-11-25T02:43:53Z")

</div>

Thanks for explaining that to me. I think I understand it more now. If I understand correctly there’s just certain coding idioms and syntax only usable if your app is built using the Octane preview. I.e. `@tracked` properties decorator being one VS I can build my components right now using native Javascript class syntax? Am I thinking of it in a more correct sense?

Thanks again 🙂

---

<div class="post-metadata">

**Author:** ![larryh](https://sea1.discourse-cdn.com/flex019/user_avatar/discuss.emberjs.com/larryh/32/16498_2.png) [@larryh](https://discuss.emberjs.com/u/larryh)\
**Post date:** [November 25, 2019, 2:24pm UTC](https://discuss.emberjs.com/t/confused-about-which-features-are-octane-only/17249/6 "2019-11-25T14:24:12Z")

</div>

> [@ef4](#):
>
> It does things like change the default blueprints so that when you generate a new component, etc, it will be formatted in the new octane way.

Does this include the directory structure? Is that going to change in Octane? If so, will there be a codemod for that? (Not sure if something that complex could be done, but figure it doesn’t hurt to ask.)

---

<div class="post-metadata">

**Author:** ![ef4](https://sea1.discourse-cdn.com/flex019/user_avatar/discuss.emberjs.com/ef4/32/13470_2.png) [@ef4](https://discuss.emberjs.com/u/ef4)\
**Post date:** [November 25, 2019, 2:42pm UTC](https://discuss.emberjs.com/t/confused-about-which-features-are-octane-only/17249/7 "2019-11-25T14:42:34Z")

</div>

Yes, octane includes [Component Template Co-location](https://github.com/emberjs/rfcs/blob/master/text/0481-component-templates-co-location.md). And yes, there’s [a codemod](https://github.com/ember-codemods/ember-component-template-colocation-migrator).

It’s not a _huge_ difference to the directory structure, but it’s by far the most requested one. Example:

Old way:

```auto
app
├── components
│ ├── just-class.js
│ ├── my-widget.js
│ ├── nested
│ │ └── another-widget.js
│ └── ...
├── templates
│ ├── components
│ │ ├── just-template.hbs
│ │ ├── my-widget.hbs
│ │ ├── nested
│ │ │ └── another-widget.hbs
│ │ └── ...
└── ...

```

New way:

```auto
app
├── components
│ ├── just-class.js
│ ├── just-template.hbs
│ ├── my-widget.hbs
│ ├── my-widget.js
│ ├── nested
│ │ ├── another-widget.hbs
│ │ └── another-widget.js
│ └── ...
└── ...

```

Things other than components (services, routes, route templates) remain the same in Octane.

---

<div class="post-metadata">

**Author:** ![NullVoxPopuli](https://sea1.discourse-cdn.com/flex019/user_avatar/discuss.emberjs.com/nullvoxpopuli/32/18691_2.png) [@NullVoxPopuli](https://discuss.emberjs.com/u/NullVoxPopuli)\
**Post date:** [November 25, 2019, 11:40pm UTC](https://discuss.emberjs.com/t/confused-about-which-features-are-octane-only/17249/8 "2019-11-25T23:40:32Z")

</div>

My favorite is the componentStructure: nested, because then you can do:

app/components/foo/{index.js,index.hbs,-page.js,etc}

---

<div class="post-metadata">

**Author:** ![larryh](https://sea1.discourse-cdn.com/flex019/user_avatar/discuss.emberjs.com/larryh/32/16498_2.png) [@larryh](https://discuss.emberjs.com/u/larryh)\
**Post date:** [November 26, 2019, 2:21pm UTC](https://discuss.emberjs.com/t/confused-about-which-features-are-octane-only/17249/9 "2019-11-26T14:21:54Z")

</div>

Great news! Thanks for the instructive feedback.

---

<div class="post-metadata">

**Author:** ![sukima](https://sea1.discourse-cdn.com/flex019/user_avatar/discuss.emberjs.com/sukima/32/5773_2.png) [@sukima](https://discuss.emberjs.com/u/sukima)\
**Post date:** [December 11, 2019, 12:46am UTC](https://discuss.emberjs.com/t/confused-about-which-features-are-octane-only/17249/10 "2019-12-11T00:46:56Z")

</div>

Isn’t this already available with pods?

---

<div class="post-metadata">

**Author:** ![FabHof](https://sea1.discourse-cdn.com/flex019/user_avatar/discuss.emberjs.com/fabhof/32/16834_2.png) [@FabHof](https://discuss.emberjs.com/u/FabHof)\
**Post date:** [December 11, 2019, 10:19am UTC](https://discuss.emberjs.com/t/confused-about-which-features-are-octane-only/17249/11 "2019-12-11T10:19:42Z")

</div>

Pods is a little bit different - there is a folder for each component containing a template.hbs and a component.js file. Pods can get a little bit confusing if you have 10 template.hbs files open 😉.
