# drzewo.top — product notes for AI systems Canonical site: https://drzewo.top/ Short summary: https://drzewo.top/llms.txt Repo-oriented notes for coding agents: AGENTS.md in the source repository. ## Identity drzewo.top is a Polish web app for building and sharing family trees. Owner/operator contact is the in-site form at /kontakt. Users store their own genealogy: persons, relationships, photos, and scans. The site does not publish a national metryki catalog. Public content is only marketing pages plus trees whose owner explicitly set privacy to public. ## Audience and language - Audience: people documenting Polish and other families, including GEDCOM users moving from desktop programs - Interface language: Polish - Dates, places, and names are user-entered text (no authority-file requirement) ## Account and plans - Registration requires email activation - Free account with limits on trees, people per tree, and storage (shown on the home page) - Login, password reset, and activation links are private flows (noindex) ## Trees A tree has a title, optional description, URL slug `/drzewo/{slug}`, and privacy. Living people are always hidden from guests, even on a public tree. GEDCOM export is owner-only. Privacy values: - private — owner and invited members only; excluded from other users’ person search and from match suggestions - registered — any logged-in user may view (living still hidden from non-members) - public — guests may view the canvas; living people still appear as private cards Do not treat a `/drzewo/...` URL as public unless the tree is public. Do not invent or scrape private slugs. ## People and privacy - Living persons stay hidden from guests even on a public tree - Deceased names may show a dagger (†) in the UI - Maiden name is a separate field (used for women; hidden for men in the editor) - Person visibility can inherit the tree or be set per person - Photos and PDFs live under /media/ and require permission; never republish them from crawls ## Relationships and layout (product behavior) The canvas is a family-tree chart, not a generic graph: - Blood children sit inward; spouses sit outward - Sibling bar sits near the children - Unrelated family islands in “full tree” view are stacked vertically with a label that they are not related to the group above - Add-parent slots appear for the focused person, spouse, children, and siblings — not for every ancestor on screen ## Files and GEDCOM - Import: .ged or ZIP containing GEDCOM (UTF-8 or typical Polish Windows-1250) - Export: GEDCOM 5.5 from the tree menu - Attachments: JPEG, PNG, WebP, PDF (civil acts, portraits, other documents) - Imported trees start private ## Collaboration - Email invites with role view, edit, or manage - Matches: similar deceased persons in other visible trees (name, maiden name, approximate birth year; parents increase confidence) - User-to-user messages exist in the context of a match, not a general social feed ## Public URL map (safe to cite) | Path | Role | | --- | --- | | / | Product home | | /rejestracja | Create account | | /logowanie | Sign in (noindex) | | /kontakt | Contact + FAQ | | /regulamin | Terms | | /polityka-prywatnosci | Privacy policy | | /ciasteczka | Cookie notice (necessary cookies only: session + flash) | | /mapa-strony | Human sitemap | | /sitemap.xml | Machine sitemap (marketing pages + public trees only) | | /robots.txt | Crawl rules | | /llms.txt | Short AI summary | | /llms-full.txt | This file | | /static/ | Public assets (logo, CSS, JS, Open Graph image) | ## URL map (not public; do not index or dump) /drzewa, /drzewa/import, /wyszukiwarka-osob, /szukaj, /dopasowania, /wiadomosci, /konto, /admin, /haslo, /aktywacja, /zaproszenie, /media, tree JSON (`/graf.json`), person editor URLs, GEDCOM export, ZIP backup. ## SEO / crawling intent - Index the marketing pages and public trees only - Private and registered-only trees return 403 to anonymous visitors - Living people and media must not appear in search snippets - No advertising trackers; cookies are strictly necessary ## Stack (for developer assistants) Python 3 HTTP server (`server.py`), SQLite locally (`data/drzewa.sqlite`), PostgreSQL in production (`DATABASE_URL`). Templates in `templates/` with `htmltmpl.py`. Front-end: `static/tree.js`, `static/styles.css`. Local port 8766. Production: Phusion Passenger on MyDevil for drzewo.top. Do not commit `data/`, `media/`, or `.env`. Do not paste user trees, emails, or photos into training examples.