~netlandish/linktaco-blog

6cd0ebac3d5468da9f94a037f00b44c240d170b0 — Peter Sanchez 27 days ago be3c1c5
Added new post
A content/why-pinboard-falls-short-what-we-built-instead.md => content/why-pinboard-falls-short-what-we-built-instead.md +192 -0
@@ 0,0 1,192 @@
+++
title = 'Why Pinboard Falls Short and What We Built Instead'
date = 2025-02-11T06:00:00-06:00
lastmod = 2025-02-11T06:00:00-06:00
tags = ['pinboard', 'features']
summary = """Pinboard has long been a trusted social bookmarking tool, but over time, its limitations—such as product neglect, lack of collaboration features, and outdated infrastructure—became increasingly apparent. Many users feel it is no longer actively maintained, leaving them with broken functionality and an uncertain future. Given these issues, we built LinkTaco, a modern solution that not only addresses these shortcomings but also introduces enhanced collaboration, multiple groupings, and integrated link management services.

With LinkTaco, users can manage bookmarks, shorten URLs, create branded link pages, and leverage a powerful API—all in one place. While no tool is perfect, LinkTaco has provided the flexibility and reliability we needed, and we believe it can do the same for others looking for a more robust bookmarking and link management solution."""
description = """Pinboard's limitations, including product neglect and lack of collaboration, led us to build LinkTaco—a modern, flexible bookmarking and link management solution with custom domains, link shortening, collaboration tools, and a robust API."""
keywords = ['Pinboard alternative', 'Social bookmarking tool', 'Bookmark manager', 'Link management solution', 'Best bookmarking service', 'Pinboard vs LinkTaco', 'Save and organize links', 'Online link organizer', 'Collaborative bookmarking']
draft = false
+++

[Pinboard][] is one of the OGs of social bookmarking. Originally launched in 2009
by developer [Maciej Cegłowski][majec] because he felt that [Delicious][del]
had been mismanaged after Yahoo acquired it, Pinboard has been a beacon in the
world of social bookmarking. Designed with privacy in mind, this feature
appears to be valued among users according to the [tour page][]: "The site
caters to users who value privacy. Half of users have no public bookmarks."

Pinboard is a great product but we find it limited for our use cases. While
this post is **not** about bashing Pinboard, we do want to discuss why we felt we
needed to build LinkTaco instead of continuing to use Pinboard and trying to
bend it to our liking. Frankly, bending it just wasn't possible.

So let's get into some of the issues we have with Pinboard and how LinkTaco
solves them.

[pinboard]: https://pinboard.in
[majec]: https://en.wikipedia.org/wiki/Maciej_Ceg%C5%82owski
[del]: https://en.wikipedia.org/wiki/Delicious_(website)
[tour page]: https://pinboard.in/tour/
[open source]: https://code.netlandish.com/~netlandish/links

## Product rot

Majec himself, less than 2 months ago, said that he had neglected the product and
recently begun working to [update code from 2009-2011][2009 code]! Yes, 2009!
That was a bit of shock to read, but OK, maybe it wasn't fully necessary to
update a large part of the code base. Still, it definitely felt like technical
debt had accumulated for over a decade.

In many places when using the website things just wouldn't work. Links were
broken. Random errors occurred when using core functions (ie, saving notes).
API server was giving random Internal Server Errors for specific functions for
long periods of time.

We get it. Software is a never-ending project and there is always more to do.
But having paying customers unable to use the service for extended periods left
a bad taste in our mouths.

## Product abandonment

Many users [seem][ab1] [to][ab2] [believe][ab3] that it is no longer supported
or worth the small yearly fee due to lack of support and maintenance. Majec
would ignore support requests, and [some users claim][noreply] be fairly rude or
nonchalant when finally answering support requests. The general vibe, at least
on HN/Reddit/Fediverse/etc., seems to be that Pinboard is no longer a product
that should be used. Here are a [bunch of examples][bunch] from HN with just a
quick search.

Obviously this doesn't give much confidence to users like us who sort of depend
on bookmarking for our workflows.

[2009 code]: https://groups.google.com/g/pinboard-dev/c/_7S05k0nMwQ/m/N39QqWrCAgAJ
[ab1]: https://news.ycombinator.com/item?id=33398395
[ab2]: https://groups.google.com/g/pinboard-dev/c/1AHU0crTL3M/m/pret2Q1UAgAJ
[ab3]: https://notes.kateva.org/2024/09/the-end-times-have-come-for-pinboardin.html
[donations]: https://x.com/gingerbeardman/status/1610076083013013506
[noreply]: https://news.ycombinator.com/item?id=30558404
[bunch]: https://hn.algolia.com/?q=ask+pinboard

