title: BuildProgram --- module: lektor.build_programs --- summary: The class for build programs. --- type: class --- body: A build program is responsible for converting a [Source Object :ref](../../db/obj/) into final build artifacts. Typically such a build program implements two methods: [produce_artifacts :ref](produce-artifacts/) and [build_artifact :ref](build-artifact/). The former should invoke [declare_artifact :ref](declare-artifact/) for each artifact that should be created from the source. The builder will then invoke [build_artifact :ref](build-artifact/) for each of these declared artifacts if the builder determines that the artifact needs to be built. For an example refer to the [add_build_program :ref](../../environment/add-build-program/) documentation.