Commit Graph
7305 Commits
Author SHA1 Message Date
Dylan Couzon 7ee4fa04bf Preserve Ecosystem guide link and minimize metadata formatting changes 2026-09-24 12:17:40 -04:00
Dylan Couzon 11c434542a Discover tutorials from page metadata and simplify guide authoring 2026-09-24 12:09:19 -04:00
Dylan Couzon 7cd5541d44 Add dedicated Guides illustration to Learn overview 2026-09-24 11:49:50 -04:00
Dylan Couzon 1ccaf7064f Group less common stacks under Other in the tutorial filter 2026-09-24 11:39:36 -04:00
Dylan Couzon 23c6811088 Show Get Started first in the tutorial sidebar 2026-09-24 11:34:12 -04:00
Dylan Couzon 3872789405 Merge remote-tracking branch 'origin/master' into codex/learn-cleanup
# Conflicts:
#	qdrant-landing/static/_redirects
2026-09-24 10:39:49 -04:00
Dylan Couzon 8325f37979 Refine Learn navigation, guide presentation, and authoring 2026-09-24 10:37:58 -04:00
78beef7e01 feat(viz): Introduce chart toggles (#2782)
* feat(viz): switch a chart between views

Adds `views` to a chart spec: a segmented control above the chart that
switches which measure it draws. Modelled on the charts in the author's own
blog, which use the same control for the same job.

Every view is rendered into the same committed SVG, one <g> each, and all but
the first are inline-hidden. Switching shows one and hides the rest, so nothing
re-renders and nothing is fetched on click. With JavaScript off a reader still
gets a complete chart rather than dead buttons.

A view is a patch over the base spec, so it can change the column plotted, the
axis, the title and the y-max.

Applies it to oversampling/recall, whose CSV already carried ndcg_at_10 while
the chart only drew recall_at_10 -- the second measure was in the table but
invisible in the picture. The default view is byte-identical to the chart
published today, so the page looks the same until a reader picks the other tab.

The Markdown output is unchanged and carries every view's columns, since it
prints the whole CSV.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

* fix(viz): the caption has to follow the view

Caught this in a screenshot: the oversampling caption cites recall going 0.605
to 0.988, and it stayed put when the reader switched to the nDCG view, where
every bar sits between 0.2786 and 0.3238. A caption is a claim about the
numbers on screen, so leaving it fixed makes the figure lie.

Each view after the first takes caption2=, caption3= and so on, alongside the
existing caption= at the call site, where the rest of the prose lives. The
build fails if a view has no caption rather than letting it inherit one.

The figcaption is also the figure's accessible name, so it changes for screen
readers too.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

* style(viz): white label on the active toggle, and fewer comments

The active segment took its colour from --qi-surface, which flips to near-black
in dark mode, so the label sat dark-on-red. Neither surface clears AA on the
accent anyway (4.30 light, 3.73 dark); white gives 4.77. Adds --qi-accent-ink
for text sitting on the accent.

Also cuts the comments this branch added from 21 lines to 9.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

* fix(viz): Markdown output carries every view's claim

The table is the whole CSV, so for a chart with views it holds every view's
columns at once. The title and caption were still view 0's, so the .md read
"Recall@10 by quantization" over a table that also carried nDCG.

Now emits one caption per view, labelled, and the oversampling title no longer
names a single measure.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

* Trigger CI

* refactor(viz): call the view picker a toggle, not a switch

`.qi-switch` in islands.scss is already a binary on/off control with a
track and a knob. The chart's control picks one of N views, so it was
borrowing a name that meant something else.

viz-switch -> viz-toggle, data-viz-view-btn -> data-viz-toggle-btn,
wireSwitch -> wireToggle.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

* refactor(viz): resolve a chart's arguments in one place

chart.html and chart.markdown.md both derived the id, the caption, the
spec and the per-view captions, from eleven identical lines. The rules had
already drifted: the HTML output refused a view missing its caption2=,
while the Markdown output printed an empty claim for it.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

* fix(viz): refuse a per-chart width rather than stretch the chart

Charts deliberately share one width: the SVG scales to the column, so a
wider viewBox renders identical font sizes smaller. The manifest spread a
spec over that default, so a spec setting "width" drew at its own size
inside the 980-wide viewBox the shortcode builds, and came out stretched.
No chart sets one today; this makes the next one a build error.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

* test(viz): check each chart's CSV against the table in its post

The same numbers live twice, in the CSV a chart is drawn from and in the
markdown table above it. Nothing compared them, so correcting one and not
the other publishes a chart that disagrees with its own table.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
Co-authored-by: Abdon Pijpelink <abdon.pijpelink@qdrant.com>
2026-09-24 19:30:08 +05:30
Abdon PijpelinkandClaude Opus 5.5 65d3794513 Replace the text processing diagram with an interactive island (#2774)
* Replace the text processing diagram with an interactive island

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* Add diagram to the 'BM25 Text Processing' section too

---------

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-09-24 15:08:13 +02:00
Abdon PijpelinkandClaude Opus 5 fbf4398112 Replace the time-based sharding diagram with an interactive island (#2772)
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-24 14:54:19 +02:00
Kumar ShivenduandClaude Opus 5 be56b1948b refactor(viz): keep chart viz data and config together (#2781)
Every chart's spec lived in one shared data/viz-charts.json array, keyed by an
id that was already the path to its files. Each chart is now self-contained:
assets/viz/<id>.{json,csv,svg}, one folder holding everything about it.

Because the id is the path, a spec no longer repeats it or the data path, and
the shortcode resolves a chart directly instead of scanning the array.

Drops three keys that were never decisions. width was 980 on all seven and now
lives in data/viz.json alongside the legend spacing, where the generator and
the shortcode read the same number. extraHeight was the legend's own offset
leaking out of the generator into both the spec and the viewBox, so it is
derived from the chart kind. Tooltip units come from the column suffix.

232 lines become 187 across 7 files, while adding the title that 5 charts were
missing. chart.markdown.md reads that title, so those five had no heading above
their table in the Markdown output.

Parses CSVs with d3-dsv instead of split(','), which would shift every column
right on a label containing a comma. Already installed as a Plot dependency;
now declared.

Every SVG is byte-identical and all 6 chart pages render identical HTML. The
only rendered change is the 5 restored Markdown headings.

Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
2026-09-24 14:20:46 +05:30
Abdon PijpelinkandClaude Opus 5 d43d4196ca Copy heading URL to clipboard on anchor click (#2773)
The AnchorJS link icon already updated the address bar; it now also
copies the absolute URL and shows a "Copied" toast at the bottom of
the screen.

Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-24 10:48:36 +02:00
Kumar ShivenduandClaude Opus 5 0fccb0cac1 Publish each page's markdown at /path.md as well as /path/index.md (#2743)
* feat(build): publish each page's markdown at /path.md as well as /path/index.md

Hugo writes the Markdown output format beside the HTML it belongs to, so a page
at /articles/foo/ is published at /articles/foo/index.md. That is correct and it
stays: it is what the llms.txt convention prescribes for directory-style URLs,
it is the form /llms.txt already advertises for 670 pages, and it is the target
of the <link rel="alternate" type="text/markdown"> we emit in every page head.

What it is not is guessable. Every other documentation site I compared exposes a
page's markdown by swapping the extension, so a client holding only a URL can
construct /articles/foo.md directly instead of first fetching the HTML to read
the alternate link:

  /articles/immutable-data-structures.md        404  ->  200 text/markdown
  /articles/immutable-data-structures/index.md  200      200 (unchanged)

So publish both. A post-build step copies every public/**/index.md to
public/**.md; the originals are untouched, so no published URL changes. Netlify
already serves .md as text/markdown, and the files are small: 7.6 MB against a
1.4 GB build, 0.5%.

Deliberately a build step rather than a Netlify redirect. A splat has to be
terminal, so /articles/*.md is not a pattern Netlify accepts, and a rule that
cannot be verified locally is worse than a copy that can.

Adds npm run md:test, which builds the site, runs the script over the output and
checks all 789 aliases exist and match their source byte for byte, that the
canonical index.md and index.html are untouched, that nothing is written outside
the publish directory, and that a second run overwrites nothing. Verified the
tests fail when the script is stubbed out.

The test deletes its build directory on exit. A build is ~1.4 GB, and a suite
that leaves temp directories behind fills a disk faster than anyone notices.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

* test(md): cut the alias tests down, and keep master's npm scripts

Review: the tests were redundant. Two of the four asserted what cp does, and
all four needed a full ~1.4 GB Hugo build to say it. Replaced with two tests
over a synthetic directory, covering the only two things the script decides:
skip the site root, never overwrite an existing file. 87 lines to 39, and the
run drops from a full site build to 0.26s.

package.json: this branch predates the charts work, so its scripts block
replaced master's. Merging as-is would have silently deleted viz:test and
viz:charts. Now keeps both and adds md:test.

Also trims the script's comment header from 19 lines to 8.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

* test(md): drop the npm script, run the test file directly

package.json is the site's manifest; a runner alias for one shell script does
not belong in it. The test runs as:

  node --test test/markdown/aliases.test.mjs

package.json is now untouched by this branch, which also removes the risk of
the merge dropping master's viz scripts.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-24 04:17:20 +05:30
Kumar Shivendu 6e4e414af5 Introduce interactive SVG charts (#2672)
7 charts across 5 posts, in 3 kinds: two-panel columns, grouped columns and faceted lines. Replaces 1,024 KB of raster screenshots with 71 KB of inline SVG, hover and keyboard focus included.

Charts are generated from CSVs and committed, so a changed number shows up as a diff in review. 

Pages also build as Markdown, where the shortcode emits the source data as a table instead of the raw SVG.
2026-09-24 01:56:49 +05:30
Dylan CouzonandClaude Fable 5.1 cf1f7404f7 Remove Learn migration leftovers
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-23 15:17:48 -04:00
Dylan Couzon 3b53f75c8c Keep Learn migration focused and preserve Markdown navigation 2026-09-23 14:29:19 -04:00
Dylan Couzon 2b65de38ae Restore headings on migrated tuning guides 2026-09-23 12:17:42 -04:00
Dylan Couzon 2ca7145462 Keep Courses Overview in Learn navigation 2026-09-23 12:05:01 -04:00
Dylan Couzon 4c410e1807 Add on-device memory course to Learn sidebar 2026-09-23 12:01:18 -04:00
Dylan Couzon 419024af53 Restore Learn sidebar formatting and external course 2026-09-23 11:58:33 -04:00
Dylan Couzon 97c5c93ea0 Scope Learn search to learning resources 2026-09-23 11:54:55 -04:00
Dylan Couzon 0d41671abc Address Learn portal review feedback 2026-09-23 11:45:58 -04:00
Clelia (Astra) Bertelli 32eb334faf Merge pull request #2734 from qdrant/clelia/auth-and-tls-in-hybrid-cloud
feat: securing and exposing a hybrid cloud qdrant instance (auth, tls and ingress guide)
2026-09-22 20:02:02 +02:00
clelia 675c2389b5 Merge branch 'clelia/auth-and-tls-in-hybrid-cloud' of https://github.com/qdrant/landing_page into clelia/auth-and-tls-in-hybrid-cloud 2026-09-22 18:58:16 +02:00
clelia e6bcf9f364 chore: apply other fixes 2026-09-22 18:58:03 +02:00
Clelia (Astra) Bertelli bab8d599fe fix: switch to sslip.io 2026-09-22 17:54:46 +02:00
Clelia (Astra) Bertelli c3a00fee55 Merge pull request #2690 from qdrant/clelia/pod-resizing-tutorial
feat: sizing, scaling and monitoring clusters
2026-09-22 17:50:49 +02:00
István Zoltán Szabó 08f307d7ef Merge pull request #2731 from qdrant/szabosteve/build-with-agent
Add Agentic Tools docs hub with prompts in the docs
2026-09-22 10:03:11 +02:00
trean f050578691 propose prompt style (#2767) 2026-09-22 09:46:31 +02:00
István Zoltán Szabó cd184b84e1 Adjust lower box padding. 2026-09-21 13:14:37 +02:00
István Zoltán Szabó aa9766eebd Amend prompt layout. 2026-09-21 11:13:28 +02:00
István Zoltán Szabó 3b58061329 Merge pull request #2705 from qdrant/szabosteve/edge-comparison
Add comparison page to the Edge docs
2026-09-18 14:02:33 +02:00
István Zoltán Szabó cc40d47f4f Address design feeback. 2026-09-18 09:53:33 +02:00
trean 4d8a8ceb08 Render island shortcode as fallback image in Markdown output (#2762) 2026-09-17 20:44:22 +02:00
István Zoltán Szabó 8130cdb680 Design changes. 2026-09-17 15:09:51 +02:00
István Zoltán Szabó 540277fda3 Address human review feedback. 2026-09-17 12:38:04 +02:00
Abdon Pijpelink 7b60d542cc Add encryption at rest docs for Managed Cloud (#2661)
* Add encryption at rest docs for Managed Cloud

* Make instructions more high-level

* Review feedback
2026-09-17 11:44:59 +02:00
copilot-swe-agent[bot]andszabosteve 5270c2e9c4 Address requested review comments
Co-authored-by: szabosteve <22324794+szabosteve@users.noreply.github.com>
2026-09-17 09:42:49 +00:00
Jenny 91c2cc5ddf Merge pull request #2761 from qdrant/blog/shift-multilingual-rag
Blog: SHIFTing Languages in Multilingual RAG
2026-09-17 10:46:38 +02:00
Adam Johnson 35d911d968 docs: add New Relic observability guide (#2741) 2026-09-17 13:46:04 +05:30
John Kupchanko | Qdrant 9ed103daf3 Article: Hyperbolic Embeddings in Qdrant
Joint article with Matin Mahmood of hyper3labs on hyperbolic embeddings for hierarchical data, and what it takes to serve them from Qdrant.

Covers the Poincare ball, a controlled comparison on the Google Product Taxonomy, the d+2 lift failing inside HNSW, and the prefetch plus Formula Query rescore that fixes it. Two figures are live against the collection: the taxonomy viewer and the CLIP comparison.
2026-09-16 17:08:03 -07:00
Evgeniya SukhodolskayaandClaude Opus 4.8 9a42215882 Widen SHIFT blog screenshots to 75%
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-09-16 18:48:15 +02:00
Evgeniya SukhodolskayaandClaude Opus 4.8 6c8e0161c7 Add astronaut cover for SHIFT blog (standard preview set)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-09-16 18:44:26 +02:00
Evgeniya SukhodolskayaandClaude Opus 4.8 673526a395 Add placeholder cover for SHIFT blog (astronaut pending)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-09-16 16:56:29 +02:00
Evgeniya SukhodolskayaandClaude Opus 4.8 72444d32af Add blog: SHIFTing Languages in Multilingual RAG
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-09-16 16:43:44 +02:00
István Zoltán Szabó 78cd5e0c76 More SCSS. 2026-09-16 10:50:20 +02:00
István Zoltán Szabó b64e2bd968 Adjust SCSS. 2026-09-16 10:14:18 +02:00
Clelia (Astra) Bertelli fd30130ef8 Merge pull request #2725 from qdrant/clelia/slicing-filter-tutorial
feat: slicing filter tutorial
2026-09-16 08:21:11 +02:00
István Zoltán Szabó 0a2683237f Small fixes. 2026-09-15 16:07:01 +02:00
István Zoltán Szabó 204d626936 Add AGENTS.md. 2026-09-15 12:58:09 +02:00