{% extends "base.html" %} {% import "partials/bag_card.html" as bag_card %} {% import "partials/icons.html" as icons %} {% block title %}Brewlog{% endblock %} {% block head %} {% if is_authenticated %} {% endif %} {% endblock %} {% block content %} {% if is_authenticated %}

Scan Bag

Roaster

If this roaster already exists, it will be matched automatically.

Roast

Details about this specific coffee.

{% endif %} {% if !recent_brews.is_empty() %}

Recent Brews

View all brews →
{% for brew in recent_brews %}
{{ brew.roast_name }}

{{ brew.roaster_name }}

{{ brew.coffee_weight }} / {{ brew.water_volume }} · {{ brew.ratio }} · {{ brew.water_temp }}

{{ brew.grind_setting }} · {{ brew.grinder_name }}

{{ brew.brewer_name }}{% if let Some(fp) = brew.filter_paper_name %} · {{ fp }}{% endif %}

{% if is_authenticated %}
{% if let Some(fp_id) = brew.filter_paper_id %} {% endif %}
{% endif %}
{% endfor %}
{% endif %} {% if !open_bags.is_empty() %}

Open Bags

View all bags →
{% for bag in open_bags %} {% call bag_card::card(bag, is_authenticated) %} {% endfor %}
{% endif %} {% if !recent_events.is_empty() %}

Recent Activity

View full timeline →
{% for event in recent_events %}
{{ event.kind_label }} {{ event.title }}
{% endfor %}
{% endif %}

Your Coffee Journey

{{ stats.brews }}
Brews
{{ stats.roasts }}
Roasts
{{ stats.roasters }}
Roasters
{{ stats.bags }}
Bags
{{ stats.cups }}
Cups
{{ stats.cafes }}
Cafes
{{ stats.gear }}
Gear
{% endblock %}