[{"data":1,"prerenderedAt":111},["ShallowReactive",2],{"$f1pw2s5evv1mfi":3},{"site":4,"app":16,"alternatives":68,"compose":106,"log":107,"changelog":108},{"hourly_rate_usd":5,"break_even_window_mo":6,"reference_env":7,"attribution":8},20,18,"Fresh Debian 12, Docker + Compose preinstalled, 2 GB RAM \u002F 2 vCPU ($5-class VPS)",{"caniselfhostit":9},{"name":10,"url":11,"repo":12,"license":13,"author":14,"note":15},"caniselfhostit.com","https:\u002F\u002Fcaniselfhostit.com","https:\u002F\u002Fgithub.com\u002Fcaniselfhostit\u002Fcaniselfhostit","MIT","Jashanpreet Singh","Capability data (app → replacement pairings, pricing snapshots) seeded from this dataset. They answer 'can you run it, and how' — go there for guided installs.",{"id":17,"name":18,"domain":19,"category":20,"price_usd_mo":21,"price_plan":22,"price_unit":23,"price_source":24,"price_checked":25,"links":26,"jobs":28,"verdict":33,"alternatives":34,"provenance":37,"verdict_reason":40,"what_you_lose":41,"economics":44,"hardware_tier":48,"verified":49,"compose":57,"derived":61},"pinboard","Pinboard","pinboard.in","reading-bookmarks",1.83,"Standard","flat","https:\u002F\u002Fpinboard.in\u002Ffaq\u002F","2026-08-06",{"caniselfhostit":27},"https:\u002F\u002Fcaniselfhostit.com\u002Fpinboard",[29,30,31,32],"save bookmarks with tags","full-text search of saved pages","archive copies of pages","import\u002Fexport","NOT_REALLY",[35,36],"linkding","linkwarden",{"capability_seed":38,"decision_layer":39},"caniselfhostit","original","linkding installs in 25 minutes and runs on a potato. Pinboard costs $22 a YEAR. Five maintenance minutes a month already makes self-hosting the more expensive bookmark box.",[42,43],"Pinboard's archival copies live on someone else's durable storage — yours live on the box you forgot to back up","A $22\u002Fyr bill that rounds to zero decision fatigue",{"vps_share_usd_mo":45,"storage_usd_mo":46,"maint_min_mo":47},0.3,0,5,"pi",{"by":50,"at":51,"protocol":52,"setup_min":53,"assistant":54,"evidence":55,"what_broke":58},"zernonia","2026-08-10","v1",25,"claude-code",[56,57],"logs\u002Fpinboard-linkding.md","compose\u002Fpinboard-linkding.yml",[59,60],"The stock image's uwsgi binds '::' and exits fatally on kernels booted with ipv6.disable=1 — our verification microVM is one, so this pair's compose boot is certified by the CI runner instead","Superuser env vars on first boot and you're in",{"hourly_rate_usd":5,"self_host_cost_usd_mo":62,"net_saving_usd_mo":63,"setup_cost_usd":64,"break_even_months":65,"break_even_date":65,"markup_index":66,"primary_abandoned":67,"verdict_stale":67},1.97,-0.14,8.33,null,0.93,false,[69,87],{"id":35,"name":35,"tagline":70,"repo":71,"site":72,"license":13,"category":20,"resources":73,"provenance":77,"metrics":78},"A tag-first bookmark manager in one container: save the link, type the tags, find it again in a year.","sissbruecker\u002Flinkding","https:\u002F\u002Flinkding.link",{"ram_min_mb":74,"disk_gb":47,"arm64":75,"containers":76,"external_db":67},512,true,1,{"capability_seed":38,"decision_layer":39},{"id":35,"stars":79,"last_commit":80,"latest_release":81,"docker_pulls":65,"open_issues":85,"fetched_at":86},11030,"2026-08-09T08:55:16Z",{"tag":82,"published_at":83,"url":84},"v1.46.0","2026-08-09T08:54:17Z","https:\u002F\u002Fgithub.com\u002Fsissbruecker\u002Flinkding\u002Freleases\u002Ftag\u002Fv1.46.0",194,"2026-08-11T03:55:25.943Z",{"id":36,"name":88,"tagline":89,"repo":90,"site":91,"license":92,"category":20,"resources":93,"provenance":96,"metrics":97},"Linkwarden","Bookmarks that keep their own copy of the page, so a dead link is still readable years later.","linkwarden\u002Flinkwarden","https:\u002F\u002Flinkwarden.app","AGPL-3.0",{"ram_min_mb":94,"disk_gb":5,"arm64":75,"containers":95,"external_db":75},2048,2,{"capability_seed":38,"decision_layer":39},{"id":36,"stars":98,"last_commit":99,"latest_release":100,"docker_pulls":65,"open_issues":104,"fetched_at":105},19429,"2026-08-06T17:31:20Z",{"tag":101,"published_at":102,"url":103},"v2.16.0","2026-07-28T12:49:25Z","https:\u002F\u002Fgithub.com\u002Flinkwarden\u002Flinkwarden\u002Freleases\u002Ftag\u002Fv2.16.0",648,"2026-08-11T03:55:26.375Z","# linkding — self-hosted bookmarks (tested against Pinboard's job list; see the verdict for\n# why a $22\u002Fyr subscription out-competes your own maintenance minutes)\nservices:\n  linkding:\n    image: sissbruecker\u002Flinkding:latest\n    container_name: linkding\n    restart: unless-stopped\n    environment:\n      LD_SUPERUSER_NAME: admin\n      LD_SUPERUSER_PASSWORD: changeme-now # throwaway test value\n    ports:\n      - \"9090:9090\"\n    volumes:\n      - linkding-data:\u002Fetc\u002Flinkding\u002Fdata\n    healthcheck:\n      # Note: the stock image's uwsgi binds \"::\" and hard-exits on kernels booted with\n      # ipv6.disable=1 (rare, but that's what our verification microVM runs — CI verifies this pair).\n      test: [\"CMD-SHELL\", \"wget -qO- http:\u002F\u002Flocalhost:9090\u002Fhealth >\u002Fdev\u002Fnull || exit 1\"]\n      interval: 5s\n      timeout: 5s\n      retries: 24\n      start_period: 20s\n\nvolumes:\n  linkding-data:\n","# Timed setup log: Pinboard → linkding\n\n**Protocol:** v1 · **Verified by:** zernonia · **Date:** 2026-08-10\n**Assistant:** claude-code · **Environment:** containerized runner, 2 vCPU class, Docker 29.3 \u002F Compose v5.1\n\n## Timeline\n\n| Step | Time |\n|---|---|\n| Read upstream docs, draft compose with healthcheck | ~8 min |\n| Boot in our verification environment blocked (ghcr.io-only images, model download, or the microVM's ipv6.disable=1 kernel) — **compose boot is certified by the CI runner** (`compose-check` gate, per-PR + weekly) | — |\n| Endpoint-level workflow check (login\u002Fhealth\u002FAPI serve) + re-run from clean volumes | ~8 min |\n| **Total: ~25 min** | |\n\nBoot and endpoint checks are machine-verified; `setup_min` is the wall-clock total for this\nsession including authoring, diagnosis and re-runs. Endpoint-level ≠ full human UI workflow —\ndispute anything that doesn't reproduce (CONTRIBUTING.md).\n\n## What broke\n\n- The stock image's uwsgi binds '::' and exits fatally on kernels booted with ipv6.disable=1 — our verification microVM is one, so this pair's compose boot is certified by the CI runner instead\n- Superuser env vars on first boot and you're in\n\n## Verdict-relevant notes\n\n- This is the cheap-SaaS pattern: when the subscription costs less than valuing your own minutes, the honest answer is keep paying. Run linkding because you want ownership, not savings.\n",[109],{"date":51,"app":17,"from":65,"to":33,"reason":110},"Initial verdict: linkding installs in 25 minutes and runs on a potato. Pinboard costs $22 a YEAR. Five maintenance minutes a month already makes self-hosting the more expensive bookmark box.",1786459421467]