• Joined on 2026-01-29
mAi opened issue m/postcards#19 2026-06-17 08:43:07 +00:00
feat: admin overview of all cards (password-gated)
mAi opened issue m/postcards#18 2026-06-17 08:39:18 +00:00
feat: card-level max-views (per-card view counter) — follow-up to #14
mAi commented on issue m/postcards#14 2026-06-17 08:39:15 +00:00
feat: card-level expiration (apply to the card, not just the custom link)

Merged & deployed — card-level expiration live on sendmy.cards

Merged 5efd624 (merge bc81dc4), deployed. Migration 008 applied cleanly on prod (slug_valid_untilvalid_until, app…

mAi commented on issue m/postcards#14 2026-06-17 08:35:59 +00:00
feat: card-level expiration (apply to the card, not just the custom link)

#14 card-level expiration — done (shift-1)

Expiration is now a card-level property, settable on any card (no custom-link requirement), enforced server-side at /c/{token}.

Commit…

mAi commented on issue m/postcards#13 2026-06-17 08:23:01 +00:00
BUG: compose layout regressions from #12 (margins, section headers bleed, gültig-bis/max-aufrufe misaligned)

Merged & deployed — layout regressions fixed

Merged 620069e (merge e8d6df3), deployed. CSS-only (style.css, +30/-7): section-header bleed fixed, margins consistent, „Gültig bis“ +…

mAi commented on issue m/postcards#13 2026-06-17 08:16:28 +00:00
BUG: compose layout regressions from #12 (margins, section headers bleed, gültig-bis/max-aufrufe misaligned)

Fixed — compose layout regressions (#13)

Reproduced all three issues with headless-chrome screenshots of the rendered compose form at 375 px (mobile) and 900 px (desktop), then fixed…

mAi opened issue m/postcards#17 2026-06-17 08:15:02 +00:00
BUG/feat: own favicon (💌) — currently shows Shlink's
mAi commented on issue m/postcards#14 2026-06-17 08:13:38 +00:00
feat: card-level expiration (apply to the card, not just the custom link)

m's call (PWA): max-views also card-level, same as expiration — not slug-bound. So #14 covers BOTH valid_until and max_visits at card level (enforced on /c/{token}), available on any…

mAi opened issue m/postcards#16 2026-06-17 08:13:38 +00:00
BUG: changing occasion resets the chosen theme (should not)
mAi opened issue m/postcards#15 2026-06-17 08:07:41 +00:00
feat: live card preview in compose (at the bottom)
mAi opened issue m/postcards#14 2026-06-17 08:07:41 +00:00
feat: card-level expiration (apply to the card, not just the custom link)
mAi opened issue m/postcards#13 2026-06-17 08:06:12 +00:00
BUG: compose layout regressions from #12 (margins, section headers bleed, gültig-bis/max-aufrufe misaligned)
mAi commented on issue m/postcards#12 2026-06-16 18:05:07 +00:00
UX: unify media upload, clearer to/from, field order + equal buttons (compose polish)

Merged & deployed — compose UX polish live on sendmy.cards

Merged 8e931d6 (merge 9852264), deployed. Verified live:

  • Unified media picker: one field, 1 PNG + 1 MP4 uploaded…
mAi commented on issue m/postcards#12 2026-06-16 18:00:31 +00:00
UX: unify media upload, clearer to/from, field order + equal buttons (compose polish)

#12 done — compose UX polish (shift-1)

Branch mai/hermes/issue-12-ux-unify-media, commit 8e931d6. Not…

mAi opened issue m/postcards#12 2026-06-16 17:47:28 +00:00
UX: unify media upload, clearer to/from, field order + equal buttons (compose polish)
mAi commented on issue m/postcards#11 2026-06-16 16:47:05 +00:00
feat: optional password protection per card

Merged & deployed — password protection live on sendmy.cards

Merged 2118ace (merge 1e108ed), deployed. Migration 007 applied. Set a stable CARD_SESSION_SECRET in the Dokploy env (so…

mAi commented on issue m/postcards#11 2026-06-16 16:38:56 +00:00
feat: optional password protection per card

#11 done — optional per-card password protection

Shipped on mai/hermes/issue-11-feat-optional (not yet merged/deployed — otto-head does that).

Commit: https://mgit.msbls.de/m/postcards…

mAi commented on issue m/postcards#10 2026-06-16 16:27:58 +00:00
feat: broaden from postcards to greeting cards (Grußkarten) — rebrand + card types

Merged & deployed — greeting-card broadening live on sendmy.cards

Merged a325d01 (merge 2354e70), deployed. Migration 006 applied. Verified live: landing now reads Grußkarte,…

mAi commented on issue m/postcards#10 2026-06-16 16:25:40 +00:00
feat: broaden from postcards to greeting cards (Grußkarten) — rebrand + card types

#10 done — greeting-card broadening, depth (b)+Custom

Built to m's PWA decision (2026-06-16): **occasion selector (presets + free-text custom) driving copy/default-theme, persisted +…

mAi commented on issue m/postcards#9 2026-06-16 16:13:14 +00:00
feat: short-link lifecycle — duplicates, expiry, max-views (builds on #8)

Merged & deployed — lifecycle live on sendmy.cards

Merged bd4ffde (merge 2365076), deployed. Migration 005 applied. Verified live e2e on sendmy.cards: a max_visits=1 slug → **1st…