Auto-Summary
Belintaf introduces MycoLab, a specialized mushroom cultivation tracker designed to organize the complex workflows of growers. Built as a single, privacy-focused HTML file, the app requires no server, accounts, or internet connection, ensuring all data remains locally within the user's browser. It allows cultivators to track everything from spore prints and agar transfers to grain runs and bulk harvests, featuring a robust lineage system that connects cultures back to their original sources. Users can log detailed status histories, record harvest weights, add photos, and categorize different strains. A key feature of the app is its unique automated coding system, which generates unique identifiers for every culture to simplify physical labeling. Because browser storage can be volatile, the author emphasizes the importance of using the built-in JSON export function to create reliable backups. MycoLab is available via direct download, GitHub, or as a live web demo, offering a lightweight, mobile-friendly solution for hobbyists looking to replace scattered notes with a cohesive digital record.
A mushroom-cultivation tracker in a single HTML file. No server, no account, no tracking: your data stays in your browser. Built for phones first, works on desktop too.
Track every culture from agar to harvest: strains, spore prints and swabs, grain, bulk, PF-Tek cakes and BRF pucks. See how each one is related to the others, log flushes and photos, and keep a backup you can restore anytime.| IMPORTANT: |
|---|
Your data, your file. MycoLab saves automatically in your browser, but the browser is not a vault. The most reliable way to keep your data is to export it to a JSON file with ↓ EXP and store that file somewhere safe. Make it a habit: Saving your data. |

MycoLab overview░░░░░░░░░░░░░░░░░░░░
CONTENTS░░░░░░░░░░░░░░░░░░░░
WHY MYCOLAB?Ever since I got back into cultivation, I kept running into the same problem: scattered notes, vague descriptions, photos stored somewhere else — data that completely lost its coherence a few weeks later.
Anyone else relate?I usually prepare lots of PF-Tek cakes, work with several strains, and take prints from interesting specimens to track lineage. At some point my brain simply ran out of room. I couldn't find an app that kept me organized without friction, so I built one around my own workflow — especially with how easy "
vibe coding" makes things nowadays (otherwise, it would have meant a few weeks of barely sleeping).
I never planned to share it. But after a few weeks of use, and the relief of having everything neatly in one place, I figured some of you might find it useful too.
░░░░░░░░░░░░░░░░░░░░
GETTING STARTED- Download the latest MYCOLAB_vX.Y.Z_EN.html file.
- Open it in any modern browser (Chrome, Firefox, Safari, Edge).
- Add your first strain under STRAINS, then create a culture under + NEW.
- Tap ↓ EXP now and then to save your data to a JSON file. This is the reliable backup (see Saving your data).
That's it. Nothing to install, and the app never makes network requests (fonts are embedded).
| IMPORTANT: |
|---|
| Where your data lives. Everything is stored inside the browser, on the device you use, under the address you opened the file from. If you open the same file from a different place or URL, or from another browser or phone, you will see an empty app. To move data between devices, export it to JSON with ↓ EXP and load it with ↑ IMP (see Saving your data). |
The app has five tabs:
SUMMARY,
CULTURES,
SPORES,
STRAINS and
+ NEW. A discreet
[ CONFIG ] link sits at the very bottom of the page.

