AddThisFeature

Digital Business Card

Give every member a shareable card page with their photo, links, and save-to-contacts.

moderate Social & Sharing

What it adds

A per-member public card page with photo, role, links, and a download that imports into a phone's contacts.

What your agent is told to do

5
  1. 1

    Build this as a presentation of the app's existing Public Profile Pages, not a second profile. One record, two layouts. A member who updates their title should not have to update it twice.

  2. 2

    Take the photo from Avatar Upload rather than adding a new image field, and reuse the crop and compression the app already applies so a card photo is not a full-resolution original served to every visitor.

  3. 3

    Give each card a save-to-contacts download containing the fields the member has chosen to publish, and nothing else. Everything on the card and nothing beyond it.

  4. 4

    Let the member decide field by field what appears publicly, and default to showing very little. A card is a public page indexed by search engines, and people will put a personal phone number on it without thinking about that.

  5. 5

    Do not build a card designer. Ship one well-made layout that adapts to how much detail a member has filled in, and reuse the app's Social Sharing for the preview image rather than adding a separate one.

Edge cases it handles

8
  • The contact file must import cleanly on both major mobile platforms, which disagree about how names, photos, and multiple links are encoded. Test an actual import on each rather than assuming a well-formed file is enough.
  • Many members have no photo, no title, or only one link. The layout must stay balanced when most fields are empty, using initials in place of a photo instead of a broken image or a large blank area.
  • Unpublishing a card cannot recall the copies already saved to people's phones. Serve a plain page saying the card is no longer available rather than a 404, and keep the URL stable so an old link explains itself.
  • The share preview image is usually seen as a thumbnail in a message. Keep the name legible at that size and do not rely on fine detail, small logos, or low-contrast text that disappears when scaled down.
  • Decide what happens when a member leaves the organisation. Silently deleting the card breaks every link they handed out; the safer default is to unpublish and show a neutral message, with the member's personal details removed.
  • A public card page is scraped. Do not expose an email address as plain machine-readable text unless the member opted in knowing that, and apply the app's existing Rate Limiting to the contact download.
  • A card is opened almost entirely on phones, often on poor connections. It must render usefully before the photo loads and must not depend on a heavy script to show a name and a phone number.
  • Links a member adds are user-generated and public. Run them through the same URL validation the app applies elsewhere so a card cannot be used to launder a hostile destination under your domain.

Definition of done

9
  • Each member's card renders from the existing profile record with no duplicated fields.
  • The save-to-contacts download imports correctly on both major mobile platforms.
  • Cards with missing photos, titles, or links stay visually balanced.
  • Members control field by field what is published, defaulting to minimal disclosure.
  • An unpublished card serves a stable explanatory page rather than an error.
  • The share preview stays legible at thumbnail size.
  • Departed members' cards follow a defined, documented behaviour.
  • The feature matches the existing design system.
  • No existing functionality is broken.

Related features

How it works

  1. 1

    Copy the link

    Grab the Markdown instruction URL for this feature.

  2. 2

    Give it to your AI

    Paste it into Claude Code, Cursor, v0, Lovable — whatever you build with.

  3. 3

    It inspects, then implements

    Your agent reads your existing app first, then adds the feature to fit it.

Works with your stack

These instructions are written to adapt. They tell the agent to detect your framework, match your existing design system, and reuse what you already have — rather than assuming a particular stack.

Need it tighter than that? Customize the feature and tell it exactly what you're running.