<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Qonspekt</title>
    <description>The latest articles on DEV Community by Qonspekt (@qonspekt).</description>
    <link>https://dev.to/qonspekt</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3927626%2F5e1e2766-78e2-40c3-91dc-1a40be7ed2c0.png</url>
      <title>DEV Community: Qonspekt</title>
      <link>https://dev.to/qonspekt</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/qonspekt"/>
    <language>en</language>
    <item>
      <title>Qonspekt now works with Gemini — free Obsidian notes, no credit card</title>
      <dc:creator>Qonspekt</dc:creator>
      <pubDate>Tue, 12 May 2026 18:33:52 +0000</pubDate>
      <link>https://dev.to/qonspekt/qonspekt-now-works-with-gemini-free-obsidian-notes-no-credit-card-2d18</link>
      <guid>https://dev.to/qonspekt/qonspekt-now-works-with-gemini-free-obsidian-notes-no-credit-card-2d18</guid>
      <description>&lt;p&gt;The biggest barrier to trying new AI tools? "I need to add a credit card."&lt;/p&gt;

&lt;p&gt;Qonspekt just removed that barrier entirely. It now supports &lt;strong&gt;Gemini&lt;/strong&gt; — and Google's free API tier means you can generate atomic Obsidian notes without spending a single cent.&lt;/p&gt;

&lt;h2&gt;
  
  
  What changed
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://qonspekt.github.io/qonspekt/" rel="noopener noreferrer"&gt;Qonspekt&lt;/a&gt; now has a provider toggle: &lt;strong&gt;Claude&lt;/strong&gt; or &lt;strong&gt;Gemini (FREE)&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;For Gemini, use Google's free API tier:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;No credit card required&lt;/li&gt;
&lt;li&gt;No billing setup&lt;/li&gt;
&lt;li&gt;Gemini 2.0 Flash: free up to 15 requests per minute&lt;/li&gt;
&lt;li&gt;Get your key in 30 seconds at &lt;a href="https://aistudio.google.com/apikey" rel="noopener noreferrer"&gt;aistudio.google.com/apikey&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  How to get started for free
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Go to &lt;a href="https://aistudio.google.com/apikey" rel="noopener noreferrer"&gt;aistudio.google.com/apikey&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Click "Create API key" — takes 30 seconds, no billing&lt;/li&gt;
&lt;li&gt;Open &lt;a href="https://qonspekt.github.io/qonspekt/" rel="noopener noreferrer"&gt;Qonspekt&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Click "Gemini FREE" → paste your key → generate notes&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;That's it. Zero cost.&lt;/p&gt;

&lt;h2&gt;
  
  
  What you get
&lt;/h2&gt;

&lt;p&gt;Paste any article → Gemini extracts 3–7 key concepts → each becomes an atomic note with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;YAML frontmatter (title, tags, aliases)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;[[wikilinks]]&lt;/code&gt; connecting related concepts&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;## Sources&lt;/code&gt; section&lt;/li&gt;
&lt;li&gt;Download as ZIP → drag into Obsidian&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Claude still works too
&lt;/h2&gt;

&lt;p&gt;If you have Claude API credits, the Claude provider still works. Gemini is just the new free option that removes the "I need to pay first" friction.&lt;/p&gt;

&lt;h2&gt;
  
  
  Try it
&lt;/h2&gt;

&lt;p&gt;→ &lt;a href="https://qonspekt.github.io/qonspekt/" rel="noopener noreferrer"&gt;qonspekt.github.io/qonspekt&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Free Gemini key: &lt;a href="https://aistudio.google.com/apikey" rel="noopener noreferrer"&gt;aistudio.google.com/apikey&lt;/a&gt; (30 seconds, no billing)&lt;/p&gt;

&lt;p&gt;Open source: &lt;a href="https://github.com/Qonspekt/qonspekt" rel="noopener noreferrer"&gt;github.com/Qonspekt/qonspekt&lt;/a&gt;&lt;/p&gt;

