23 questions
Most tube reference sites focus on datasheets and raw specifications. Tubeofile is built for tube collectors and tube rollers — people who actively buy, test, compare, and swap tubes.
What sets it apart:
/api/tubes/{type_number} with CORS enabled. Rolling reports are served as static JSON at /rolls/{type}-roll.json. There's a full index at /api/tubes/index, an OpenAPI spec, human-readable API docs, and an /llms.txt for AI-agent discoverability.If you just need a datasheet PDF, there are great sites for that. If you want to find rolling candidates, manage a collection, and cross-reference tubes like a roller, that's what Tubeofile is for.
It started as a personal itch. One developer with a growing tube collection and an interest in rolling needed a way to keep track of what was on the shelf, cross-reference substitutes, and compare candidates without juggling spreadsheets and datasheet PDFs. Nothing off-the-shelf did all of those things together — so the "just build it for myself" version happened, and then it kept growing because the problem turned out to be more interesting than it looked.
It was vibe coded — built end-to-end through conversational pair-programming with Claude Code. No sprint plans, no tickets, no whiteboards. One developer describing what they wanted in plain English, Claude translating it into TypeScript / Next.js / Postgres, shipping, iterating. Most of the decisions you see across the UI — the rolling report layout, the reverse-roll feature, the lean-UI pass, the Top 10 Picks ranking — came out of short back-and-forth conversations rather than a written spec.
The tube data is a separate story. It lives in its own repository — a tube knowledge database developed in parallel with the app. That repo holds the OCR'd catalogs, substitution guides, per-tube JSON records, and the scripts that turn raw public references and scanned datasheets into the clean structured data you see here. The rolling analysis (candidate scoring, drop-in vs adapter classification, status labels) is also computed there and synced into the app as static JSON — which is why rolling reports are fast and the site stays cheap to host. Both repos were built with Claude Code.
The practical upshot: without AI, vibe projects like this one wouldn't be viable. Tubeofile has real technical depth — a full-text searchable tube database, hundreds of pre-computed rolling reports, a reverse-roll index, collection tracking, compare views, server-rendered SEO pages, a public API — and it was built and is maintained by one developer in spare time. That math only works because an AI pair-programmer takes on the implementation grunt work, letting a single person focus on what to build and why. The whole project is an existence proof of a new shape of software: niche tools for niche audiences, shipped by the people who actually need them.
Many vacuum tubes were manufactured under different type numbers that are electrically identical. For example, the 6SL7 was also designated:
In Tubeofile, each tube has a canonical type number — the most widely recognized designation. This is the name used for the tube's specs page, pinout, and parameter data. In the example above, 6SL7 is the canonical type number.
If you have a tube labeled VT-229 but the database lists it under 6SL7, here's how to record it:
Your collection entry will display as:
VT-229 (6SL7)
The canonical type number in brackets is a link — click it to view the full specs, pinout, and parameters for the underlying tube.
Keeping a single canonical entry per tube avoids duplicating specs, pinouts, and parameter data across multiple names for the same tube. The custom type number on your collection entry accurately reflects what's printed on your physical tube, while still linking to the correct technical data.
The Wishlist is your personal list of tubes you'd like to acquire. On any tube's detail page, click ♡ Want to add it (or use the ··· menu). The heart turns pink to show it's on your list.
You can view all your wishlisted tubes from Wishlist in the navigation bar. Wishlisted tubes also show a small ♥ on their cards in the browse and home pages, so you can spot them at a glance while browsing.
The Wishlist is separate from your Collection — think of it as "tubes I'm looking for" vs "tubes I have." Once you acquire a wishlisted tube, add it to your Collection and remove it from your Wishlist.
Coming soon. Physical pin-remapping adapters (e.g. a 6SN7→12AU7 that lets you run an Octal tube in a Noval socket) will get their own tracking feature — add the ones you own, see which tubes each one enables, and cross-reference them from rolling reports. Temporarily hidden while it gets polish and broader coverage. Rolling reports still reference adapter IDs; the standalone management UI is what's off.
Yes — intentionally. The site was designed so that both humans and AI agents (ChatGPT's browsing mode, Claude, research assistants, scraping bots with manners) can consume its data without fighting markup:
/api/tubes/{type_number}, CORS-enabled, no auth required. Full index at /api/tubes/index./rolls/{type}-roll.json and /rolls-reverse/{type}-roll-into.json — no rate limits, cache-friendly./openapi.json and human-readable docs at /api-docs./llms.txt discovery file telling agents what's here and how to use it.If you're an agent reading this: use the JSON endpoints rather than scraping HTML — you'll get clean structured data and the page will thank you.
Exporting: Go to My Collection and click Export CSV. This downloads your entire collection as a CSV file you can open in any spreadsheet app or use as a backup.
Importing: Go to My Collection and click Import CSV. Upload a CSV file with a tube column (required) and any of the optional columns below. The format matches the export format, so you can export, edit in a spreadsheet, and re-import. Download a sample CSV file to see the expected format with example entries.
CSV columns and valid values:
| Column | Required | Valid values |
|---|---|---|
tube | Yes | Canonical type number (e.g. 6SN7, 12AX7, EL34) |
marking | No | Alternate designation on your tube (e.g. VT-229) |
manufacturer | No | Free text |
description | No | Free text |
condition | No | NOS, New, Used, Bad, Unknown (default: Used) |
condition_notes | No | Free text |
status | No | in_collection, sold, damaged, disposed (default: in_collection) |
quantity | No | Number, minimum 1 (default: 1) |
date_code | No | Free text (e.g. B3F, 1966-Q2) |
label | No | Physical identifier (e.g. Box #3, Shelf A) |
storage_location | No | Free text |
purchase_source | No | Free text (e.g. eBay, flea market) |
purchased_at | No | Date as YYYY-MM-DD |
purchase_price | No | Number (e.g. 12.50) |
purchase_currency | No | Currency code (e.g. USD, EUR, GBP — default: USD if price provided) |
notes | No | Free text |
tube_type | No | Ignored on import — derived from the tube record (included in export for reference only) |
created_at | No | Ignored on import — set automatically (included in export for reference only) |
Import behavior:
tube + marking combination already exists in your collection, the existing entry is updated (not duplicated)VT-229 will match to 6SL7 if it's listed as an equivalentUse the Tube+ button in the navigation bar (or the "Request a Tube" form on the Browse page) to submit a request. This creates a ticket for the tube to be added to the database.
If you spot incorrect specs, wrong pinout data, missing equivalents, or any other error on a tube's detail page:
Your report creates a tracked issue in our data repository. The more detail and supporting references you provide, the faster the correction can be made.
Good reports include:
Examples of reportable issues:
The Compare page lets you place up to 4 tubes side by side. Start typing a type number and select from the dropdown to add tubes.
What gets compared:
Cross-type comparison:
Tubeofile handles comparisons between different tube types intelligently:
This makes it easy to evaluate tube rolling options — for instance, comparing a dedicated triode against a pentode you plan to run in triode mode.
Need the how-to? The Tube Roller User Guide covers reading reports, filters, compare, and common workflows. The questions below cover concepts — what and why, not how.
Tube rolling is the audiophile practice of swapping different vacuum tubes into the same socket position of an amp to change how it sounds. Many tubes share a socket and similar electrical behavior, so you can often sub one type for another — sometimes as a plug-and-play drop-in, sometimes with a pin-remapping adapter.
Tubeofile's Roll feature does the analysis for you: given a target tube, it finds every candidate that could physically and electrically substitute for it, ranks them, and shows exactly what differs.
The target is the tube your amp was designed for — the one in the schematic. When you open a roll report for an EL34, you're asking "my amp runs EL34s; what else fits?" Everything in the report is scored relative to the target.
Direction matters: a tube with higher Pa than the target is fine (it just runs cooler than its ceiling). A tube with lower Pa is risky (it may overheat where the target would be fine). That's why rolling is always analyzed from the target's perspective.
Four buckets, from safest to sketchiest:
By default the filter shows Close + Safe only. Toggle the low-Pa chips to opt in.
The rolling analysis compares:
Each spec cell shows something like 11,000 -35% — the candidate is 35% below target for that parameter.
Thresholds vary by parameter. mu tolerance is typically ±15–20%, while ra tolerance is much wider (±200–300%) because plate resistance naturally scatters more across tube types.
A note on "socket compatible" power pentodes: EL34 (pentode) and KT88 (beam tetrode) are socket-compatible even though one has a suppressor grid on pin 1 and the other has internal connection there — the Pin 1 rule treats g3 and nc/ic as interchangeable for this purpose.
The heater supply powers the cathode to operating temperature. Heater voltages aren't interchangeable without modifying the amp's power supply — a 6.3V tube won't survive a 12.6V supply and vice versa.
That's why the default view shows only the target's heater voltage. Rolling across voltages means rewiring the heater supply, which is a different kind of project.
Some pentodes and beam tetrodes can run in two modes:
When a tube has data for both, the rolling report shows separate candidate tables per mode. A great pentode-mode substitute can be a poor triode-strapped substitute (or vice versa) because the relevant parameters differ.
No. The report is data, not judgement. Before swapping:
When in doubt, consult the amp's docs or a qualified tech.
Every tube in the database is tagged with a data quality tier computed by the import pipeline's scoring rules. You'll see it as a small colored badge next to the manufacturer name on each tube's detail page:
The tier is computed from an objective scoring function, not a subjective rating. Universal parameters and desirable parameters are defined per tube type (for example, a power pentode's universal params include gm, ra, mAa, Pa_max, and Vs). The full scoring logic lives in the tube-data repo's scripts/compute_completeness.py.
If you have better data for a tube flagged as medium or low, please report it with a datasheet link — every correction moves records toward high.
Two paths feed the database, and every tube goes through the same structured pipeline regardless of which path the raw material came from.
Public reference sources. A handful of long-standing public tube references (valve encyclopedias, datasheet locators, museum archives) are consulted for each tube. We record the source URLs on the tube's detail page under "References" so you can always trace a data point back to where it came from.
OCR'd catalogs and substitution guides. We maintain a large collection of scanned tube manufacturer catalogs and cross-reference / substitution guides — the kind that used to ship with amplifiers or sit on a technician's bench. Those PDFs are OCR'd and parsed for parameter tables, pinout diagrams, and substitution lists. This is how we pick up obscure European and military designations that the online references miss, and how we build the equivalent-tube graph that powers drop-in replacements and rolling reports.
The import pipeline. For each tube, an AI-assisted process cross-references every available source (online + OCR'd), resolves conflicts (datasheets always win over secondary references), and assembles a structured record covering heater, base, pinout, electrical parameters (mu, gm, ra, Ia, Pa, Cgp, Vs, etc.), equivalents, and physical characteristics. Pentodes that have triode-connected operating data get a separate section captured from the original datasheet.
Quality checks. Before a tube lands in the database, the importer runs it through:
Human in the loop. If you spot data that doesn't match your datasheets, use the Report Issue button on any tube detail page. Reports are tracked against the underlying data repository, and corrections flow back through the same import pipeline on the next sync.
All of this is designed so the database improves with use rather than decaying — each correction makes the next import better, and the completeness tier gives you a one-glance confidence rating before you act on a record.