Self-hosted virtual business card platform

Share a profile, not a PDF attachment.

Dataveli vCard is a vanilla PHP virtual business card system for teams that want clean public card URLs, branded profile design, QR sharing, analytics, and admin-side user control without framework overhead.

  • Vanilla PHP, HTML, CSS, and JavaScript with PDO-backed data access
  • Public card URLs like /user-cards/firstname.lastname/ with analytics tracking
  • QR generation, PDF export, clipboard actions, and admin-side user management
Self hosted Vanilla stack URL-based cards
Public card Brand-ready contact profile
Dashboard Edit card, links, and media
Vanilla PHP with no framework dependency
PDO prepared statements
QR generation and vCard sharing
Analytics with Chart.js and exports
Admin panel for user management
Clean slug-based public URLs
System features

Everything needed for a polished digital business card workflow.

From public card publishing to admin analytics, vCard is built as a full application rather than a single profile page generator.

01

Public card pages

Each user gets a clean URL, public profile, and branded virtual card rendering for straightforward sharing.

02

Card editor

Update content, social links, templates, backgrounds, color systems, and media from the central dashboard.

03

QR and download tools

Generate QR codes, support vCard downloads, and make contact sharing fast on both mobile and desktop.

Architecture

Vanilla PHP structure with explicit files and predictable flow.

Core stack PHP + PDO + plain frontend
Backend

Vanilla PHP 8.x pages, shared includes, session-based auth, and PDO prepared statements across the system.

Frontend

Plain HTML, CSS, and JavaScript with jQuery, clipboard.js, and Chart.js for utility features rather than a framework shell.

Routing model

Apache rewrite rules and slug-based card paths keep public links clean while the editor and admin stay session-protected.

Structure worth understanding

  1. `dashboard.php` is the operational center for card editing, template seeding, uploads, and preview logic.
  2. Shared includes handle config, PDO connection, auth helpers, themes, and common layout fragments.
  3. Admin flows sit under `/admin/`, while public cards resolve through rewrite-driven slug URLs.
  4. Uploads and generated user-card directories are runtime content, not files to hand-edit.
Public identity Slug-based card URLs

Profiles publish to readable URLs and can also be accessed through the generated user-card directory structure.

Admin model Session + role checks

Login regenerates session IDs and admin privileges flow from the role session value and helper functions.

Presentation model Template-driven cards

Built-in templates, theme preference, and user-managed visuals shape the public-facing card experience.

Workflow

From admin registration to live public card in a short pipeline.

01

Create user

Admins register a new user, credentials are stored with bcrypt, and the session model stays role-driven.

02

Edit the card

Dashboard tools manage full name, company, links, template selection, colors, media, and share-ready content.

03

Publish the slug

Each card resolves to a clean public URL and can be distributed through direct links, QR codes, or saved contact data.

04

Measure and export

Track views and clicks, then export reporting data through the analytics and export tools when needed.

Admin + security

Operationally simple, with explicit patterns worth respecting.

Prepared queries and sanitization

PDO prepared statements are standard, and incoming data is cleaned through helper sanitization patterns before storage or output.

Uploads and card assets

Images and overlays use controlled upload handlers, size limits, unique filenames, and basic SVG safety checks.

Operational caveats

Monolithic dashboard logic, duplicate sidebars, legacy files, and missing CSRF are the current technical debt areas to treat carefully.

FAQ

Questions teams ask before they ship cards publicly.

Does it require a PHP framework?

No. The system is built with vanilla PHP, shared includes, and plain frontend assets rather than a framework runtime.

Can each user manage a branded public card?

Yes. Card data, template choice, colors, media, and social links are all stored in the card record and rendered publicly through the card view flow.

How are cards shared?

Cards can be shared via clean URLs, QR codes, and downloadable contact information, with clipboard and QR utilities supporting quick handoff.

Is there an admin layer?

Yes. The `/admin/` area provides user management, and registration is admin-only rather than self-service.

Ready to publish

Put every contact profile behind a URL you actually want to share.

Dataveli vCard turns staff identity, QR sharing, public profile pages, and analytics into one self-hosted system.