</description>
      <category>obsidian</category>
      <category>gemini</category>
      <category>pkm</category>
      <category>free</category>
    </item>
    <item>
      <title>Web clippers vs. Qonspekt: what's the difference for Obsidian users?</title>
      <dc:creator>Qonspekt</dc:creator>
      <pubDate>Tue, 12 May 2026 18:08:47 +0000</pubDate>
      <link>https://dev.to/qonspekt/web-clippers-vs-qonspekt-whats-the-difference-for-obsidian-users-2c99</link>
      <guid>https://dev.to/qonspekt/web-clippers-vs-qonspekt-whats-the-difference-for-obsidian-users-2c99</guid>
      <description>&lt;p&gt;If you use Obsidian and want to save content from the web, you've probably tried a web clipper. Web2MD, WebInk, MarkDownload — they all do roughly the same thing: convert a webpage's HTML into Markdown.&lt;/p&gt;

&lt;p&gt;That's useful. But it's not the same as taking notes.&lt;/p&gt;

&lt;h2&gt;
  
  
  What web clippers actually give you
&lt;/h2&gt;

&lt;p&gt;You paste in an article URL, and you get back one Markdown file. The file is the article — its structure, its headings, its paragraphs — just in Markdown format instead of HTML.&lt;/p&gt;