The five tabs and config░░░░░░░░░░░░░░░░░░░░
THE BASICSEverything in
MycoLab revolves around three core concepts to organize your grow:
- STRAINS
A species or variety you grow, with a short code (e.g. MR) and a name.
- CULTURE
Anything you grow: an agar plate, a jar of grain, a PF-Tek cake, a bulk tub.
- SPORES
A spore Print or a Swab. Cultures can be started from them.
Culture Types & Statuses- P — PF-Tek
Status: COLONIZING → CONSOLIDATION → FRUITING → RESTING → FINISHED (or CONTAMINATED)
- B — Bulk
Status: Same as PF-Tek
- BP — Puck
Status: Same as PF-Tek
- A — Agar
Status: ACTIVE, CONTAMINATED, DISCARDED
- LC — Liquid culture
Status: ACTIVE, CONTAMINATED, DISCARDED
- G — Grain
Status: COLONIZING → COLONIZED → FINISHED (or CONTAMINATED)
Agar,
liquid culture and
grain have no flushes. Spores have their own statuses: FRESH, VIABLE, DEGRADED, DISCARDED.
The tabs- SUMMARY
a counter for each status, a few statistics and your latest harvests.
- CULTURES
every culture as a card. Search by code or strain, and filter by strain, type or status.
- SPORES
your prints and swabs, with their own filters.
- STRAINS
your strain list, organised in categories.
- + NEW
create a CULTURE or SPORES record.
░░░░░░░░░░░░░░░░░░░░
UNDERSTANDING THE CODESMycoLab builds a code for every record, so you can write it on the jar and find it in the app.
MR 013 P 3
│ │ │ └─ generation/transfer
│ │ └──── culture type
│ └─────── serial number
└────────── strain
So
MR013P3 is the 13th culture of strain
MR, a PF-Tek (
P), generation
3. Numbering is per strain.
Serial numbers. They count
001,
002 …
999. After
999 the letters begin, so you never run out:
00A,
00B …
00Z,
01A,
01B … up to
ZZZ (about 45,000 more). Serials that were already numeric (
010–
099…) are skipped on the way.

PF-Tek cakes with their codesSpore codes look like
MRPR001.1 (Print) or
MRSW001.1 (Swab): strain,
PR or
SW, serial, then a dot and the generation. Prints and swabs are numbered separately.
Agar uses
TRANSFER instead of
generation, since agar is transferred from plate to plate.
░░░░░░░░░░░░░░░░░░░░
ADDING THINGSA new cultureTap + NEW → CULTURE.
Adding a new culture- STRAIN and SUBSTRATE (the culture type). A live preview shows the code that will be created.
- GENERATION (or TRANSFER for agar), from 0 to 99.
- SOURCE CODE: the culture this one came from. Start typing and suggestions appear. You can also type free text.
- SOURCE SPORES: if it grew from a print or swab.
- QUANTITY: create from 1 to 50 at once. Codes are consecutive, and the preview shows the range.

Adding a batch of fiveA new spore recordTap
+ NEW →
SPORES, choose Print or Swab, the strain and the origin culture, and say where you keep it (for example envelope 1, box 2).
░░░░░░░░░░░░░░░░░░░░
WORKING WITH A RECORDTap any card to open its page.
Viewing the record cardStatus and historyTap a status to change it. Every change is saved in
STATUS HISTORY with its date, and the page shows the day count and how long each stage lasted. Dates can be edited or deleted if you forgot to log something on time.

Adding status and correcting datesFlushesFor PF-Tek, bulk and BRF pucks,
+ FLUSH logs a harvest: date,
FRESH WEIGHT (g) and notes.
SUMMARY shows your latest harvests.

Adding a new flushPhotos, notes and the ★- PHOTOS: add pictures from your camera or gallery. They are shrunk (max. 512 px) so a lot of them fit on a phone. Tap a photo to see it larger.
- Notes are saved when you leave the field.
- ★ Select: mark the best cultures and write your selection criteria (why this one?).
EditEDIT lets you change the strain, type, generation, date, source and more.
The code updates with it. If you change the strain, type or generation, the code is rebuilt (
MR013P3 →
MR013B3) and a preview tells you before you save. Every record that pointed to the old code is updated for you, so lineage stays intact. Just remember to
relabel the jar.
DeleteDELETE asks for confirmation first. Deleted records cannot be recovered, except from a backup.
░░░░░░░░░░░░░░░░░░░░
LINEAGEEvery culture remembers where it came from, so you can follow the chain: spores → agar → grain → bulk.
- A culture's page shows its lineage (its ancestors).
- A spore record lists its DERIVED CULTURES: everything started from that print or swab.
- An agar record also lists its DERIVED CULTURES: every culture started from it, which makes each transfer visible.

