npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

solid-vcard-business-card

v1.0.7

Published

Native Web component that renders a Solid vCard profile

Readme

vCard Business Card for Solid

A lightweight, elegant web component that renders a beautiful business card from a Solid Pod vCard profile. This component automatically fetches and displays profile information stored in your Solid Pod using the vCard vocabulary.

License npm

Features

  • 🎨 Elegant Design - Premium business card styling with animated golden gradients
  • 🔒 Solid Pod Integration - Fetches profile data directly from Solid Pods
  • 📇 vCard Standard - Uses the standard vCard vocabulary

Installation

npm install solid-vcard-business-card

Quick Start

In a JavaScript Module

import 'solid-vcard-business-card';

Then use the component in your HTML:

<solid-business-card src="https://your-pod.solidcommunity.net/profile/card#me"></solid-business-card>

In HTML (with bundler)

<!DOCTYPE html>
<html>
<head>
    <title>My Business Card</title>
</head>
<body>
    <solid-business-card src="https://your-pod.solidcommunity.net/profile/card#me"></solid-business-card>
    
    <script type="module">
        import 'solid-vcard-business-card';
    </script>
</body>
</html>

Vue 3 Example

main.js or main.ts:

import { createApp } from 'vue';
import App from './App.vue';
import 'solid-vcard-business-card';

const app = createApp(App);

// Configure Vue to recognize the custom element
app.config.compilerOptions.isCustomElement = (tag) => tag === 'solid-business-card';

app.mount('#app');

Component:

<script setup>
import { ref } from 'vue';

const profileUrl = ref('https://your-pod.solidcommunity.net/profile/card#me');
</script>

<template>
  <solid-business-card :src="profileUrl"></solid-business-card>
</template>

React Example

index.js or main.tsx:

import React from 'react';
import ReactDOM from 'react-dom/client';
import App from './App';
import 'solid-vcard-business-card'; // Register the web component

const root = ReactDOM.createRoot(document.getElementById('root'));
root.render(
  <React.StrictMode>
    <App />
  </React.StrictMode>
);

App.jsx:


function App() {
  return (
    <solid-business-card 
      src="https://your-pod.solidcommunity.net/profile/card#me"
    />
  );
}

export default App;

Profile Requirements

Your Solid Pod profile must use the vCard vocabulary with the following fields:

Required Fields

  • Full Name (vcard:fn) - Your full name

Optional Fields

  • Email (vcard:hasEmail) - Your email address
  • Birthday (vcard:bday) - Your date of birth
  • Photo (vcard:hasPhoto) - URL to your profile picture

Example Profile Structure

PREFIX vcard: <http://www.w3.org/2006/vcard/ns#>
PREFIX rdfa: <http://www.w3.org/ns/rdfa#>

<https://id.inrupt.com/example> a vcard:Individual;
   vcard:hasEmail <mailto:[email protected]>;
   vcard:fn "Example User";
   vcard:bday "17-03-2001";
   vcard:hasPhoto <image url> .

Note: Ensure your profile has public read permissions so the component can fetch it.

Browser Support

This component uses native Web Components (Custom Elements) and is supported in:

  • Chrome/Edge 67+
  • Firefox 63+
  • Safari 10.1+
  • Opera 54+

Error Handling

The component displays user-friendly error messages if:

  • The profile URL is invalid or unreachable
  • The profile doesn't contain vCard data
  • Network issues occur

Privacy & Security

  • The component only reads public profile data
  • No authentication is required
  • No data is stored or transmitted to third parties
  • All communication is direct between the browser and the Solid Pod

Dependencies

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

Links

Changelog

See CHANGELOG.md for version history.


Made with ❤️ for the Solid community