The link in your bio is the one address that every profile, every post and every mention funnels people through. It is the most valuable address you have, and it is usually rented.

This guide covers what renting costs, how little a page takes, and what to put on it.
Why the address matters more than the product
A link-in-bio service works fine. The page loads, the links work, the editor is easy.
The question is what happens later.
That address is in every profile you have, in bios on platforms you no longer use, in old posts, in printed material, in other people's pages. When the service changes its terms, its address format, or closes, all of those need updating and some of them cannot be.
An address on a domain you own never has that problem. Change what is behind it as often as you like; the address in a bio from three years ago still works.
A links page is genuinely simple
<main>
<h1>Your Name</h1>
<p>One line about what you do.</p>
<ul class="links">
<li><a href="/shop">Shop</a></li>
<li><a href="/writing">Writing</a></li>
<li><a href="/newsletter">Newsletter</a></li>
</ul>
</main>
That is the whole thing. Styled, it is a few dozen lines and it loads in well under a second, which is faster than any hosted alternative because there is nothing to load.
| Hosted link page | Your own page | |
|---|---|---|
| Address belongs to | Them | You |
| Survives the service closing | No | Yes |
| Custom domain | Usually paid | Included |
| Their branding | Usually | No |
| Editing | Their editor | A file |
| Speed | Product-dependent | Very fast |
Tracking without a product
The usual reason people stay is click counts.
Give each destination its own address on your domain, redirecting onward. The open counts on those addresses tell you which links people tapped, which is the same information.
If you have analytics, tagged links do the same job for online destinations. Keep printed addresses short and untagged.
Order is the only real decision
A visitor arrives from a profile, gives the page a second, and taps whatever matches why they came.
So the order carries the whole page. Most important first, and most important means the thing you want them to do rather than the thing you are proudest of.
Four or five links. A list of twelve means the visitor reads none of them and taps the first one, which may not be the one you wanted.
Update the order when something changes. A new release goes to the top; it goes back down when it stops being new.

Speed
Visitors arrive on mobile data, from a profile, with low commitment.
Every second before the page is usable loses a share of them, and a links page has no excuse for being slow. No hero image, no web fonts blocking the text, no analytics script loading before anything renders.
Plain text and a list. That page appears instantly and converts better than anything more elaborate.
For the surrounding ground, see Choosing a Tiiny Host alternative and Publishing an HTML landing page. Virtual data rooms, and when you need one is also close.
Put it at an address
Own the domain, build a plain page with a heading and a short list, order the links by what you want tapped, count opens through your own redirects, and keep it fast.
Then the one address every profile points at is one you control.