Taqta
unlistedby djakish
An Are.na-style pinboard for your vault. Collect images, video, links and notes as square blocks inside channel files.
Taqta
Taqta (Kazakh: тақта, "board") is an Are.na-style visual pinboard inside Obsidian. Collect images, video, links and text as square blocks organised into channels — each channel is a single Obsidian note, so everything stays local, portable, syncable and version-controllable.
Not affiliated with are.na — Taqta is a local, offline workspace inspired by Are.na. It does not sync with the are.na service.

Features
- Home — every channel as an equal-size card: name + stats (block count, last updated) on the left, a strip of content previews on the right.
- Channel — a grid of square blocks. The first cell is the add box: drop or choose files, paste a URL (image, video or link), or type text.
- Square blocks — any media is fitted to the square with
object-fit: contain: a tall image fills the height, a wide one fills the width — never cropped, stretched, or overflowing. - Real media — paste a URL and the media is downloaded into your assets
folder, with the title/headline pulled and the original URL kept as the source.
Uses
yt-dlpwhen available (Instagram, TikTok, YouTube, X, Reddit, Vimeo, …), falling back to Open Graph scraping. - Block detail — rename, add alt text, edit tags, see source / format / file size, download the original, or delete.
- Tags & filtering — hidden per-block tags; click chips on a channel to filter. Optional lightweight auto-tagging from title + domain.
- Reorder — drag blocks to reorder; order is persisted to the channel file.
- Export — one click writes a flat
CSV+JSONnext to the channel. - Native & cross-platform — pure TypeScript, no native deps, themed entirely by your active Obsidian theme. Works on desktop and mobile.
Data model
No separate database. Each channel is one markdown file:
---
taqta-channel: true
title: reno
created: 2026-06-01T10:00:00.000Z
updated: 2026-06-22T12:30:00.000Z
blocks:
- id: lz3k9a2b
type: image
title: curtains
source: https://instagram.com/p/…
asset: Taqta/Assets/lz3k9a2b.jpg
alt: linen curtains in afternoon light
tags: [interior, curtains, instagram]
width: 1080
height: 1350
fileSize: 217088
contentType: image/jpeg
created: 2026-06-01T10:00:00.000Z
---
Free-form channel description goes here.
The order of the blocks array is the display order. Reads/writes go through
Obsidian's official processFrontMatter API. Why frontmatter and not SQLite /
a table / one big JSON? The file stays a real, navigable Obsidian note (graph,
links, body description), the data is structured enough for arrays + multi-line
text + nested fields, and it syncs and diffs cleanly. Use Export when you
want a flat table for spreadsheets or scripts.
Media extraction (yt-dlp)
When a URL is pasted, the fetcher first tries a locally installed
yt-dlp — the de-facto media downloader that
already supports Instagram, TikTok, YouTube, X/Twitter, Reddit, Vimeo and
~1800 sites, so
real videos (not just a preview thumbnail) get saved, and new platforms are
supported automatically as yt-dlp adds them.
- Install it:
brew install yt-dlp/pipx install yt-dlp/winget install yt-dlp.ffmpegis recommended for high-res merges; Taqta prefers single-file formats so it works without ffmpeg for most social media. - Desktop only: yt-dlp runs as a subprocess (unavailable on mobile). There, and when yt-dlp isn't installed, Taqta falls back to the Open Graph preview.
- Set the binary path and verify it in Settings → Taqta → Media download → Check.
- For login-walled sites (e.g. Instagram), set Cookies from browser
(
chrome/safari/firefox/edge/brave).
Adding resolvers
Without yt-dlp, resolvers in src/resolvers/ read Open Graph / Twitter card tags.
To add a custom one, implement Resolver and register it before the catch-all
generic resolver in src/resolvers/index.ts#rebuild(). Download, asset storage,
dimensions and tagging are handled centrally.
Install (development)
npm install
npm run build # outputs main.js
Copy main.js, manifest.json, and styles.css into your vault at
<vault>/.obsidian/plugins/taqta/, then enable Taqta in Settings →
Community plugins. For live development use npm run dev (watch) and symlink the
folder into your vault.
Open with the ribbon grid icon or the command Taqta: Open home.
Settings
- Channels folder / Assets folder — where notes and downloaded media live
(default
Taqta/ChannelsandTaqta/Assets). - Preview thumbnails — how many previews show on a channel card.
- Suggest tags automatically — derive tags from title + domain on add.
- Use yt-dlp / yt-dlp path / Cookies from browser — real media extraction (with a Check button to verify the binary).
- User-Agent — sent when fetching link metadata.
License
MIT © djakish
For plugin developers
Search results and similarity scores are powered by semantic analysis of your plugin's README. If your plugin isn't appearing for searches you'd expect, try updating your README to clearly describe your plugin's purpose, features, and use cases.