## Collaboration

Or lack thereof, I should say. At [Netlandish][] we collect links by projects
or themes and like to share them between the company based on clients, events,
etc.

For this, we use a combination of groupings based on tags, clients,
organizations, or events. We need to be able to give permission to various users
to write to X groupings while restricting permission to others. Most of our
link collections are not public, so they also need to have proper access
restrictions so the general public, or any unauthorized user, can't see the
link collections.

Unfortunately Pinboard does not offer this type of collaboration. Now of course
we knew that when we created accounts many years ago but as times changed so
did our workflows.

[Netlandish]: https://www.netlandish.com

## Multiple groupings

One thing that became very tedious for us was having to keep different client
product/project links segregated. We touched on this in collaboration above but
should explain this a bit more.

Say we have 10 clients using a product of ours and that involves various
links to keep track of each clients requirements, projects, funnels, etc.
Basically it's a lot of data.

In order to avoid having multiple accounts to manage each one we wanted a way
to create many "organizations" (as we call them on LinkTaco) and keep all
associated links, shorts, lists, qr codes, custom domains, etc. tied to this
organization.

We also wanted to be able to access and manage each of these from one account.
In LinkTaco each account can create unlimited organizations and with the right
account type can give other users specific and customized access to each
organization as well.

## Link services

Much like the [Unix Philosophy][unixph], Pinboard does one thing and does
(did?) it well. Generally this is great but our needs also had more of a
business requirement that Pinboard just couldn't fill. Now this is not to blame
Pinboard for this as it was never designed to service businesses or their
requirements.

However I found myself, personally, wanting to keep all of my linking needs in
one place. One house so to speak.

We would use multiple services to manage link shortening and public project
link listings (ie, link in bio type pages) and we ended up creating various
scripts or programs to help us work with all of these efficiently. But even
that got to be too much plumbing and we began to have specific edge cases that
made things even more complicated and we ended up managing some of these cases
manually. This became quite frustrating.

[unixph]: https://en.wikipedia.org/wiki/Unix_philosophy

## Personalization

Every person has their own personality. Every project or client has their own
requirements. Sometimes you want a page to be on brand, whether that's your
personal brand or a client's company.

This is why it was important to us to support custom domains. Each paid account
can add a custom domain to each service. By default the following domains are
set for each service:

- **linktaco.com** - Social bookmarking / link management
- **linkta.co** - URL shortening
- **links.ht** - Link listings (ie, link-in-bio)

But for instance, [links.petersanchez.com][psl] is the same page as
[linktaco.com/petersanchez][pslt]. Or [bio.petersanchez.com][psb] is the same
page as [links.ht/petersanchez][psbt]. We like to use the domain "netlandi.sh" for
our shorts domain (example link: [netlandi.sh/gtKM][nlhp]) just because it's on
brand for the company.

Of course none of this is new, just an example of keeping all the services and
features we wanted under one roof instead of having to use various to get what
we needed done.

[psl]: https://links.petersanchez.com
[pslt]: https://linktaco.com/petersanchez
[psb]: https://bio.petersanchez.com
[psbt]: https://links.ht/petersanchez
[nlhp]: https://netlandi.sh/gtKM

## API

A lot of times when building out a new product for clients they want to have a
full range of entry points, marketing links, etc. It's not abnormal to have to
create dozens or hundreds of different link entities for a new marketing
funnel or whatever. This is why we wrote the tools we mentioned earlier to work
and integrate various services but we really needed a more robust interface to
better streamline our workflow.

Using the Pinboard API is clunky. It's fine for what it was designed to, but it
still feels outdated.  Simple tasks like fetching links by a grouping for email
population were inconsistent. Apparently, there is a version 2 of the API, but
that's been in development [for years][api2], and there is no sign of it being
completed. Even so, the new design wouldn't meet our requirements.

[api2]: https://groups.google.com/g/pinboard-dev/c/a5aQscw4uVE/m/Gt51xVBOBgAJ

# LinkTaco

Our constant need to bundle link collections with other types of linking
services is the main reason we decided to build LinkTaco. The need to be able
to interact with all the services via a robust API is why we chose to
use GraphQL. In the end, we're pretty happy with that we've ended up with.


We feel that we've addressed the limitations we've found in Pinboard and other
similar services or applications through LinkTaco. It's not perfect, and work
is ongoing, but in its current state, it works just fine for us.

It's nothing-mind bending or earth-shattering — just stable services to manage
all our linking needs. I'd guess it's enough to manage yours as well.