&lt;p&gt;What you &lt;em&gt;don't&lt;/em&gt; get:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Identified concepts worth keeping&lt;/li&gt;
&lt;li&gt;Atomic note structure&lt;/li&gt;
&lt;li&gt;YAML frontmatter&lt;/li&gt;
&lt;li&gt;Connections between concepts (&lt;code&gt;[[wikilinks]]&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Notes you can actually search and reuse&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You still have to do the intellectual work: read the file, extract what matters, decide how to structure it, write atomic notes one by one.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Qonspekt does instead
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://qonspekt.github.io/qonspekt/" rel="noopener noreferrer"&gt;Qonspekt&lt;/a&gt; doesn't convert HTML. It reads the article and identifies what you'd actually want to keep in a Zettelkasten.&lt;/p&gt;

&lt;p&gt;Input: a 3000-word article about the Feynman Technique.&lt;/p&gt;

&lt;p&gt;Output:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;feynman-technique.md&lt;/code&gt; — what it is, why it works&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;learning-by-teaching.md&lt;/code&gt; — the psychological mechanism&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;knowledge-gaps.md&lt;/code&gt; — how to find them&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;active-recall-vs-passive-reading.md&lt;/code&gt; — the contrast Feynman makes&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Each note has YAML frontmatter, 2–4 tags, wikilinks connecting the concepts within the batch, and a &lt;code&gt;## Sources&lt;/code&gt; section. Download as ZIP, drag into Obsidian.&lt;/p&gt;

&lt;h2&gt;
  
  
  The key difference in one sentence
&lt;/h2&gt;

&lt;p&gt;Web clippers preserve the article. Qonspekt writes notes &lt;em&gt;about&lt;/em&gt; the article.&lt;/p&gt;

&lt;h2&gt;
  
  
  When to use which
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Use a web clipper when:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You want to save a reference document for later&lt;/li&gt;
&lt;li&gt;You need the full article structure preserved&lt;/li&gt;
&lt;li&gt;You're archiving, not note-taking&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Use Qonspekt when:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You want to add knowledge to your Zettelkasten&lt;/li&gt;
&lt;li&gt;You're building an Obsidian vault of concepts&lt;/li&gt;
&lt;li&gt;You read to learn, not just to collect&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Practical comparison
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;Web Clipper&lt;/th&gt;
&lt;th&gt;Qonspekt&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Output&lt;/td&gt;
&lt;td&gt;1 Markdown file&lt;/td&gt;
&lt;td&gt;3–7 atomic notes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Frontmatter&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Yes (title, tags, aliases)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Wikilinks&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Yes (between extracted concepts)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;What it understands&lt;/td&gt;
&lt;td&gt;HTML structure&lt;/td&gt;
&lt;td&gt;Article concepts&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Install required&lt;/td&gt;
&lt;td&gt;Browser extension&lt;/td&gt;
&lt;td&gt;No (browser-based, no install)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Cost per article&lt;/td&gt;
&lt;td&gt;Free&lt;/td&gt;
&lt;td&gt;~$0.003 (Claude API, BYOK)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Backend&lt;/td&gt;
&lt;td&gt;None / server&lt;/td&gt;
&lt;td&gt;None (browser-only)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Try Qonspekt
&lt;/h2&gt;

&lt;p&gt;→ &lt;a href="https://qonspekt.github.io/qonspekt/" rel="noopener noreferrer"&gt;qonspekt.github.io/qonspekt&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Bring your own Claude API key. No account, no backend. New Anthropic accounts get free credits.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;If you've tried other approaches to this problem — Readwise, Notion web clipper, custom scripts — I'd be curious what actually stuck for you.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>obsidian</category>
      <category>pkm</category>
      <category>productivity</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Using AI to build a Zettelkasten without the friction</title>
      <dc:creator>Qonspekt</dc:creator>
      <pubDate>Tue, 12 May 2026 17:56:01 +0000</pubDate>
      <link>https://dev.to/qonspekt/using-ai-to-build-a-zettelkasten-without-the-friction-41p4</link>
      <guid>https://dev.to/qonspekt/using-ai-to-build-a-zettelkasten-without-the-friction-41p4</guid>
      <description>&lt;p&gt;The hardest part of building a Zettelkasten isn't the theory. It's consistently turning sources into atomic notes.&lt;/p&gt;

&lt;p&gt;Niklas Luhmann wrote 90,000 notes by hand over 40 years. You have articles, papers, and blog posts. The gap between reading them and having them in your vault is where most PKM systems collapse.&lt;/p&gt;

&lt;h2&gt;
  
  
  What "atomic" actually means
&lt;/h2&gt;

&lt;p&gt;An atomic note has:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;One concept (not one article, one chapter, or one idea cluster — one &lt;em&gt;concept&lt;/em&gt;)&lt;/li&gt;
&lt;li&gt;A title that could be a Wikipedia article&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;[[wikilinks]]&lt;/code&gt; to related concepts&lt;/li&gt;
&lt;li&gt;A source citation&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Bad: "Notes from The Shallows by Carr"&lt;br&gt;&lt;br&gt;
Good: "Neuroplasticity", "Deep Reading Mode", "Hyperlink Distraction Effect" (three separate notes)&lt;/p&gt;
&lt;h2&gt;
  
  
  The problem with manual atomization
&lt;/h2&gt;

&lt;p&gt;Reading a 4000-word article and extracting 5 atomic notes takes ~25 minutes if you're doing it properly:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Read fully&lt;/li&gt;
&lt;li&gt;Identify concepts worth keeping&lt;/li&gt;
&lt;li&gt;Title each note (harder than it sounds)&lt;/li&gt;
&lt;li&gt;Write the body — in your own words, not copy-paste&lt;/li&gt;
&lt;li&gt;Add frontmatter, tags, wikilinks&lt;/li&gt;
&lt;li&gt;Add source&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Most people skip this entirely or write one large "literature note" that never gets revisited.&lt;/p&gt;
&lt;h2&gt;
  
  
  How Qonspekt automates this
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://qonspekt.github.io/qonspekt/" rel="noopener noreferrer"&gt;Qonspekt&lt;/a&gt; takes an article and produces atomic notes using Claude AI:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Paste article → Claude extracts concepts → atomic .md files → ZIP download
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The system prompt specifically instructs Claude to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Extract 3–7 key concepts (not summaries — named, reusable concepts)&lt;/li&gt;
&lt;li&gt;Write each as a self-contained note&lt;/li&gt;
&lt;li&gt;Connect concepts via &lt;code&gt;[[wikilinks]]&lt;/code&gt; within the batch&lt;/li&gt;
&lt;li&gt;Never copy-paste — always paraphrase and synthesize&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The wikilink constraint is important. Luhmann's system worked because notes referenced each other. Qonspekt replicates this: the "Spaced Repetition" note from one article will wikilink to the "Active Recall" note from the same article, creating a small interconnected cluster you can drop into your vault.&lt;/p&gt;

&lt;h2&gt;
  
  
  What to do after importing
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Open the ZIP, check the notes&lt;/li&gt;
&lt;li&gt;Edit anything that's wrong or imprecise
&lt;/li&gt;
&lt;li&gt;Add wikilinks to &lt;em&gt;existing&lt;/em&gt; notes in your vault (&lt;code&gt;[[existing-concept]]&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Move to the right folder&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The AI does the scaffolding. You do the integration.&lt;/p&gt;

&lt;h2&gt;
  
  
  Is this "cheating"?
&lt;/h2&gt;

&lt;p&gt;Depends on your goal. If you're using a Zettelkasten to develop original ideas, the thinking happens when you &lt;em&gt;read and select&lt;/em&gt; which articles to atomize, &lt;em&gt;edit&lt;/em&gt; the generated notes, and &lt;em&gt;integrate&lt;/em&gt; them with your existing vault.&lt;/p&gt;

&lt;p&gt;Qonspekt handles the mechanical part. The intellectual work is still yours.&lt;/p&gt;

&lt;h2&gt;
  
  
  Try it
&lt;/h2&gt;

&lt;p&gt;→ &lt;a href="https://qonspekt.github.io/qonspekt/" rel="noopener noreferrer"&gt;qonspekt.github.io/qonspekt&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;BYOK (bring your own Claude API key). No account, no backend. ~$0.003 per article.&lt;/p&gt;

</description>
      <category>zettelkasten</category>
      <category>pkm</category>
      <category>obsidian</category>
      <category>ai</category>
    </item>
    <item>
      <title>The 30-second Obsidian note workflow (using Claude AI)</title>
      <dc:creator>Qonspekt</dc:creator>
      <pubDate>Tue, 12 May 2026 17:50:15 +0000</pubDate>
      <link>https://dev.to/qonspekt/the-30-second-obsidian-note-workflow-using-claude-ai-4odg</link>
      <guid>https://dev.to/qonspekt/the-30-second-obsidian-note-workflow-using-claude-ai-4odg</guid>
      <description>&lt;p&gt;If you use Obsidian, you've probably felt this: you read a great article, tell yourself you'll take notes later, and then... never do.&lt;/p&gt;

&lt;p&gt;The problem isn't motivation. It's friction. Opening a new note, figuring out what to title it, structuring the frontmatter, extracting the key ideas, writing atomic notes one by one — it takes 20 minutes minimum for a good article.&lt;/p&gt;

&lt;p&gt;I built &lt;a href="https://qonspekt.github.io/qonspekt/" rel="noopener noreferrer"&gt;Qonspekt&lt;/a&gt; to remove that friction completely.&lt;/p&gt;

&lt;h2&gt;
  
  
  The workflow
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Read an article. Find one worth keeping.&lt;/li&gt;
&lt;li&gt;Copy the text. Paste into Qonspekt.&lt;/li&gt;
&lt;li&gt;Hit "Generate". Wait ~5 seconds.&lt;/li&gt;
&lt;li&gt;Download ZIP. Drag into Obsidian.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Done. You now have 3–7 atomic notes, each covering one concept, each with proper frontmatter and &lt;code&gt;[[wikilinks]]&lt;/code&gt; connecting related ideas.&lt;/p&gt;

&lt;h2&gt;
  
  
  What makes a good Qonspekt note?
&lt;/h2&gt;

&lt;p&gt;Here's an example output from an article about the Feynman Technique:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;&lt;span class="nn"&gt;---&lt;/span&gt;
&lt;span class="na"&gt;title&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Feynman&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;Technique"&lt;/span&gt;
&lt;span class="na"&gt;tags&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="pi"&gt;[&lt;/span&gt;&lt;span class="nv"&gt;learning&lt;/span&gt;&lt;span class="pi"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;mental-models&lt;/span&gt;&lt;span class="pi"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;teaching&lt;/span&gt;&lt;span class="pi"&gt;]&lt;/span&gt;
&lt;span class="na"&gt;aliases&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="pi"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Feynman&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;Learning&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;Method"&lt;/span&gt;&lt;span class="pi"&gt;]&lt;/span&gt;
&lt;span class="nn"&gt;---&lt;/span&gt;
&lt;span class="gh"&gt;# Feynman Technique&lt;/span&gt;

A learning method developed by physicist Richard Feynman:
explain a concept as if teaching it to a child. When you
can't explain it simply, you've found a gap in your
understanding.

Related: [[Active Recall]], [[Spaced Repetition]]

&lt;span class="gu"&gt;## Sources&lt;/span&gt;
&lt;span class="p"&gt;-&lt;/span&gt; https://example.com/feynman-article
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Notice: one concept, clear title, 2–4 tags, wikilinks to related concepts from the same article, source citation.&lt;/p&gt;

&lt;h2&gt;
  
  
  Which articles work best?
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;High value:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Long-form essays (3000+ words) — lots of concepts to extract&lt;/li&gt;
&lt;li&gt;Academic summaries — dense with named concepts&lt;/li&gt;
&lt;li&gt;Technical tutorials — methods, patterns, terminology&lt;/li&gt;
&lt;li&gt;Book summaries — ready-made concept clusters&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Lower value:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;News articles — facts, not concepts&lt;/li&gt;
&lt;li&gt;Opinion pieces — hard to extract reusable knowledge&lt;/li&gt;
&lt;li&gt;Short posts under 500 words — not enough to atomize&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The sharing trick
&lt;/h2&gt;

&lt;p&gt;After generating, click Share. Qonspekt encodes your notes into the URL. Send the link to a study partner — they see your notes instantly, no account needed.&lt;/p&gt;

&lt;p&gt;This makes it useful for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Sharing reading notes with colleagues&lt;/li&gt;
&lt;li&gt;Building a shared PKM entry point for teams&lt;/li&gt;
&lt;li&gt;Demonstrating your note-taking approach to others&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Cost
&lt;/h2&gt;

&lt;p&gt;~$0.003 per article with Claude Haiku 4.5. A $5 Anthropic credit covers ~1,600 articles.&lt;/p&gt;

&lt;p&gt;New accounts get free credits. You'll probably never pay anything.&lt;/p&gt;

&lt;h2&gt;
  
  
  Try it
&lt;/h2&gt;

&lt;p&gt;→ &lt;a href="https://qonspekt.github.io/qonspekt/" rel="noopener noreferrer"&gt;qonspekt.github.io/qonspekt&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;No account. No installation. Paste an article, get notes.&lt;/p&gt;

</description>
      <category>obsidian</category>
      <category>productivity</category>
      <category>pkm</category>
      <category>notetaking</category>
    </item>
    <item>
      <title>I built a BYOK browser tool that turns any article into atomic Obsidian notes</title>
      <dc:creator>Qonspekt</dc:creator>
      <pubDate>Tue, 12 May 2026 17:23:09 +0000</pubDate>
      <link>https://dev.to/qonspekt/i-built-a-byok-browser-tool-that-turns-any-article-into-atomic-obsidian-notes-5c6d</link>
      <guid>https://dev.to/qonspekt/i-built-a-byok-browser-tool-that-turns-any-article-into-atomic-obsidian-notes-5c6d</guid>
      <description>&lt;p&gt;I kept procrastinating on taking notes from articles I read. The cycle was always the same: read something interesting, tell myself I'll write proper notes later, never do it. So I built a tool to do it automatically.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Qonspekt does
&lt;/h2&gt;

&lt;p&gt;Paste any article → Claude AI extracts the key concepts → you get 3–7 atomic Markdown notes, ready to drag into Obsidian.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Try it:&lt;/strong&gt; &lt;a href="https://qonspekt.github.io/qonspekt/" rel="noopener noreferrer"&gt;https://qonspekt.github.io/qonspekt/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Each note gets:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;YAML frontmatter (&lt;code&gt;title&lt;/code&gt;, &lt;code&gt;tags&lt;/code&gt;, &lt;code&gt;aliases&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;[[wikilinks]]&lt;/code&gt; connecting related concepts from the same article&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;## Sources&lt;/code&gt; section with the original URL&lt;/li&gt;
&lt;li&gt;Proper filename (&lt;code&gt;concept-slug.md&lt;/code&gt;)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The technical approach: single HTML file, no backend
&lt;/h2&gt;

&lt;p&gt;The whole thing is one HTML file. No framework, no build step, no server.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nf"&gt;fetch&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;https://api.anthropic.com/v1/messages&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="na"&gt;method&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;POST&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;headers&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Content-Type&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;application/json&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;x-api-key&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;userApiKey&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;anthropic-version&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;2023-06-01&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;anthropic-dangerous-direct-browser-access&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;true&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;  &lt;span class="c1"&gt;// official BYOK header&lt;/span&gt;
  &lt;span class="p"&gt;},&lt;/span&gt;
  &lt;span class="na"&gt;body&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;JSON&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;stringify&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt; &lt;span class="nx"&gt;model&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;max_tokens&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;4096&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;system&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;messages&lt;/span&gt; &lt;span class="p"&gt;})&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The &lt;code&gt;anthropic-dangerous-direct-browser-access: true&lt;/code&gt; header is Anthropic's official way to support BYOK browser tools. Your key goes from your browser directly to Anthropic — I have no server to log anything.&lt;/p&gt;

