Skip to content

Repository files navigation

Fractal Framework

A wizard that helps anyone turn a real local problem into a source-cited advocacy website — without needing to be a researcher, a designer, or a developer.

You give it a place. It does the research. It writes the site. Every factual claim on the page traces back to a real source document you can click and verify yourself.

A generated advocacy site about Hualapai Valley groundwater depletion, with bold display typography and inline citation chips

A campaign site auto-generated by the wizard for the Hualapai Valley groundwater vacuum in Mohave County, Arizona. The visual chrome is designed per-campaign; every factual sentence underneath carries a hash citation linking to a real source document.


Who this is for

You might be:

  • A high-school or college student who's watching something go wrong in your community — the water table dropping, the school being underfunded, the local trail being paved over — and wants to do something but doesn't know where to start.
  • An educator teaching civic engagement, journalism, environmental studies, or political science, looking for a project that gives students a real-world deliverable they can show their family and put on the web.
  • A volunteer or adult advocate who already cares about a local issue but doesn't have the time, technical skill, or design taste to build a website that takes the issue seriously.
  • Anyone who's tired of seeing low-quality AI-generated content flooding the internet on topics they care about, and wants tools that have actual editorial discipline — every fact cited, every source linked, no hallucinations.

If any of that sounds like you, keep reading.


What it actually does

You type a location into the wizard — say, "Kingman, Arizona" or "Tunica County, Mississippi" or just your hometown.

The wizard then:

  1. Identifies the local issue worth working on. A research agent loaded with the framework's methodology looks at your location, runs fresh research, and proposes what the most urgent neglected issue ("activism vacuum") in that place looks like. It explains its reasoning and shows you which sources it drew from.
  2. Lets you review and edit before locking in. You can redirect, sharpen the framing, or start over.
  3. Runs deep research against trusted sources to produce the campaign's content — hero pitch, key facts, an "about" essay, what's at stake if nothing changes, ways for readers to help, and a full bibliography.
  4. Cites every claim. Every factual sentence on the resulting site carries a small clickable citation chip. Hover it: the source's title and URL appear in a tooltip. Click it: the source opens in a new tab.
  5. Optionally designs the visuals using Google Stitch. The wizard validates Stitch's output at every pass to make sure no citation got paraphrased, summarized, or dropped.
  6. Hands you a single HTML file you can drop on any free static host — Cloudflare Pages, GitHub Pages, Netlify, a USB stick — and the site just works.

The whole pipeline runs locally on your computer. Your campaign, your sources, your machine.

The wizard's home page showing the hero, the Pick for me frame with a location input, and a Find vacuum button

The wizard's home page. You type a location into the box, the framework takes it from there.


See it in action

The framework has been used to build several live campaigns:

  • Save Mohave — fossil groundwater depletion in the Hualapai Valley Basin (Arizona). Live and active.
  • Save Yavapai — Big Chino aquifer and the Verde River dependency (content-complete).
  • Save La Paz — rural groundwater export under Arizona statutory framework (mid-build).

If you want to see the wizard's auto-generated output, the working test case in this repo is "Save Hualapai Basin" — clone the repo, run the wizard, and you can produce the equivalent site yourself.


Why this is different from "AI writes a website for me"

Most AI-generated content fails one editorial test: you can't verify the claims. The writing sounds confident, but the facts are paraphrased, hallucinated, or attributed to sources that don't exist. Real journalists, educators, and advocates know not to trust that output.

This project enforces a discipline at every layer:

  • Hash citations on every claim. Each factual sentence on the generated site carries a token like [WRRC_Mohave_County_Page20_AquiferDeficit] that maps to a real document the system actually read.
  • Refusal protocol. When the underlying research can't source a claim, the system declines to make the claim — instead of making something up.
  • Source-tier tags. Government records (Tier 1), established journalism (Tier 2 or 3), and weaker sources get distinct visual markers so readers can judge for themselves.
  • Validation gate on visuals. If the system's visual designer ever drops or modifies a citation while designing the page chrome, that pass is rejected automatically and retried.
  • Audit trail. Every research query and response is logged so the work is reproducible by anyone.

The result reads like a regional advocacy site that was carefully assembled by a small human team — because the discipline that makes that possible is now mechanically enforced.

A hover tooltip showing a citation chip with the source title, URL, and citation key

The hover-tooltip citation: every factual sentence carries one. Hover to see the source document's title and URL; click to open it in a new tab. This is what separates source-cited advocacy from AI slop.


What an "activism vacuum" is

A core idea of the framework, in plain terms:

