Bluefish; Quartz; 🤐💣
I’ve wanted to cover Bluefish for a while (mostly as a last-ditch effort to breathe some life back into the project), and have had notes for Quartz sitting in a markdown doc for a minute. So, that, combined with the bitter disappointment that is my industry — and folks in it that I thought had a moral compass — this week, we have a theme-less Drop.
I will take another mo’ to encourage folks who do experiment or work with LLMs locally (and with GPUs) to give Qwen 3 a go. It is outperforming my Llama workflows (I swapped to Qwen — qwen3:14b speficically — in all of my Modelfiles) by a wide margin. I’m going to try some of the smaller versions of it in various contexts as well.
And I will take yet another mo’ to note that even with access to and evidence of using an MCP server (one for my $WORK we’re hoping to open source, soon), Claude straight up made stuff up about one of our network traffic detection rules. So, be careful out there.
TL;DR
(This is an LLM/GPT-generated summary of today’s Drop using Ollama + Qwen 3 and a custom prompt.)
- Bluefish is a web diagramming framework that uses relations as building blocks for flexible diagram creation, offering a JSX-inspired API and compatibility with Observable notebooks (https://bluefishjs.org/)
- Quartz is a static-site generator that supports Markdown and Obsidian features, emphasizing speed, expandability, and search capabilities for knowledge management (https://quartz.jzhao.xyz/)
- A blog post discusses zip bomb protection techniques, where servers use middleware to detect and respond to malicious bots attempting to decompress large files (https://idiallo.com/blog/zipbomb-protection)
Bluefish

Bluefish (GH) is a web diagramming framework created by Josh Pollock and the MIT Visualization Group. It is based on the concept of relations as fundamental building blocks rather than traditional UI components. While conventional UI libraries build hierarchies where components control their children’s layout, Bluefish introduces relations that can share children and partially specify their layout. This enables more flexible diagram creation, particularly for representing complex relationships between elements.
This new framework attempts to bridge the gap between verbose low-level toolkits and limited high-level diagramming tools. Through declarative, composable relations, we can create diagrams matching conceptual structures without rigid hierarchies or manual bounding box calculations.
It comes in the form of JavaScript library which is also fully compatible with Observable notebooks, and uses a JSX-inspired API familiar to a fairly large contingent of web developers. It extends traditional tree-based scenegraphs…
In this context, a scene graph is a hierarchical tree structure that organizes objects in a scene by their spatial and logical relationships. Each node represents an entity, with parent-child connections defining transformations (translation, rotation, scaling) relative to parent nodes. This structure enables efficient scene management, rendering optimization, and intuitive manipulation of complex object relationships in computer graphics applications.
…to compound graphs that capture both hierarchical and adjacent relationships, allowing declarative expression of overlapping spatial relationships.
It’s a neat concept, and you can find a pretty decent tutorial in this notebook. There’s also a good paper with many examples.
Bluefish is worth investigating if only to grok the concepts the framework is trying to embody. Unfortunately, it increasingly feels like it’s going to just be another abandoned academic project, especially since the documentation is incomplete.
Quartz

Quartz (GH) is an open-source static-site generator that transforms Markdown into interactive websites quickly and easily. It comes batteries included with all needed features, letting you concentrate on content creation rather than setup and configuration.
Built with Node.js, Quartz works particularly well with Obsidian, with even more included batteries that let you publish Obsidian notes online without hassle. It supports Obsidian-specific elements including wikilinks, backlinks, graph visualization, Mermaid diagrams, callouts, and preview popovers. This eliminates the usual complications when adapting other site generators to handle Obsidian’s specialized Markdown formats. (I’m only relating all that since they go out of their way to note the Obsidian support).
Setup requires minimal steps: install Node.js (20+) and npm, then initialize your Quartz project through terminal commands. Documentation covers content creation, layout customization, site configuration, and deployment. Quartz simplifies GitHub integration and publishing to platforms like GitHub Pages, Netlify, Cloudflare Pages, or Vercel. The command “npx quartz sync” handles all Git operations, making publishing straightforward even for Git novices. You can also just do what I did and rsync the public directory to your own self-hosted site.
Quartz emphasizes speed and expandability. It features immediate updates and partial rebuilds during development. The final product consists of static HTML, JavaScript, and CSS files, resulting in quick loading times and compact file sizes. The default single-page application structure contributes to its responsiveness.
The plugin system enhances functionality. Users can add plugins that modify, filter, or collect content. Examples include transformers that convert Markdown to HTML or filters that exclude files based on frontmatter information. This makes Quartz adaptable for advanced users while remaining simple for beginners.
Search and discovery features are paramount in Quartz. Quartz-built sites include rapid full-text search, automatic backlinks, link previews, and local graph visualization—crucial for knowledge management and “digital gardens”. Advanced capabilities like LaTeX rendering, code highlighting, language support, and theme customization (including Obsidian theme conversions) work immediately without configuration.
It’s a fast, human-friendly, feature-complete static-site generator, ideal for publishing Markdown notes but especially good at creating knowledge bases.
You can find the Markdown source files for the site I linked in https://rud.is/dl/quartz-expanse.tgz.
🤐💣

Short last section as it took me way too long to realize that I did not have enough documentation to effectively recreate an Alice/Bob person-in-the-middle diagram with Bluefish, and also due to obsessing on the content for the middle section’s example site.
This is making the rounds, so most of you likely saw it already.
It’s fun read where the author uses zip bombs (i.e., small compressed files that expand into massive data) to crash malicious bots by overwhelming their memory when they attempt to decompress them, effectively protecting their server from attacks. While not foolproof, this tactic is effective against unsophisticated bots and is implemented via server middleware that detects and responds to suspicious activity.
FIN
Remember, you can follow and interact with the full text of The Daily Drop’s free posts on:
- 🐘 Mastodon via
@dailydrop.hrbrmstr.dev@dailydrop.hrbrmstr.dev - 🦋 Bluesky via
https://bsky.app/profile/dailydrop.hrbrmstr.dev.web.brid.gy
☮️
Leave a comment