&lt;h2&gt;
  
  
  Getting consistent JSON from Claude
&lt;/h2&gt;

&lt;p&gt;The trickiest part: Claude sometimes wraps output in markdown code fences even when told not to.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;raw&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;data&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;content&lt;/span&gt;&lt;span class="p"&gt;?.[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;]?.&lt;/span&gt;&lt;span class="nx"&gt;text&lt;/span&gt; &lt;span class="o"&gt;||&lt;/span&gt; &lt;span class="dl"&gt;''&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;match&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;raw&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;match&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sr"&gt;/&lt;/span&gt;&lt;span class="se"&gt;\[[\s\S]&lt;/span&gt;&lt;span class="sr"&gt;*&lt;/span&gt;&lt;span class="se"&gt;\]&lt;/span&gt;&lt;span class="sr"&gt;/&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;  &lt;span class="c1"&gt;// extract JSON array regardless of wrapping&lt;/span&gt;
&lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;!&lt;/span&gt;&lt;span class="nx"&gt;match&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;throw&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;Error&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Could not parse response&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;notes&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;JSON&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;parse&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;match&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;]);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This regex approach handles both clean JSON and fenced output reliably.&lt;/p&gt;

&lt;h2&gt;
  
  
  Serverless sharing
&lt;/h2&gt;

