Show HN: Taqta. Made an Are.na-style visual boards for Obsidian

wasdwasdwasd1 pts0 comments

GitHub - djakish/obsidian-taqta · GitHub

/" data-turbo-transient="true" />

Skip to content

Search or jump to...

Search code, repositories, users, issues, pull requests...

-->

Search

Clear

Search syntax tips

Provide feedback

--><br>We read every piece of feedback, and take your input very seriously.

Include my email address so I can be contacted

Cancel

Submit feedback

Saved searches

Use saved searches to filter your results more quickly

-->

Name

Query

To see all available qualifiers, see our documentation.

Cancel

Create saved search

Sign in

/;ref_cta:Sign up;ref_loc:header logged out"}"<br>Sign up

Appearance settings

Resetting focus

You signed in with another tab or window. Reload to refresh your session.<br>You signed out in another tab or window. Reload to refresh your session.<br>You switched accounts on another tab or window. Reload to refresh your session.

Dismiss alert

{{ message }}

djakish

obsidian-taqta

Public

Notifications<br>You must be signed in to change notification settings

Fork

Star

main

BranchesTags

Go to file

CodeOpen more actions menu

Folders and files<br>NameNameLast commit message<br>Last commit date<br>Latest commit

History<br>2 Commits<br>2 Commits

media

media

src

src

.gitignore

.gitignore

LICENSE

LICENSE

README.md

README.md

esbuild.config.mjs

esbuild.config.mjs

manifest.json

manifest.json

package-lock.json

package-lock.json

package.json

package.json

styles.css

styles.css

tsconfig.json

tsconfig.json

versions.json

versions.json

View all files

Repository files navigation

Taqta

Taqta (Kazakh: тақта, "board") is an Are.na-style visual<br>pinboard inside Obsidian. Collect images, video, links and text as square<br>blocks organised into channels — each channel is a single Obsidian note,<br>so everything stays local, portable, syncable and version-controllable.

Not affiliated with are.na — Taqta is a local, offline workspace inspired by<br>Are.na. It does not sync with the are.na service.

Features

Home — every channel as an equal-size card: name + stats (block count,<br>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<br>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<br>cropped, stretched, or overflowing.

Real media — paste a URL and the media is downloaded into your assets<br>folder, with the title/headline pulled and the original URL kept as the source.<br>Uses yt-dlp when available (Instagram,<br>TikTok, YouTube, X, Reddit, Vimeo, …), falling back to Open Graph scraping.

Block detail — rename, add alt text, edit tags, see source / format / file<br>size, download the original, or delete.

Tags & filtering — hidden per-block tags; click chips on a channel to<br>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 + JSON next to the channel.

Native & cross-platform — pure TypeScript, no native deps, themed entirely<br>by your active Obsidian theme. Works on desktop and mobile.

Data model

No separate database. Each channel is one markdown file:

taqta-channel: true<br>title: reno<br>created: 2026-06-01T10:00:00.000Z<br>updated: 2026-06-22T12:30:00.000Z<br>blocks:<br>- id: lz3k9a2b<br>type: image<br>title: curtains<br>source: https://instagram.com/p/…<br>asset: Taqta/Assets/lz3k9a2b.jpg<br>alt: linen curtains in afternoon light<br>tags: [interior, curtains, instagram]<br>width: 1080<br>height: 1350<br>fileSize: 217088<br>contentType: image/jpeg<br>created: 2026-06-01T10:00:00.000Z<br>Free-form channel description goes here.

The order of the blocks array is the display order. Reads/writes go through<br>Obsidian's official processFrontMatter API. Why frontmatter and not SQLite /<br>a table / one big JSON? The file stays a real, navigable Obsidian note (graph,<br>links, body description), the data is structured enough for arrays + multi-line<br>text + nested fields, and it syncs and diffs cleanly. Use Export when you<br>want a flat table for spreadsheets or scripts.

Media extraction (yt-dlp)

When a URL is pasted, the fetcher first tries a locally installed<br>yt-dlp — the de-facto media downloader that<br>already supports Instagram, TikTok, YouTube, X/Twitter, Reddit, Vimeo and<br>~1800 sites, so<br>real videos (not just a preview thumbnail) get saved, and new platforms are<br>supported automatically as yt-dlp adds them.

Install it: brew install yt-dlp / pipx install yt-dlp / winget install yt-dlp.<br>ffmpeg is recommended for high-res merges; Taqta prefers single-file formats<br>so it works without ffmpeg for most social media.

Desktop only: yt-dlp runs as a subprocess (unavailable on mobile). There,<br>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),...

json taqta media channel obsidian file

Related Articles