{% extends "base.html" %} {% block title %}Dashboard โ€” Software of You{% endblock %} {% block content %}

Software of You

{{ today_formatted }}

{{ stats.contacts }} contacts {% if stats.projects is defined %} {{ stats.projects }} projects {% endif %} {% if stats.unread is defined %} {{ stats.unread }} unread {% endif %} {% if stats.today_events is defined %} {{ stats.today_events }} today {% endif %}
Weekly Review
Your week at a glance
{% if urgent_count > 0 %} {{ urgent_count }} {% endif %}
Nudges
Items need attention
Timeline
Activity across everything
Search
Find anything
{% if 'calendar' in modules %}

Today

{{ today_formatted }} {{ today_events | length }} events
{% if today_events %}
{% for event in today_events %}

{{ event.start_formatted }}

{{ event.duration }}

{{ event.title }}

{% if event.is_next %}Next up{% endif %} {% if event.is_past %}{% endif %}
{% if event.context_line %}

{{ event.context_line }}

{% endif %}
{% endfor %}
{% else %}

No meetings today

{% endif %} {% if tomorrow_events %}

Tomorrow

{% for event in tomorrow_events %}
{{ event.start_formatted }} {{ event.title }}
{% endfor %}
{% endif %}
{% endif %} {% if 'gmail' in modules %}

Inbox

{% if unread_count %} {{ unread_count }} unread {% endif %}
{% if needs_response %}

Needs Response

{% for thread in needs_response %}
{{ thread.from_name[:2] | upper if thread.from_name else '?' }}

{% if thread.contact_name %}{{ thread.contact_name }}{% else %}{{ thread.from_name }}{% endif %}

{{ thread.subject }}

{{ thread.received_at_relative }}

{% endfor %}
{% endif %} {% if recent_threads %}

Recent

{% for thread in recent_threads %}
{{ thread.from_name[:2] | upper if thread.from_name else '?' }}

{{ thread.subject }}

{{ thread.snippet }}

{{ thread.received_at_relative }}
{% endfor %} {% elif not needs_response %}

Inbox clear โ€” no unread emails

{% endif %}
{% endif %} {% if 'project-tracker' in modules %}

Active Projects

{% if active_projects %} {% for p in active_projects %} {% endfor %}
Project Client Status
{{ p.name }} {{ p.client_name or 'โ€”' }} {% with status=p.status %}{% include "components/status_badge.html" %}{% endwith %}
{% else %} {% with icon='folder', message='No active projects', hint='Tell me about a project to get started' %}{% include "components/empty_state.html" %}{% endwith %} {% endif %}

Tasks

{% if task_stats %}
{% for s, count in task_stats.items() %}

{{ count }}

{{ s | replace('_', ' ') | title }}

{% endfor %}
{% endif %} {% if overdue_tasks %}

Overdue

{% for t in overdue_tasks %}
{{ t.title }} {{ t.project_name }}
{% endfor %}
{% endif %}
{% endif %}

Contacts

{% if recent_contacts %}
{% for c in recent_contacts %}
{{ c.name[:2] | upper }}
{% if c.entity_page %} {{ c.name }} {% else %}

{{ c.name }}

{% endif %}

{{ c.company or '' }}{{ ' ยท ' if c.company and c.role else '' }}{{ c.role or '' }}

{% endfor %}
{% else %} {% with icon='users', message='No contacts yet', hint='Tell me about someone to add your first contact' %}{% include "components/empty_state.html" %}{% endwith %} {% endif %}
{% if 'crm' in modules %}

Follow-ups

{% if follow_ups %}
{% for fu in follow_ups %}

{{ fu.contact_name }}

{{ fu.reason }}

{{ fu.due_date_relative }}
{% endfor %}
{% else %} {% with icon='clock', message='No pending follow-ups', hint='' %}{% include "components/empty_state.html" %}{% endwith %} {% endif %}
{% endif %}

Recent Activity

{% if activity %}
{% for entry in activity %}

{{ entry.action | replace('_', ' ') | title }} {{ entry.entity_name or '' }}

{% if entry.details %}

{{ entry.details }}

{% endif %}

{{ entry.created_at_relative }}

{% endfor %}
{% else %} {% with icon='activity', message='No activity yet', hint='Start by adding a contact or project' %}{% include "components/empty_state.html" %}{% endwith %} {% endif %}
{% if not google_connected %}

Connect Google

See your email and calendar here. Say "connect my Google account" to get started.

{% endif %} {% endblock %}