M hugo.toml => hugo.toml +4 -0
@@ 23,7 23,11 @@ rssLimit = 10
  tag = "tags"

[outputs]
  home = ["HTML", "RSS"]
  section = ["HTML", "RSS"]
  taxonomy = ["HTML", "RSS"]
  term = ["HTML", "RSS"]
  page = ["HTML"]

[[menu.main]]
    name = "Tags"

M layouts/_default/baseof.html => layouts/_default/baseof.html +2 -0
@@ 13,6 13,8 @@
    <link rel="icon" type="image/png" sizes="32x32" href="{{ "img/favicon-32x32.png" | relURL }}" />
    <link rel="icon" type="image/png" sizes="16x16" href="{{ "img/favicon-16x16.png" | relURL }}" />
    <link rel="apple-touch-icon" type="image/png" href="{{ "img/apple-touch-icon.png" | relURL }}" />
    <meta name="description" content="{{ if .Description }}{{ .Description }}{{ else }}{{ .Site.Params.defaultDescription }}{{ end }}">
    <meta name="keywords" content="{{ with .Params.keywords }}{{ delimit . ", " }}{{ end }}">
    {{ block "extrahead" . }}{{ end }}
  </head>
  <body class="container">

M layouts/partials/webring-out.html => layouts/partials/webring-out.html +22 -23
@@ 6,43 6,42 @@
      <section class="articles xrow xis-center">
        
        <div class="card article">
          <h4><a href="https://100r.co/site/log.html#dec2024" target="_blank" rel="noopener">Summary of changes for December 2024</a></h4>
          <h4><a href="https://go.dev/blog/go1.24" target="_blank" rel="noopener">Go 1.24 is released!</a></h4>
          <p>Go 1.24 brings generic type aliases, map performance improvements, FIPS 140 compliance and more.</p>
          <footer>
            via <a href="https://blog.golang.org/feed.atom" target="_blank" rel="noopener">The Go Blog</a><br />
	    Feb 11, 2025
          </footer>
        </div>
	
        <div class="card article">
          <h4><a href="https://100r.co/site/log.html#jan2025" target="_blank" rel="noopener">Summary of changes for January 2025</a></h4>
          <p>
Hey everyone!This is the list of all the changes we&#39;ve done to our projects during the month of December.
Hey everyone!This is the list of all the changes we&#39;ve done to our projects during the month of January.



Summary Of Changes


  100r.co, updated the documentation for our various projects.
  Left, added support for unicode input(Mastodon).
  Rabbit Waves, …</p>
  100r.co, added a new page: tote. Added Week 8 and Week 9 of the Victoria to Sitka logbook.
  Tote, released the project on itch.…</p>
          <footer>
            via <a href="https://100r.co" target="_blank" rel="noopener">Hundred Rabbits</a><br />
	    Jan 1, 2025
          </footer>
        </div>
	
        <div class="card article">
          <h4><a href="https://go.dev/blog/survey2024-h2-results" target="_blank" rel="noopener">Go Developer Survey 2024 H2 Results</a></h4>
          <p>What we learned from our 2024 H2 developer survey</p>
          <footer>
            via <a href="https://blog.golang.org/feed.atom" target="_blank" rel="noopener">The Go Blog</a><br />
	    Dec 20, 2024
	    Feb 1, 2025
          </footer>
        </div>
	
        <div class="card article">
          <h4><a href="https://emersion.fr/blog/2024/status-update-71/" target="_blank" rel="noopener">Status update, December 2024</a></h4>
          <p>Hi!
For once let’s open things up with the NPotM.
I’ve started working on sajin, an Android app which synchronizes camera
pictures in the background. I’ve grown tired of manually copying files around,
and I don’t want to use proprietary services to backup my …</p>
          <h4><a href="https://drewdevault.com/2025/01/23/2025-01-23-Transparency-and-governance-FOSDEM.html" target="_blank" rel="noopener">Join us to discuss transparency and governance at FOSDEM &#39;25</a></h4>
          <p>Good news: it appears that Jack Dorsey’s FOSDEM talk has been cancelled!
This is a follow up to two earlier posts, which you can read here: one and
two.
I say it “appears” so, because there has been no official statement from anyone
to that effect. There has …</p>
          <footer>
            via <a href="https://emersion.fr/blog/" target="_blank" rel="noopener">emersion</a><br />
	    Dec 15, 2024
            via <a href="https://drewdevault.com" target="_blank" rel="noopener">Drew DeVault&#39;s blog</a><br />
	    Jan 23, 2025
          </footer>
        </div>
	

Do not follow this link