A blueprint is a job written down once, with the steps, the tools, the parts and the warnings, so you can run it again next time instead of remembering it. These are real, complete, editable files. Download one, import it, make it yours.
A single plain-text JSON file describing one job on a vehicle. It is not a log of work you did. It is the procedure you follow, which the app then turns into a checklist you tick off.
Each step carries its own description, estimated minutes, tools, parts, warnings, tips and a sub-checklist. You work down the list rather than holding the job in your head.
No tooling required. Open it in Notepad, TextEdit or VS Code, change what you like, save, import. Minutes are minutes, categories are lowercase words, and only the title is mandatory.
The same file imports on iOS and Android. The two apps store blueprints differently internally, so this format sits in the middle and both of them map to and from it.
Imported blueprints always arrive as your own local drafts. They never carry someone else's ratings, download counts or verified status. That information is deliberately not part of the file.
Four steps, and the last one is the important one.
Tap any download link below. It saves as a .trackara-blueprint.json file, on iOS usually into Files, on Android into Downloads. If your browser tries to display it as text instead of saving it, use "Share" or "Save to Files" from the browser menu.
Easiest: tap the downloaded file and choose Trackara. It goes straight into your guide library. If you would rather do it from inside the app, open Settings → Blueprints and choose Import guides. Either way it accepts a single blueprint or a pack containing several, and a plain .json file works too, so a renamed file still imports.
The app reports what it did: how many blueprints came in and whether anything was skipped, such as a step with no title. It never silently drops content, and one bad entry never causes the whole file to fail.
Every template here is written generically on purpose. Torque figures, fluid capacities and part numbers vary by year, engine and trim, so the templates tell you to look yours up rather than handing you a number that might belong to a different car. Once you have looked them up, put them in your copy, and then you only ever do it once.
Nine files, eleven blueprints. All free, all editable, all validated against the format reference below.
The format is designed to be hand-written. Minutes rather than seconds, lowercase words rather than numbered codes, and exactly one required field.
title is required. Everything else has a sensible default. Unknown fields are ignored rather than treated as errors, so a file written for a newer version of the app still imports into an older one, and a field you invent for your own notes will not break anything.
{
"title": "Cold Tire Pressure Check",
"steps": [
{ "title": "Read the recommended pressures off the driver's door jamb sticker" },
{ "title": "Check all four tires cold, before driving anywhere" },
{ "title": "Set each tire to the sticker value, then check the spare" }
]
}
Save that as anything.trackara-blueprint.json and import it. There is no formatVersion in it, which is fine, because absent means version 1. The category defaults to other, the difficulty to intermediate, and the steps get numbered in the order you wrote them.
{
"formatVersion": 1,
"title": "Engine Air Filter Replacement",
"description": "The easiest job on the car. Ten minutes, no tools on most vehicles.",
"category": "maintenance",
"subcategory": "Filters",
"difficulty": "beginner",
"tags": ["beginner-friendly", "10-minute job"],
"language": "en",
"estimatedMinutes": 10,
"estimatedCost": 22.00,
"currency": "USD",
"author": { "name": "Your name", "bio": "", "url": "" },
"vehicleCompatibility": [
{ "make": "Honda", "model": "Civic", "yearStart": 2016, "yearEnd": 2021, "engine": "1.5T", "notes": "" }
],
"requiredTools": ["Screwdriver", "Shop rag"],
"parts": [
{ "name": "Engine air filter element", "kind": "required", "quantity": 1,
"partNumber": null, "estimatedCost": 22.00,
"notes": "Look the number up for your engine and write it in here." },
{ "name": "Shop towels", "kind": "consumable", "quantity": 1 }
],
"steps": [
{
"stepNumber": 1,
"title": "Open the airbox",
"description": "Release the spring clips or undo the screws and lift the lid.",
"estimatedMinutes": 3,
"tools": ["Screwdriver"],
"parts": [],
"warnings": ["Engine off, keys out."],
"tips": ["Cabin air filters are a different job, usually behind the glovebox."],
"checklist": ["Airbox located", "All clips released"],
"imageUrls": [],
"videoUrl": null
}
],
"coverImageUrl": null
}
Wrap them in a blueprints array. Each entry is exactly the same shape as a single blueprint. The Ten-Minute Jobs download above is a working example.
{
"formatVersion": 1,
"blueprints": [
{
"title": "Engine Air Filter Replacement",
"difficulty": "beginner",
"steps": [{ "title": "Open the airbox" }]
},
{
"title": "Wiper Blade Replacement",
"difficulty": "beginner",
"steps": [{ "title": "Confirm the two blade sizes before you buy" }]
},
{
"title": "Under-Hood Fluid Level Check",
"difficulty": "beginner",
"steps": [{ "title": "Park level, engine off and cool" }]
}
]
}
| Field | Type | Default | Notes |
|---|---|---|---|
title | string | none | The only required field. A blueprint with no title is skipped. |
formatVersion | int | 1 | Absent means 1. Safe to leave out. |
description | string | empty | What the job is and who it is for. |
category | string | other | One of the values listed below. Anything unrecognised falls back to other. |
subcategory | string | null | Free text, e.g. "Front axle". |
difficulty | string | intermediate | beginner, intermediate, advanced or expert. |
tags | string[] | empty | Free-form, for searching. |
language | string | en | BCP-47 language tag. |
estimatedMinutes | int | sum of steps | Minutes, not seconds. Leave it out and it adds the steps up for you. |
estimatedCost | number | null | Parts total, roughly. |
currency | string | USD | Three-letter ISO 4217 code. |
author | object | null | { name, bio, url }. Never carries any verified flag. |
vehicleCompatibility | object[] | empty | Each entry: make, plus optional model, yearStart, yearEnd, engine, notes. |
requiredTools | string[] | empty | The whole-job tool list. Steps have their own too. |
parts | object[] | empty | One flat list; kind splits it into required, optional and consumable. |
steps | object[] | empty | A blueprint with no steps is still valid. It becomes a checklist stub. |
coverImageUrl | string | null | A URL or a relative path. Images are never embedded in the file. |
| Field | Type | Default | Notes |
|---|---|---|---|
title | string | none | Required. A step with no title is skipped and reported. |
stepNumber | int | position in the array | Optional. The app renumbers on import, so you can reorder steps freely. |
description | string | empty | The actual instructions for the step. |
estimatedMinutes | int | null | Minutes. |
tools | string[] | empty | What you need in your hand for this step. |
parts | object[] | empty | Same shape as the top-level parts list. |
warnings | string[] | empty | Safety warnings. Shown prominently in the app. |
tips | string[] | empty | The things you only learn by doing the job once. |
checklist | string[] | empty | Sub-items to tick within the step. |
imageUrls | string[] | empty | URLs or relative paths. |
videoUrl | string | null | A single video URL. |
| Field | Type | Default | Notes |
|---|---|---|---|
name | string | none | Required. A part with no name is skipped. |
kind | string | required | required, optional or consumable. This is what splits the flat list into the three groups the app shows. |
quantity | int | 1 | |
partNumber | string | null | Leave it null unless you know it is right for the vehicle you are describing. |
estimatedCost | number | null | |
notes | string | empty | Fit notes, substitutions, what to check before buying. |
Lowercase, exactly as written. Anything else falls back to other rather than failing.
Ratings, download counts, view counts, favourites, draft or published status, and any "verified creator" or "featured" flag are properties of a blueprint inside one person's install, not of the template itself. They are never written to a file, and if you add them by hand the app ignores them. An imported blueprint always becomes your own local draft with its counters at zero.
estimatedMinutes. Capitalised category or difficulty values such as "BRAKES" or "Beginner". Use lowercase; anything else silently falls back to the default. A trailing comma after the last item in an array or object, which is not legal JSON. Smart quotes pasted in from a word processor instead of straight " quotes. If a file will not import, paste it into any JSON validator first. It is almost always a punctuation error rather than anything to do with this format.
Import it, tick off steps as you work, log parts and costs as you spend, and keep the whole job on file when you are done.