Profile management

Every setting on your public profile — links, bio, card themes, visibility, and Open Graph.

Your profile URL

Every account gets a permanent public URL at belcard.app/p/username. This is the URL written to your NFC chip and the one you share digitally. Your username is generated from your name at signup (e.g. aayush4821) and can be changed once from Dashboard → Settings → Account.

⚠️ Changing your username breaks your old URL and means your physical card will need to be replaced, since the chip stores the old URL. Change your username before activating your physical card if possible.

Links are the primary content of your profile. Visitors see them as tappable rows below your card. Go to Dashboard → Profile → Links tab.

Supported link types

TypeFormatDisplayed as
linkedinFull HTTPS URLLinkedIn icon + your label
twitterFull HTTPS URLTwitter/X icon + your label
githubFull HTTPS URLGitHub icon + your label
emailEmail addressMail icon — opens mailto:
phonePhone number (e.g. +977 98XXXXXXXX)Phone icon — opens tel:
urlAny HTTPS URLLink icon + your custom label

Limits

PlanMax links
Free free5
Pro / Lifetime pro20

Reordering

Drag any link row by the handle on its left side. The order here is exactly what visitors see on your profile. Put your most important link first.

Link click tracking

Every click on a link fires a link_click analytics event, tagged with the link type (e.g. linkedin). You can see which links get the most clicks in Dashboard → Analytics → Top clicked links. Clicks are tracked via navigator.sendBeacon — the navigation to the link is never delayed.

Card themes

Go to Dashboard → Card (or the Card tab in the Profile editor). The theme controls the gradient background of your 3D card viewer on your public profile.

ThemeGradientAccent colourCharacter
Void#0a0a0a → #121212Blue #007AFFDeep black. Timeless default.
Obsidian#1a1a2e → #16213ePurple #9333EADark navy with purple depth.
Aurora#0f3460 → #533483Green #34C759Deep teal-violet. Bold.
Solar#2d1b00 → #1a0a00Amber #FF9F0ADark amber. Warm and distinctive.

The live preview on the right side of the Card editor shows your card with the selected theme in real time, including your current display name, tagline, and link pills. Tilt your mouse over it to see the 3D effect.

The card also uses a gradient border shell — a 1px outer wrapper with a diagonal gradient, making the card edge look like premium depth rather than a flat stroke.

Bio

The bio is a short free-text paragraph shown below your card on your public profile. Maximum 400 characters. Use it for a summary of who you are, your expertise, or a call-to-action. Leave it blank if you prefer a minimal look — it's optional.

Tagline

The tagline appears below your name on your profile and also on the card itself in monospace font (e.g. Product Designer · Kathmandu). Maximum 120 characters. It's visible in the NFC card viewer and in your Open Graph social preview image.

Profile visibility

Your profile is public by default. To hide it temporarily, go to Dashboard → Settings → Profile visibility → Hidden. While hidden, anyone who taps your card or visits your URL sees a "profile unavailable" message. Your analytics continue to record these visits as profile_view events.

Open Graph social previews

When your profile URL is shared on WhatsApp, LinkedIn, Twitter, or any platform that reads Open Graph tags, a rich preview card is automatically generated. This image is produced at the Cloudflare edge by a Worker that:

  1. Checks R2 for a cached version (valid for 24 hours).
  2. If missing, queries your profile from D1 and renders an SVG containing your name, tagline, username, card theme accent colour, and the Belcard wordmark.
  3. Stores the result in R2 and returns it as a 1200×630px image.

No action is needed from you. The preview updates automatically within 24 hours of any profile change.

Contact card (.vcf)

Visitors on your public profile can tap Save contact to download a .vcf file and add you directly to their phone's contacts app. The vCard includes your display name, tagline, email, phone number, and website (whichever of these you have as links). Each download fires a contact_save analytics event.