In every county in the United States, there's at least one issue area where all five of these are true:

  • The problem is real (not invented, not exaggerated).
  • The current response is inadequate (regulators are absent, asleep, or outmatched).
  • Community awareness is low (most residents don't know about it).
  • The regulatory framework is weak (laws don't cover it, or aren't enforced).
  • The resources to fix it are within reach (it's not "we need a billion dollars" — it's "we need people to know").

These are activism vacuums. They're the places where one well-built campaign can actually move the needle, because nobody else is paying attention. The framework helps you find one in your own community and build the kind of legible, defensible public-facing site that lets others see what you see.


Try it yourself

Heads up: today this is a developer tool. You'll need to clone a Git repository, install some software, and provide your own API keys. A hosted, no-install version is on the roadmap. If you're not technical, consider pairing with someone who is — or come back later when the hosted version is ready.

What you'll need

  • A computer running Windows, macOS, or Linux.
  • Node.js 22+ and pnpm.
  • Python 3.11+ for the research engine.
  • A Google account (NotebookLM is free with one).
  • One LLM provider API key — Google Gemini, OpenAI, or DeepSeek. Pick whichever you already pay for, or sign up for a free tier.
  • Optional: a Google Stitch API key, if you want AI-generated per-campaign visual design.

Steps

# 1. Get the code
git clone https://github.com/anitacigawet/fractal-framework.git
cd fractal-framework

# 2. Install the wizard dependencies
cd wizard
pnpm install

# 3. Install the research engine's Python dependencies
cd ../engine/notebooklm_bridge
pip install -r requirements.txt
playwright install chromium

# 4. Authenticate to NotebookLM (one-time)
notebooklm login

# 5. Copy the example env file
cd ../../wizard
cp .env.example .env

# 6. Launch the wizard (two terminals)
pnpm dev:server   # terminal 1
pnpm dev:client   # terminal 2

Then open http://localhost:5173 in your browser. Add your API keys via the Settings page, click "Set up Framework Notebook," and you're ready to try the "Pick for me" flow with a location.

On Windows, double-click Launch_Wizard.bat from the repo root for a one-click launcher.


What works today

  • Identify the most pressing activism vacuum for any U.S. location
  • Free-form intake chat with a framework-aware guide
  • Source curation with tier recommendations
  • Six source-cited site sections per campaign (hero, key facts, about, at-stake, how-to-help, bibliography)
  • Hash-citation hover tooltips linking to real source URLs
  • Optional Google Stitch generative visual design with strict citation-preservation validation
  • Single-file HTML download you can host anywhere

What this can and can't guarantee

Worth being honest about what the discipline gives you and where the limits are.

What it guarantees: every factual sentence on the generated site carries a hash citation that maps to a real document the system actually read. You (or any reader) can click through to verify. The system refuses to write claims it can't source.

What it doesn't guarantee: that the underlying source got the fact right. If a Tier-3 journalism source mis-states a number, or if the research agent mis-summarizes a real source, the wizard will happily emit a confidently-cited sentence pointing at the document anyway. The citation is mechanically valid; the summary of what the source says might not be. Treat this as a tool that makes provenance traceable — not a tool that replaces editorial review of the underlying material.

What's planned

  • Hosted, no-install version
  • Starter prompts for non-water issue types — wildfire, housing, educational equity, public health, civic engagement, opioid response
  • One-click deploy to Cloudflare Pages or GitHub Pages
  • Mobile-friendly authoring (today the wizard is desktop-only)
  • Multi-user / team workflows

How this repository is organized

  • wizard/ — the local web app you actually use. The front door of the project.
  • engine/ — the NotebookLM research bridge. Python; enforces the editorial discipline at the research layer.
  • docs/ — the Fractal Framework methodology: vacuum identification, scoring, the master template structure, the original 2025 project outline.
  • templates/ — 70+ county-specific activism template documents from the 2025 work.
  • learnings/ — how the methodology evolved across building three real campaigns. Reads like a development log; honest about what didn't work the first time.
  • design/ — visual design iterations.
  • PRODUCT_DESIGN.md — the technical product spec.

If you want the conceptual foundation, start with docs/fractal_framework_methodology_guide.md.

If you want to see how the methodology evolved into the working tool, read learnings/methodology_evolution.md — seven waypoints across six months of building.


Credits

This work draws on lessons from running the framework against real activism vacuums in Arizona — Mohave County (water), Yavapai County (water), and La Paz County (groundwater export). The case-study repository, Project Save Arizona, lives separately.

The wizard's visual design system grew from a human-directed design iteration with Claude.ai. Optional per-campaign visual generation is powered by Google Stitch. The repository contains the implemented design, not the private design conversation or third-party reference images used during it.


A note on intent

The Fractal Framework is built on a belief: the next generation of local advocacy doesn't need more loud opinions — it needs more defensible arguments, made legible to people outside the affected community, made by ordinary people who care.

If you live in a place where something is going wrong and you've been waiting for someone with the right skills to do something about it: with the right tools, you might be that person now.


License

Fractal Framework is source-available under the PolyForm Noncommercial License 1.0.0. You can study, modify, and redistribute it for noncommercial purposes under the license terms. Commercial use is not granted.

The project is intended for civic, educational, and journalistic research: turning a real local problem into a source-cited public-facing site. Using the same pipeline to compile dossiers on private individuals without their knowledge, or to produce disinformation, is outside that intent.

About

Turn a local problem into a source-cited advocacy website with a guided research and editorial workflow.

Topics

Resources

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages