Working…

Needs repo scope. Cleared on tab close. Create token →
🔐 Saved device — token auto-filled
Enter your encryption password to unlock.
Trust this device? Your token will be saved encrypted.

Lab Notes

Encrypted lab journal.
Every save is an AES-256 encrypted commit in GitHub.

Press + New Entry to begin.

📜 Edit History
New Lab Entry
Number of propagules / cultures produced in this entry.

Accession Registry

Track every plant accession — origin, status,
acquisition date and linked lab entries.

Press + New Accession to begin.

New Accession

Media Recipe Book

Store all your media formulations — MS, WPM, B5,
custom blends, hormone regimes.

Press + New Recipe to begin.

New Media Recipe

⏰ Subculture Reminders

Entries with a Next Review Date set. Click any card to open the note.

☣️ Contamination Dashboard

All contamination log entries across the lab.

📊 Lab Analytics

⏱ Lab Tools

Timers, stopwatches and lab utilities — all run locally, no data saved.

Countdown Timers

Stopwatches

🧫 Sterilisation Stepper

⚗️ Media Volume Scaler

🌱 Species

🌿 Taxonomy DB ↗

Derived from your notes and accession registry.

📰 TC Research News

Latest plant tissue culture publications from PubMed. Results are saved to your repo as dated JSON files for future reference.

Load latest research

Toggle on to load the latest 100 plant tissue culture papers from PubMed.

Getting Started

First Login

You need two things: your Encryption Password (chosen by you — never leaves your browser) and a GitHub Personal Access Token with repo scope.

Create a token: github.com → Settings → Developer settings → Personal access tokens → Classic → New token → tick repo → Generate

⚠️ Never lose your encryption password. There is no recovery — all note content is AES-256-GCM encrypted client-side. The GitHub repo stores only ciphertext.

Navigation

Tap (top-left) to open the left navigation drawer. For Notes, Registry, and Recipes, the drawer stays open and shows the search, filters, and list — the main panel on the right shows the selected entry or editor. For all other sections (Analytics, Tools, Help, etc.) the drawer closes after navigating. The top bar contains: weather, export, lock, and theme toggle.

Session Behaviour

Your token is stored in sessionStorage only — cleared on tab close. Your password is in memory only. Lock or tab-close wipes both. After first login, data is cached for 10 minutes so re-unlocking is near-instant (⚡ Loaded from cache).

Trusted Device

After logging in, tap Yes, save on the trust banner. Your GitHub token is saved encrypted in localStorage — next visit just enter your password, no token needed. Tap Forget this device on the login screen to remove it.

Light / Dark Mode

Click ☀️ / 🌙 in the top bar to toggle themes. Preference persists across visits.

Lab Notes

Creating an Entry

Click + New Entry or tap the blue + FAB (floating button, bottom-right) for a quick two-field entry. The full editor has:

FieldPurpose
TitleRequired. Shown in the drawer note list and search results.
Experiment TypeCategorises the entry; auto-loads a Markdown template when body is empty.
TC StageStage 0 – IV, Self Notes / Unclassified, or N/A.
Species / AccessionLinks this entry to Registry accessions automatically.
Recipe UsedPick a saved recipe; shows as a clickable purple badge on the note.
Next Review DateSets a reminder shown in the ⏰ Reminders tab with nav badge count.
TagsComma-separated. Start typing to see autocomplete suggestions from your existing tags.
Cultures OutOptional integer — number of propagules / cultures produced. Powers media efficiency analytics.

Auto-Save Draft

Every keystroke is debounced and saved to sessionStorage after 1.5 s. If you accidentally refresh or navigate away, reopen the editor and a yellow banner appears: "Draft restored from Xm ago". Click Discard to clear it.

Split-Pane Preview

Above the note body, three buttons toggle the view: ✏️ Edit (textarea only), ⬛ Split (editor left, live Markdown preview right), 👁 Preview (rendered only). On mobile, Split stacks vertically.

Wiki-Links

Type [[Note Title]] anywhere in the body to create a link to another note. In the rendered view, it becomes a purple link — click to navigate. If the title doesn't match any note, it shows greyed out.

Use the [[]] toolbar button to open a searchable note picker instead of typing manually.

Below the note body, a Linked from section lists notes whose body contains [[this note's title]] — populated from notes you've opened in this session.

Edit History

On any note's view panel, click 📜 History. A slide-in panel shows every GitHub commit for that note file, newest first. The current version is labelled. Click ↩ Restore this version to load an old body into the editor for review — you must explicitly Save to overwrite.

Quick Log (FAB)

The blue button in the bottom-right corner opens a minimal modal: just Title and Body. Saves immediately as a Self Notes / Brainstorming entry. Disappears while the full editor is open.

Markdown Toolbar

The toolbar wraps selected text or inserts at cursor. Buttons: H2, H3, Bold, Italic, Strikethrough, inline code, code block, blockquote, horizontal rule, bullet list, numbered list, task list, link, image embed, table, [[]] wiki-link, 📷 Camera/Barcode. Shortcuts: Ctrl+B Bold, Ctrl+I Italic, Ctrl+K Link, Tab = 2 spaces.

Camera & Barcode Scanner

Click 📷 in the toolbar to open the camera. Tap 📸 Capture Photo to insert a JPEG image directly into the note body (base64 encoded, encrypted with the note). Tap 🔍 Scan Barcode to activate the ZXing barcode reader — supports QR codes, Code128, EAN, DataMatrix, and more. Once scanned, insert the result into the note or copy to clipboard. Use ⇄ Switch to toggle between front and rear camera.

Image Embeds

Click 🖼 to pick an image. It is base64-encoded and inserted inline — encrypted inside the note. Keep under 1 MB.

Search

The search box in the left drawer instantly filters the note list by title, species, and tags. Pressing Enter triggers a deep search — decrypts every note body and returns highlighted excerpts.

Filters

Filter pills in the drawer: All types, ☣️ Contamination only, ⏰ Overdue, and TC Stages I–IV.

Taxonomy & Flairs

Species Autocomplete

Start typing in any Species field — a dropdown appears with matching species from the active taxonomy packs. Each suggestion shows the scientific name, common name, and conservation status badge (CR/EN/VU/NT/LC). Click to select, or ignore and type whatever you like. If you already have accessions of a species with flairs, those show as sub-rows in the dropdown.

Taxonomy Packs

Go to 🌱 Species → Taxonomy Packs to browse all built-in species. Three packs are available: Carnivorous Plants (Nepenthes, Drosera, Sarracenia, etc.), Orchids, and Banana & Relatives. Each pack can be toggled on/off — disabled packs are excluded from autocomplete (takes effect after next login). You can also add your own custom species at the bottom of the panel.

Flairs

Flairs are coloured labels you define in 🌱 Species → Flairs (e.g. Borneo clone, Highland form, SCV-01). Once defined, assign them to any accession record in the Registry editor. You can assign multiple flairs and add a free-text provenance note. Assigned flairs appear as coloured pills in the accession list and detail view, and in the autocomplete dropdown when that species is typed.

Calendar

Navigating the Calendar

Click 📅 Calendar in the nav drawer. Use ‹ › to move between months and Today to snap back to the current month.

Each day shows colour-coded dots:

  • Blue — experiment logged on this day
  • Orange — review due on this day
  • Red — contamination entry

Day Detail Panel

Click any day to open the detail panel on the right. It lists all entries for that day with type, stage, and species. Click any entry to open the full note. On mobile the panel opens full-screen.

Creating Notes from the Calendar

Click a day, then click + New note on this date (past dates) or + Schedule note for this date (future dates). Past dates set the experiment date; future dates pre-fill the Next Review Date field.

Exporting

Click ⬇ Export in the calendar header and choose This week or This month. A print-ready window opens with all entries expanded — full note bodies, badges, and flags for contamination and pending reviews. Use your browser's print dialog to save as PDF.

Keyboard Shortcuts

ShortcutAction
Ctrl+SSave current note to GitHub
Ctrl+BBold selected text
Ctrl+IItalic selected text
Ctrl+KInsert link
TabInsert 2 spaces (inside editor)
Enter in searchDeep full-text search across all notes
EscapeClose Quick Log modal / Wiki picker

Accession Registry

Track every plant accession — species, accession number, origin, source, acquisition date, and status. Any note whose Species/Accession field matches the accession's species name is automatically linked.

Timeline Tab

Each accession view has two tabs: 📋 Details (the accession record) and 📅 Timeline. The Timeline tab shows all linked lab entries as a chronological vertical timeline with stage icons — click any entry title to open that note.

Status options

  • Active in culture — currently growing in vitro
  • In acclimatization — Stage IV, being hardened off
  • Dormant — paused, not actively subcultured
  • Transferred out — moved to another lab or person
  • Lost — culture failed or contaminated

Media Recipe Book

Store complete media formulations. Each recipe records base medium, sucrose, agar/gelrite, pH, growth regulators, autoclave parameters, and preparation notes.

Base Medium

Choose from the curated list: general (MS, LS), orchid-specific (Knudson C, VW, Pierik, New Dogashima), monocot/banana (B5, N6, MS-Musa), woody plants (WPM, DKW, Anderson's). Select ✏️ Custom to type any name.

Autoclave

Presets: 121°C/15m, 121°C/20m, 121°C/45m, 115°C/20m, Filter sterile. Or type exact temperature and hold time manually.

Linking to notes

Pick a recipe in the Recipe Used dropdown when creating a note. It shows as a purple badge — clicking opens the recipe. Recipe links are used in the Analytics tab to compute usage frequency and media efficiency.

Reminders

Any lab entry with a Next Review Date appears in the ⏰ Reminders tab, grouped by urgency:

  • 🔴 Overdue — past the review date
  • 🟡 This week — due within 7 days
  • 📅 This month — due within 30 days
  • 🗓 Later — more than 30 days away

The nav badge shows overdue + this-week count. Click any reminder card to open the note.

Weather Widget

The 🌡️ weather chip in the nav bar shows the current real-feel temperature at the lab (SARE, Thiruporur). Data is fetched from Open-Meteo every 60 seconds — no API key, always live.

Click the chip to expand a popover showing both locations side by side:

LocationMetrics shown
🏛️ Lab — SARE, ThiruporurFeels-like °C, 💧 Humidity %, ☀️ UV Index, 🌧️ Rain probability %
🌿 Greenhouse — Thaiyur, KelambakkamSame four metrics

Click anywhere outside the popover to close it.

📊 Lab Analytics

Click the 📊 Analytics tab to see all metrics computed from your notes, accessions, and recipes in real time. No data is sent anywhere — everything runs in your browser from already-decrypted in-memory data.

Notes / Month

A line chart of how many lab entries you created in each of the last 6 calendar months. Useful for spotting quiet periods or high-activity sprints.

Stage Distribution

A donut chart showing what proportion of your notes are at each TC stage (Stage I–IV). Helps you see where most of your active work is concentrated. Each stage has a distinct colour: blue (I), green (II), yellow (III), purple (IV), red (Contamination).

Species Success Rate

Horizontal bars showing success rate for each species — the percentage of notes for that species that are not Contamination Log entries. Only species with 2 or more notes are shown. Colour-coded: green >70%, yellow 40–70%, red <40%.

Contamination Trend

A line chart of how many Contamination Log entries occurred per month over the last 6 months. An upward trend is a warning signal to investigate media, laminar flow, or explant source.

Recipe Usage

Horizontal bars for the top 6 most-used recipes — counted by how many notes reference each recipe. Shows which media formulations you rely on most.

Tag Cloud

Your top 30 tags displayed as sized pills — larger and more opaque tags are used more frequently. Gives a quick overview of recurring themes and topics in your lab journal.

Stage Funnel by Species

Stacked horizontal bars for your top 5 species (by note count), showing how their notes are distributed across Stage I → II → III → IV. A healthy progression should show entries at multiple stages. A species with only Stage I entries may have stalled.

Average Days Between Entries

Badge cards showing the average number of days between consecutive lab entries for each species with 3 or more notes. This approximates your subculture interval — useful for optimising transfer frequency.

Media Efficiency

A ranked table showing how well each combination of Recipe × Species × Stage performs. Requires at least 2 notes sharing the same recipe, species, and stage.

ColumnMeaning
RecipeThe saved media recipe used
SpeciesThe plant species
StageTC Stage (I–IV, abbreviated)
Avg OutAverage value of the Cultures Out field across all matching notes. This is the number of propagules or cultures produced per transfer. Set "Cultures Out" on your notes to populate this.
Contam%Percentage of matching notes that are Contamination Log entries
ScoreComposite efficiency score (0–100). Formula: (Avg Out ÷ global average) × (1 − contamination rate) × 100, capped at 100. Higher is better. A recipe with high output but high contamination will score lower than a reliable medium with moderate output.

💡 Tip: Always fill in Cultures Out when saving a Multiplication or Rooting note to get meaningful efficiency data. Without it, the Avg Out and Score columns show "—".

🌱 Species in Culture

Click Species in the nav drawer to see a live table of all species derived from your notes and accession registry. Shows: note count, TC stages distribution, contamination rate, average Cultures Out, and accession status. Click Taxonomy ↗ next to any species to look it up in the PhytoCommerce taxonomy database.

✦ Gemini AI Assistant

Tap (bottom-right, above the quick log FAB) to open the AI assistant powered by Google Gemini. When you ask a question, the assistant automatically sends rich context about your current session:

  • Open note — title, type, stage, species, date, and the full decrypted note body (fetched on demand if not already loaded)
  • Linked recipe — base medium, PGRs, pH, sucrose, agar
  • Accession record — status, source, origin for the note's species
  • Species summary — top 10 species by note count, with stage distribution, contamination rate, and average cultures per transfer

Pre-built chips: Summarise note (bullet-point summary of the open note body), PGR advice (recommendations based on species + media context), Contam analysis (likely causes + prevention), Lab overview (status across all species). Press Enter to send free-text questions.

📰 TC Research News

Click News in the nav drawer to see the latest 100 plant tissue culture publications from PubMed. Toggle the switch to load articles as individual cards — each shows title (linked to DOI), authors, journal, and year. Toggle off to clear from memory.

When loaded, results are automatically archived to your GitHub repo at news/YYYY-MM-DD.json with the date stamp. These files accumulate over time as a research archive you can reference later.

Activity Log

The ⚡ Activity tab on the right edge of the screen opens a live panel showing the last 30 GitHub commits on your lab repo. Each entry shows the commit message, time ago, and date.

Icons indicate the type of activity:

IconMeaning
🌱New note added or Quick Log
✏️Note updated
🗑Note deleted
🌿Accession registry updated
🧪Recipe saved or updated
📋Index updated
App feature added

Click any note-related commit (🌱 or ✏️) in the list to jump directly to that note. Click to refresh. Click or click the ⚡ Activity tab again to close. The panel is minimised by default — just a small tab on the right edge.

⏱ Tools

Countdown Timers

Click + Add Timer. Enter hours, minutes, seconds, and a name (e.g. "Autoclave", "Surface sterilisation"). Press ▶ to start. Up to 5 simultaneous timers. A repeating beep plays when a timer reaches zero. Press ↺ to reset.

Stopwatches

Up to 4 stopwatches with lap recording. Press ⏱ Lap to record a split without stopping. Press ↺ to clear laps and reset.

Sterilisation Stepper

A step-by-step sterilisation protocol guide. Select your surface sterilisation method and the stepper walks you through each stage with a built-in countdown timer per step. Each step supports a temperature field (e.g. 55 °C water bath) and a notes field for lot-specific reminders or observations. The old general-purpose calculator has been removed — use the BioChemistry Calculator below for numeric calculations.

Media Volume Scaler

Scale any saved recipe up or down. Enter a target volume (e.g. 500 mL) and the scaler recalculates all ingredient quantities proportionally. Useful when preparing a partial batch or scaling an existing formulation to a new vessel size.

BioChemistry Calculator

  • Molarity — molar concentration from MW, mass, and volume
  • Dilution — C₁V₁ = C₂V₂; leave V₁ blank to solve for it
  • % Solution — w/v percentage from mass and volume
  • pH — pH from [H⁺] or from pOH
  • PGR Convert — growth regulator concentrations between mg/L and μM using molecular weight

Export & Backup

Click (ZIP) or CSV in the top bar to export your data. ZIP downloads all notes as decrypted Markdown files plus accessions and recipes as JSON. CSV downloads two spreadsheet files: one for all note metadata (id, title, date, type, stage, species, tags, next review, recipe, cultures out), one for all accessions.

Each ZIP note file includes YAML front matter with all metadata.

Your data is always in the GitHub repo as encrypted .enc files — every save is a git commit, so you have full version history at github.com/Phyto-Evolution/tcplants. The repo is your backup.

Print / PDF

Open any note or recipe, then click 🖨 Print / PDF. A clean print-optimised window opens. Use your browser's print dialog → Save as PDF.

Privacy & Security

All note content is encrypted client-side with AES-256-GCM using a key derived from your password via PBKDF2 (600,000 iterations, SHA-256). The GitHub repo contains only ciphertext — even repo admins cannot read your notes without your password.

Your password never leaves your browser. The GitHub token is stored only in sessionStorage (cleared on tab close). The session data cache in sessionStorage contains decrypted data but is cleared on lock and on tab close.

✦ Gemini AI
Hello! I can help with TC protocols, species info, PGR doses, and note summaries. What would you like to know?
⚡ Quick Log
🏛️ Lab — SARE, Thiruporur
💧
☀️UV —
🌧️Rain —
🌿 Greenhouse — Thaiyur
💧
☀️UV —
🌧️Rain —
⚡ Activity
tcplants@github — activity log
Loading…