This is a brief statement about why FxCanvas exists. It should be read as a manifesto or a promise, not as a strict roadmap or a legal document.
FxCanvas is a tool for the dynamic generation of server-side images, currently delivered as a cloud service. Its purpose is to generate synthetic images outside the client. There is no need to pivot with every wave of technological change. If a different tool is needed, it shall be created separately from FxCanvas. Honoring this directive is a form of respect for everyone who uses FxCanvas.
Dependencies are kept minimal so that users are not exposed to them, even transitively, whether public or private. Engineering decisions prioritize performance, cost, and useful features. Trends that degrade software are avoided. Technologies that help users are adopted, regardless of fashion.
FxCanvas should serve as many users as possible within technical limits and provider restrictions, while continuing to work to reduce both. Users should not be arbitrarily excluded for reasons of symbolic politics. Compliance with applicable law and constraints imposed by third-party providers may, however, force such exclusions. With regard to privacy, systems should be designed for least access and minimal retention.
By design, FxCanvas functions like an interpreter for a bespoke bytecode language. Inevitably, as with any system of similar nature, and if the project succeeds, it will need to grow a more capable runtime, including computation and introspection needed for rendering. Later versions may look nothing like the earliest ones, and that is good, and expected. This evolution does not change the prime directive. FxCanvas takes on the responsibility to maintain backwards compatibility within reason, and to help users migrate forward beyond what is considered standard practice in the software industry.
FxCanvas succeeds only if its users succeed. The project exists to give more than it takes.