Back to all work
Plugin · Tools · Desktop

Safi Site Audit

An Obsidian plugin that runs website audits from inside your vault and saves each one as a Markdown note, with a built-in dashboard for scores, category breakdowns and per-page issues.

Typescript CSS Svelte
Role
Creator and developer
Year
2026
Status
Completed
01 / The overview

Safi Site Audit is an Obsidian plugin that runs website audits without leaving your vault. It crawls a site, scores it across SEO, content, links, images, structured data, security and crawlability, and shows the results in a built-in dashboard with an overall score, category breakdowns and per-page issues. Every audit is saved as a Markdown note, so the findings sit next to your own research and notes.

02 / The challenge

Site audits usually live in separate tools, so the results never sit next to the notes and research they inform. Two things made building this inside Obsidian harder than a normal web app. The dashboard had to render a rich, theme-aware UI without fighting Obsidian's own styling, and the crawler calls fetch directly with manual redirects, which Obsidian's renderer blocks under CORS for cross-origin sites.

03 / The solution

The dashboard is built with Svelte 5 and hand-written CSS scoped to the plugin, using Obsidian's own theme variables so it follows the user's light, dark and accent theme. It wraps the Safi-Studio-Scanner engine, bundled into a single file with esbuild. During an audit the plugin swaps the global fetch for a shim backed by Obsidian's requestUrl, which bypasses CORS, then restores it. Each audit is saved as a self-contained Markdown note that reads well on its own and also carries the full report data, so the dashboard can show the rich view without re-crawling. PageSpeed Insights can be added with an API key for Core Web Vitals and accessibility checks.

FAQ

About this project

It runs a website audit from inside Obsidian, crawling pages and scoring the site across SEO, content, links, images, structured data, security and crawlability, then saves the report as a Markdown note and shows it in a dashboard.

The score starts at 100 and deducts a penalty for each distinct rule that fails or warns, weighted by severity and scaled by how many pages it affects. It is computed by the Safi-Studio-Scanner engine, not a simple average of category scores.

No. It is desktop only, since the crawler and audit engine run in Obsidian's desktop environment.

Next project Safi Studio Scanner

Want something like this?

Start a conversation →