# Ignition Best Practices

**URL:** <https://forum.inductiveautomation.com/t/ignition-best-practices/53078>\
**Category:** Ignition\
**Created:** [November 15, 2021, 3:08pm UTC](https://forum.inductiveautomation.com/t/ignition-best-practices/53078 "2021-11-15T15:08:38Z")\
**Posts on this page:** 1\
**Showing post:** 2

<div class="post-metadata">

**Author:** ![paul-griffith](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/paul-griffith/32/37249_2.png) [@paul-griffith](https://forum.inductiveautomation.com/u/paul-griffith)\
**Post date:** [November 15, 2021, 4:20pm UTC](https://forum.inductiveautomation.com/t/ignition-best-practices/53078/2 "2021-11-15T16:20:02Z")

</div>

This is an interesting question, because it's true that most of IU is geared toward beginner level/just getting started content, and we don't really have much that targets the intermediate-to-advanced skill level.

I'll start with some general wisdom:

1. If you don't have to script it, don't.
2. If you _do_ have to script it, prefer to write it in a project script rather than a 'magic pushbutton'.
3. [Don't repeat yourself](https://en.wikipedia.org/wiki/Don%27t_repeat_yourself), but also **w** rite **e** verything **t** wice, because bad abstractions can hurt more, and chances are pretty good [you aren't gonna need it](https://en.wikipedia.org/wiki/You_aren%27t_gonna_need_it)
4. In general, lean on the tools that are available to you, and practice saying 'no' to feature requests. Ignition is a flexible enough platform that the answer is often "yes, technically", but maintaining that one-off (that turns out to not be very important after all) is often a huge pile of technical debt that wasn't worth it.

---

_[View the full topic](https://forum.inductiveautomation.com/t/ignition-best-practices/53078)._