Navigating through lineage░░░░░░░░░░░░░░░░░░░░
STRAINS AND CATEGORIESUnder
STRAINS you add strains with a
CODE, a
NAME and an optional
GROUP.
Tap ✎
EDIT to rename strains, drag them to reorder (or use ↑ ↓), and create your own categories (
Cubes,
Exotics,
Woodlovers…) with
+ GROUP. A strain belongs to the category header above it. Press ✓
DONE when finished.
- A strain with cultures cannot be deleted.
- Deleting a category keeps its strains and leaves them without a category.

Adding and grouping strains░░░░░░░░░░░░░░░░░░░░
CONFIGTap [ CONFIG ] at the bottom of any page.
Changing settings in config- THEME
NIGHT (default), DAY (light colours) or CUSTOM: pick your own background, text and accent colours. RESET restores the defaults.
- TEXT SIZE
SMALL, NORMAL or LARGE.
- CULTURE TYPES
Switch off types you never use (say you only do PF-Tek). They disappear from the pickers and from the + NEW screen. A hidden type stays visible in records that already use it, and at least one type always remains active.
- TYPE BADGE ON CARDS
Show or hide the small type label on each card.
Settings are saved on your device and inside your JSON backup.
░░░░░░░░░░░░░░░░░░░░
SAVING YOUR DATAExporting to JSON is the main way to keep your data safe. It is the most reliable one.MycoLab saves automatically as you work, inside your browser. That is convenient, but it is a
working copy, not a vault: browsers can clear a site's data (low storage, cleaning tools, a reset, a lost phone), and if that happens the data is gone.
An exported
JSON file is different. It is a real file that lives outside the browser, you can copy it anywhere, and it rebuilds everything: strains, categories, cultures, spores, photos and your settings.
Make exporting a habit. Tap
↓ EXP after any session where you logged something you would hate to lose (a harvest, a new batch), and at least once a week. Then put the file somewhere other than the phone: cloud storage, a computer, or an email to yourself.
- ↓ EXP (on the CULTURES tab) downloads everything as a single .json file.
- ↑ IMP loads a backup. It replaces the data in the app, so you are asked to confirm first. If the file includes settings they are restored too. Older backups without settings leave yours untouched.
- Keep a few recent exports instead of overwriting one, in case you notice a mistake later.
- Export before you import, and before you switch to a new version of the app.

Importing/ExportingThe same file moves your data from a phone to a computer, or lets you share a setup with a friend.
░░░░░░░░░░░░░░░░░░░░
GOOD TO KNOW- Older backups work. MycoLab reads files from earlier versions. The other way round has limits: versions before 6.6 don't show photos after the data was migrated, before 6.7 they ignore categories, and before 6.10 they don't understand serial numbers with letters (they could repeat a number). If you share files, share the version too.
- Typing a code by hand in a source field is fine: if it doesn't exist you get a soft warning, and the text is kept.
- Photos are shrunk to save space, so keep your originals if they matter.
░░░░░░░░░░░░░░░░░░░░
DOWNLOAD, SOURCE CODE & ONLINE VERSIONHow to get
MycoLab:
- Option 1 (Direct Download): Download the attached file directly from the header of this post. Note: If the forum renames it to .txt, simply change the extension back to .html on your device for the app to open properly.
- Option 2 (GitHub): Download the source file or check the full repository on GitHub.
- Online Version / Live Demo: A hosted web version is also available if you want to try it out instantly or just take a look around without downloading anything.
Note: Remember that whether you run it from a local file or via the online version, all your data remains strictly
inside your browser. No external connections are ever made.
Latest Version: v6.10.2
Previous Version: v6.9.1
░░░░░░░░░░░░░░░░░░░░
CREDITS- Fonts VT323 and Press Start 2P are embedded under the SIL Open Font License.
- Thanks to the community, with special thanks to Tri, Reishi Uchiha, and Mashedpotatoes for the feedback that shaped many of these features.
Feedback, bug reports and constructive criticism are very welcome — and feel free to modify it however you like.Hugs