Your first real task
Take the hello task from the Quickstart. Change its code, send it input, read the result, and see an unchanged deploy reused.
1 · Edit run()
Open tasks/hello/index.ts. run(payload, ctx) gets the JSON you pass with --payload. Whatever it returns is the result.
export async function run(payload: { name?: string }, _ctx: unknown) {
const name = payload.name ?? "world";
console.log(`Hello, ${name}`);
return { success: true, greeting: `Hello, ${name}` };
}2 · Deploy the change
New code means a new build, so reused is false.
$ ignitify task:deploy hello⠹ Building image 019fdebc-2a40-7e11-95d3-1c4b7f08a6e5 · 9s (Ctrl+C stops waiting, not the build)✓ Image built · 16s✓ Deployment CreatedKey Value------------- -----------------------------------------------------------------------deployment_id 019fdebc-2a40-7e11-95d3-1c4b7f08a6e5resource_id dep_Wc5LpR8kYt3Nstatus READYreused falsetask_id 019fdebb-171e-7198-a812-a755d67e0aa2tenant_id 019f2b10-3c55-7a01-b2e4-9d0c61f7a8b3content_hash sha256:ba793a91f402ef04c373a0c05a03da343e5de27370f745b56b3e5f571094957aSystem Resources: • Image: built and stored by the platform; there is nothing for you to download.Monthly egress: 0 B of 100.0 GB used (0%), 100.0 GB leftMonthly compute: 42 s used, no monthly limitResets 2026-11-01T00:00:00.000Z · details: ignitify usageCommand template for next step: Next Step: ignitify task:run <task_id>Full command: ignitify task:run hello
3 · Run it with a payload
The payload is JSON. It applies to this run only; task.yaml is never changed.
$ ignitify task:run hello --payload '{"name":"Ada"}' --waitMonthly egress: 0 B of 100.0 GB used (0%), 100.0 GB leftMonthly compute: 42 s used, no monthly limitResets 2026-11-01T00:00:00.000Z · details: ignitify usage⠹ Run 019fdebc-5e13-7b02-9c2d-7f1a6b3e8c22 RUNNING · 2s (Ctrl+C stops waiting, not the run)✓ Run COMPLETED · 3sRun Detailsid 019fdebc-5e13-7b02-9c2d-7f1a6b3e8c22resource_id run_Qm7TnX4vC9bDdeployment_id 019fdebc-2a40-7e11-95d3-1c4b7f08a6e5tenant_id 019f2b10-3c55-7a01-b2e4-9d0c61f7a8b3status COMPLETEDtask_name hellopreset std.microtimeout_sec 120boot_fingerprint 3f9c1a2bstarted_at 2026-10-14T09:20:41.207Zattempt_count 1failure_attempt_count 0updated_at 2026-10-14T09:20:43.511Zcreated_at 2026-10-14T09:20:40.093ZResult: { "success": true, "greeting": "Hello, Ada" }
4 · Read the logs
Logs hold what the task printed. The result holds what it returned.
$ ignitify run:logs run_Qm7TnX4vC9bD[task] INFO: Task hello initialised[task] INFO: Hello, Ada
5 · Deploy again, unchanged
The same code gives the same deployment. Nothing is built, and the line says so.
$ ignitify task:deploy hello✓ Image already built — reused · 1s✓ Deployment CreatedKey Value------------- -----------------------------------------------------------------------deployment_id 019fdebc-2a40-7e11-95d3-1c4b7f08a6e5resource_id dep_Wc5LpR8kYt3Nstatus READYreused truetask_id 019fdebb-171e-7198-a812-a755d67e0aa2tenant_id 019f2b10-3c55-7a01-b2e4-9d0c61f7a8b3content_hash sha256:ba793a91f402ef04c373a0c05a03da343e5de27370f745b56b3e5f571094957aSystem Resources: • Image: built and stored by the platform; there is nothing for you to download.Monthly egress: 0 B of 100.0 GB used (0%), 100.0 GB leftMonthly compute: 42 s used, no monthly limitResets 2026-11-01T00:00:00.000Z · details: ignitify usageCommand template for next step: Next Step: ignitify task:run <task_id>Full command: ignitify task:run hello
Size limits
A payload is at most 10 KiB and a result at most 10 KiB. For more data, write it to your own store from inside the task and return a link. See Presets and limits.