
The licensing model is the single biggest thing. Unlimited tags, unlimited clients, unlimited connections for one price means I never had to design around a tag count or worry that adding a sensor would cost more. Coming from a student budget that mattered, but it also means the architecture decisions I made were driven by what the process needed rather than what the license allowed.
Perspective being genuinely web-based is the other standout. No client installs, no per-seat licensing, and the same project renders on a laptop and a phone without me building it twice.
The Modbus TCP driver being native meant I had an ESP32 talking to a real SCADA platform in an afternoon. Database integration is built into the platform rather than bolted on, so when I built an ISA-18.2 alarm journal on PostgreSQL, I could bind custom components directly to SQL queries and build exactly the analytics dashboard I wanted instead of accepting stock components.
Inductive University deserves a mention too. Over 600 free videos with a real credential at the end is a genuinely serious training resource, and it's free to anyone with an account. Review collected by and hosted on G2.com.
The failure modes that cost me the most time were the silent ones. A tag carrying a scaled decimal value set to Integer instead of Float truncates without any warning or error, so 0.3 just becomes 0 and everything downstream looks fine until you notice the numbers are wrong. Same category of problem with bidirectional writes: the tag being writable isn't enough, the binding needs Bidirectional explicitly ticked in the Options row, and if you miss it the write just doesn't happen with nothing to indicate why.
Named Queries have a similar sharp edge. A trailing semicolon breaks them because Ignition appends its own LIMIT clause, and the resulting error doesn't point anywhere near the actual cause. Scalar queries also return under the key "result" rather than the alias you named in the SQL, which isn't obvious.
Debugging bindings is harder than it should be. There's no straightforward way to see every binding across a view at once, so a stray binding silently overwriting a property is painful to track down. Review collected by and hosted on G2.com.


