Skip to content

File Formats

nextbom uses three file types.

.nbp — Project Files

Plain JSON, saved with readable formatting. Stores all project metadata but not BOM data.

{
  "uuid": "550e8400-e29b-41d4-a716-446655440000",
  "title": "My Project",
  "engineer": "Jane Smith",
  "database_path": "/path/to/db.nextbom",
  "project_specifics": "parts_2025",
  "design_variant": "full",
  "last_change": 1713707400000,
  "schema": "0.1.0"
}
Field Description
uuid Unique identifier for the project (UUIDv4).
title Project title.
engineer Engineer name (may be empty).
database_path Absolute path to the linked .nextdb parts database file. Empty if no database has been linked yet.
project_specifics Identifier for a project-specific alternative parts set (may be empty).
design_variant Assembly variant name (may be empty).
last_change Unix timestamp in milliseconds of the last modification.
schema File format version (semver). Major-version compatibility: a 1.x file can only be opened by 1.x software.

.nextdb — Parts Database Files

A SQLite database containing the mapping from generic part IDs to manufacturer part numbers. This is a shared resource across projects — you create and manage it separately with an external tool; nextbom only reads it.

Schema:

All tables (parts and every alt_*) share the same column schema:

Column Type Description
ID TEXT Generic part identifier (e.g. CAP00100). A single ID may appear in multiple rows — one per manufacturer/MPN.
mfr TEXT Manufacturer name (e.g. TDK).
mpn TEXT Manufacturer part number (e.g. C0402X5R1C104K).
Table Description
parts Primary part list.
alt_<name> Project-specific alternative part set. One table per set, named with the alt_ prefix (e.g. alt_2025).

When resolving a BOM, nextbom queries the parts table for each generic part ID. If the project has a project_specifics value set, the matching alt_<project_specifics> table is also queried and its entries are appended. All matching rows across both tables are merged into manufacturer and MPN arrays.

Multiple projects can share the same .nextdb file, or each project can use a different one.

.nextbom — BOM Working Files

A SQLite working file created when you import a CSV. It contains the schematic designators mapped to their generic part IDs for a specific project. This is a working file used to generate the final BOM output — it is not directly linked to the project file (.nbp).

Schema:

Column Type Description
designator TEXT (PK) Schematic reference designator (e.g. C1, R12).
part_id TEXT Generic part identifier (e.g. CAP00100).
mfr TEXT JSON array of manufacturer names from the main parts table (e.g. ["TDK","Murata"]). Populated during step 2.
mpn TEXT JSON array of MPNs from the main parts table (e.g. ["C0402X5R","GRM0332"]). Populated during step 2.
alt_mfr TEXT JSON array of manufacturer names from the project-specific alt_* table. Empty array if no alt entries exist. Populated during step 2.
alt_mpn TEXT JSON array of MPNs from the project-specific alt_* table. Empty array if no alt entries exist. Populated during step 2.

The four resolution columns are added by step 2. A freshly created .nextbom file has only designator and part_id. When alt entries exist for a part, part_id is updated to include the project-specifics suffix (e.g. RES00100_2025).

CSV Import Format

The CSV format expected when importing BOM data from your EDA tool.

  • Delimiter: semicolon (;)
  • Header row: required (first row is always skipped)
  • Column order: part ID first, designator second
part_id;designator
CAP00100;C1
CAP00100;C2
RES00001;R1
IC00050;U1

Whitespace around values is trimmed. Files with fewer than two columns are rejected.