I think they are pretty straightforward if you come up with a good naming scheme to remember them by:
:root {
/* The "Magic Colours" Palette */
--status-standby: #DECAFE;
--status-active: #C0FFEE;
--status-ok: #BADA55;
--status-warning: #FEEB1E;
--status-error: #B00B00;
--status-shutdown: #DEFEA7;
--icon-home: #AB0DE5;
--icon-help: #A55157;
--icon-audit: #A55E55;
--icon-remove: #DEFEC8;
--ui-placeholder: #FACADE;
}
See what I mean? 
The forum is super handy but knowledge is dispersed. I wonder if perhaps IA could/should host a community wiki where best practices and such from community experts and IA team could be combined, consolidated and refined/expounded upon over time in a way that the forum doesn't generally accommodate.
I often come across some older IA articles like this one (https://support.inductiveautomation.com/hc/en-us/articles/13578100743053-Cloning-a-VM) that are useful but outdated and somewhat wrong/misleading for the current version of Ignition. In wiki form something like that could be corrected/updated by the community.
Has that idea been discussed much before?
I think it would be helpful if the Manual would also point some of these best practices out. There are lots of things it tells you CAN do, but it doesn't say in which cases you definitely SHOULDN'T do it.
tag()
binding UDT vs path to UDT
etc..
I think you’ll be surprised at how much of an improvement you see.
There are other things that can cause really bad performance issues. Here’s some things you should check out.
Some of the Ignition drivers allow you to drag/drop tags into the tag DB (which is awesome). Some people will drag/drop all the tags into the tag db which is a terrible idea because all of the tags will be subscribed and it will greatly impact performance. You can see how many tags are on the system from the status page in 8.1.x and below. In 8.3 you can see the tags per provider in “Services/Tags”. I had a customer once sub 600k+ tags on a system that really only needed about 10-15k. It ran terribly. It can be a real adventure figuring out what tags you can get rid of.
You should probably check out the diagnostics pages in the gateway webpage. Look for scripting threads with long run times. Sometimes people who are new to Ignition will use sleep timers in the shared thread or do really beefy scripts in bad places. Also check memory and CPU usage. The diagnostics tools on the gateway page are really powerful. They should help you identify sources for slowdown.
Thanks, I am sure we have all of the above. For the tags we did do a halfway decent job of UDTs so editing those will remove lots of tags at once.
Yes, this was programming by newbies 6 years ago. The integrator had no idea what they were doing, they had never used Perspective before, and neither had we.
The scripts were not written by me, and I don’t know how to script.
yeah, I’m going to be busy for a while, but such is life….
Ahh, I remember those days. I remember my first very small Perspective project. It was not good! it was also done in 8.0.5, so Perspective itself was severely under cooked…
We all start somewhere. I learned Perspective when a customer asked me to bid a project with it. I hadn’t been paying attention to things coming down the pike but I figured “It’s Ignition, how hard can it be”.
So we bid the job and got it. Then we learned that Perspective was a new thing that was in beta at the time and it was totally different than Vision. Imagine my surprise. The app was simple so it worked out. Basically labels on a page to show live values.
It’s way more powerful now than it was then. Also a lot more documented.
The fact that you’re going onto the forums and looking for a solution to your challenges makes me think you’ll be fine. It’s really rare for me to encounter a problem in Ignition that I can’t find a solution to on this forum and the search is fantastic.