<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Kevin Wielander</title>
    <description>The latest articles on DEV Community by Kevin Wielander (@kevinwielander).</description>
    <link>https://dev.to/kevinwielander</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3887823%2F2b888fa5-767f-4103-b870-58689c2f61f8.png</url>
      <title>DEV Community: Kevin Wielander</title>
      <link>https://dev.to/kevinwielander</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/kevinwielander"/>
    <language>en</language>
    <item>
      <title>Every digital business card tool sucks, so I built my own and open-sourced it</title>
      <dc:creator>Kevin Wielander</dc:creator>
      <pubDate>Sun, 19 Apr 2026 20:14:44 +0000</pubDate>
      <link>https://dev.to/kevinwielander/every-digital-business-card-tool-sucks-so-i-built-my-own-and-open-sourced-it-2m32</link>
      <guid>https://dev.to/kevinwielander/every-digital-business-card-tool-sucks-so-i-built-my-own-and-open-sourced-it-2m32</guid>
      <description>&lt;p&gt;I needed digital business cards for a small team. Should be simple, right?&lt;/p&gt;

&lt;p&gt;I spent way too long looking at existing tools before I snapped and just built my own. Here's why.&lt;/p&gt;

&lt;h2&gt;
  
  
  The problem
&lt;/h2&gt;

&lt;p&gt;Every tool I tried had at least one of these issues. Most had all of them.&lt;/p&gt;

&lt;h3&gt;
  
  
  They charge you per card. Per month.
&lt;/h3&gt;

&lt;p&gt;We're talking about a styled HTML page with your name and phone number on it. Some tools charge €2/card/month. For a team of 20, that's almost €500/year. For HTML.&lt;/p&gt;

&lt;p&gt;I get that companies need to make money, but this felt insulting.&lt;/p&gt;

&lt;h3&gt;
  
  
  Your data is trapped
&lt;/h3&gt;

&lt;p&gt;Try exporting your cards from any of these platforms. You'll get a PDF if you're lucky. Your actual design, your team data, your templates locked in. Want to switch tools? Start over.&lt;/p&gt;

&lt;h3&gt;
  
  
  The "designer" is a form
&lt;/h3&gt;

&lt;p&gt;Every single one advertises a "card designer." You click on it and it's a form. Pick a template, change the font color, type your name. Done. That's not designing, that's filling out a contact form with extra&lt;br&gt;
steps.&lt;/p&gt;

&lt;p&gt;No layers. No free positioning. No snapping. You can't even overlap two elements. Want to put your logo at an angle? Tough luck.&lt;/p&gt;

&lt;h3&gt;
  
  
  Individual OR team. Never both.
&lt;/h3&gt;

&lt;p&gt;Some tools are for making one card for yourself. Others are enterprise team management platforms with 50-seat minimums. Nothing in between for a small team that just wants cards for 5-10 people without an&lt;br&gt;
enterprise sales call.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I built
&lt;/h2&gt;

&lt;p&gt;I built &lt;a href="https://owncardly.com" rel="noopener noreferrer"&gt;OwnCardly&lt;/a&gt;. It's free, open-source, MIT licensed.&lt;/p&gt;

&lt;p&gt;No premium tier. No "community edition" with half the features ripped out. No "contact us for pricing." Just the whole thing, free, do whatever you want with it.&lt;/p&gt;

&lt;h3&gt;
  
  
  An actual designer
&lt;/h3&gt;

&lt;p&gt;I built a real drag-and-drop canvas. Not a form pretending to be a designer.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Layers panel — reorder, group, lock, hide elements&lt;/li&gt;
&lt;li&gt;Snap-to-guide alignment — center, edges, smart guides&lt;/li&gt;
&lt;li&gt;Undo/redo with full history&lt;/li&gt;
&lt;li&gt;Text, images, shapes, icons, QR codes — all freely positionable&lt;/li&gt;
&lt;li&gt;18 Google Fonts with full weight support&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It's not Figma, but it's a hell of a lot closer to Figma than anything else in this space.&lt;/p&gt;

&lt;h3&gt;
  
  
  Works for one person or a whole team
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Solo use:&lt;/strong&gt; Go to the site, pick a template, fill in your info, download your card. 60 seconds, no account needed.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Team use:&lt;/strong&gt; Create a company, add people (or CSV import your entire team), assign a template, bulk generate cards for everyone. Done.&lt;/p&gt;

&lt;h3&gt;
  
  
  Your data, your cards
&lt;/h3&gt;

&lt;p&gt;Exported cards are standalone HTML files. No JavaScript calling home, no external dependencies, no CDN. Open the file in a browser and it works. Offline. Forever.&lt;/p&gt;

&lt;p&gt;Self-host the whole thing with Docker if you want. Your data stays on your server.&lt;/p&gt;

&lt;h3&gt;
  
  
  No account needed to try
&lt;/h3&gt;

&lt;p&gt;Guest mode stores everything in localStorage. Play with the designer, create templates, try the whole app. If you decide to sign up later, your data migrates automatically.&lt;/p&gt;

&lt;h2&gt;
  
  
  Tech stack
&lt;/h2&gt;

&lt;p&gt;For anyone curious:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Next.js&lt;/strong&gt; with App Router&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Supabase&lt;/strong&gt; for database, auth, and file storage&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tailwind CSS&lt;/strong&gt; for styling&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;TypeScript&lt;/strong&gt; throughout&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;react-rnd&lt;/strong&gt; for drag-and-drop on the canvas&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Docker&lt;/strong&gt; for self-hosting&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Why open source
&lt;/h2&gt;

&lt;p&gt;I'm not trying to build a startup out of this. I had a problem, I solved it, and it felt wrong to charge for something this basic.&lt;/p&gt;

&lt;p&gt;The business model of "rent you your own contact information" never sat right with me. Business cards should be a solved problem, not a SaaS subscription.&lt;/p&gt;

&lt;p&gt;MIT license means you can fork it, modify it, self-host it, build a business on top of it — whatever you want. No strings.&lt;/p&gt;

&lt;h2&gt;
  
  
  Try it
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Live app:&lt;/strong&gt; &lt;a href="https://owncardly.com" rel="noopener noreferrer"&gt;owncardly.com&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Source code:&lt;/strong&gt; &lt;a href="https://github.com/kevinwielander/digital-business-cards" rel="noopener noreferrer"&gt;github.com/kevinwielander/digital-business-cards&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you find bugs, open an issue. I actually fix them.&lt;/p&gt;

&lt;p&gt;If you think the designer UX could be better, I'd love to hear how. That's where I spent the most time and I know it's still rough in spots.&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>nextjs</category>
      <category>webdev</category>
      <category>sideprojects</category>
    </item>
  </channel>
</rss>