&lt;p&gt;After generating, there's a "Share" button that base64-encodes all notes into the URL hash:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;enc&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;btoa&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;unescape&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;encodeURIComponent&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;JSON&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;stringify&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;notes&lt;/span&gt;&lt;span class="p"&gt;))));&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;location&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;origin&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="nx"&gt;location&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;pathname&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;#shared=&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="nx"&gt;enc&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="nb"&gt;navigator&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;clipboard&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;writeText&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;url&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;On load, if the hash starts with &lt;code&gt;#shared=&lt;/code&gt;, it decodes and renders the notes in read-only mode. No server, no database, no account needed for the recipient.&lt;/p&gt;

&lt;h2&gt;
  
  
  The system prompt
&lt;/h2&gt;

&lt;p&gt;Getting the right structure took iteration. Key constraints that worked:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;- Extract 3-7 key concepts, write one atomic note per concept
- Each note is self-contained but uses [[wikilinks]] to reference 
  related concepts from the same batch
- 150-280 words per note body
- Tags: 2-4, lowercase, hyphens for spaces
- Return ONLY a valid JSON array, no markdown fences
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The "same batch" constraint for wikilinks is important — it makes the notes interconnected without hallucinating links to notes that don't exist.&lt;/p&gt;

&lt;h2&gt;
  
  
  Cost
&lt;/h2&gt;

&lt;p&gt;~$0.003 per article with Claude Haiku 4.5. New Anthropic accounts get free credits.&lt;/p&gt;

&lt;h2&gt;
  
  
  Source
&lt;/h2&gt;

&lt;p&gt;MIT licensed: &lt;a href="https://github.com/Qonspekt/qonspekt" rel="noopener noreferrer"&gt;https://github.com/Qonspekt/qonspekt&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Would love feedback on the note structure or the prompt. What frontmatter fields do you typically use in your vault?&lt;/p&gt;

</description>
      <category>obsidian</category>
      <category>pkm</category>
      <category>claudeai</category>
      <category>javascript</category>
    </item>
  </channel>
</rss>
