TL;DR: Tapvio is a free, open-source Linktree alternative by Muhammad Afzal Kalwar. Every page is static HTML with structured data, a sitemap and IndexNow, so Google and Bing can index it. No ads, no tracking, no sign-up.
Most link-in-bio pages are built for Instagram, not for Google. Some ship with a noindex tag, many render through JavaScript, and all of them live on someone else's domain. If a client searches your name, your link page often isn't what they find.
So I built Tapvio: a free, open-source link-in-bio tool where every page is a static HTML page with full SEO markup. No ads, no tracking, no sign-up.
Here's mine: https://mafzalkalwardev.github.io/tapvio/mafzalkalwardev/
How does Tapvio work?
There's no database and no account system. Each page is one small YAML file in the GitHub repo:
username: ali-khan
name: "Ali Khan"
headline: "Brand designer"
style:
theme: tiles
mode: auto
socials:
- { label: "Instagram", url: "https://instagram.com/alikhan" }
sections:
- title: "Work with me"
links:
- { title: "Portfolio", url: "https://alikhan.design", featured: true }
profiles/you.yml ──► GitHub Actions ──► build.py ──► dist/ ──► GitHub Pages ──► IndexNow ping
- You fill in the visual builder (live phone preview) and click Publish on GitHub. That opens a pull request adding your file.
- CI runs
python build.py --checkand reports any problems on the PR. - Once merged, the site is built, deployed to GitHub Pages and pinged to IndexNow.
You don't need to write code, and your page is a plain file you own. Fork it or self-host it any time.
What makes a Tapvio page indexable by Google?
- Server-rendered HTML, no
noindex, a unique title, description and canonical URL on every page - JSON-LD structured data:
ProfilePageandPersonwithsameAslinks to every profile you own, plusworksFor,knowsAboutandBreadcrumbList - An auto-generated 1200×630 share image per page
-
sitemap.xmlwith image entries and git-basedlastmod, plusrobots.txt, an Atom feed andllms.txt - IndexNow ping after every deploy (Bing, Yandex, Seznam, Naver, Yep)
- A homepage directory linking every profile so crawlers find new pages
- Do-follow links for verified profiles,
ugc nofollowfor everyone else to discourage spam
The sameAs list matters most to me. It tells search engines that your GitHub, LinkedIn, Upwork and Dev.to accounts all belong to the same person.
Nine real themes
Each theme has its own typography and layout, not just a different colour: Résumé, Business card, Tiles, Studio, Contents, Terminal (an Ubuntu terminal), Desktop 95, Bold and Cover. You also get light, dark or automatic mode, an accent colour, ten fonts, a cover image and a choice of photo shape.
Small things for visitors
- Save contact: a vCard is generated whenever you add an email, phone or WhatsApp link
- Share button, link search, keyboard navigation,
prefers-reduced-motionsupport - Each page is about 5–8 KB compressed, and the page itself loads no JavaScript framework
Can I self-host Tapvio?
pip install -r requirements.txt
python build.py --check
TAPVIO_SITE_URL=http://localhost:8000 python build.py --no-og
python -m http.server -d dist 8000
To deploy, fork the repo, set Pages to GitHub Actions, edit config.yml and push.
Honest limits
- New pages go live when a maintainer merges the pull request, so it isn't instant.
- A link page alone won't rank for competitive terms. What it can do is rank for your name and connect your profiles.
FAQ
Is Tapvio free?
Yes. It's free and open source under the MIT licence, with no ads and no tracking.
Is Tapvio a Linktree alternative?
Yes. It's a link-in-bio page builder, but each page is static HTML built for search engines, with JSON-LD structured data, a sitemap and a canonical URL.
Do I need to code to make a Tapvio page?
No. You fill in the visual builder and click Publish on GitHub, which opens a pull request with your profile file.
Can Google index my Tapvio page?
Yes. Pages have no noindex tag, they're listed in sitemap.xml, and they're pinged to IndexNow after each deploy.
Try it
- Make a page: https://mafzalkalwardev.github.io/tapvio/create/
- Source code (MIT): https://github.com/mafzalkalwardev/tapvio
- Guide: https://mafzalkalwardev.github.io/tapvio/guide/
Feedback and pull requests are welcome. If you find a bug, open an issue.


Top comments (0)