Showcase: Running a Community Campaign
A neighbourhood tenants’ association needs to fight a rent increase. They have five volunteers, no budget, and no technical skills. Here is how the base vault template turns their AI assistant into a campaign co-organiser.
The setup (15 minutes)
- Download the template from GitHub
- Open the folder in Obsidian
- Open any AI assistant (Claude, ChatGPT, or Gemini) and paste
the contents of
AGENTS.mdas context
That’s it. The assistant now knows:
- The folder structure and what goes where
- How to create content from templates
- How to publish pages to a website
- The rules for tone, style, and formatting
What the campaign looks like inside the vault
campaign-vault/
├── _private/
│ ├── 00_Strategy/
│ │ ├── mission.md "Stop the 18% rent increase"
│ │ └── positioning.md Target audience, key messages
│ ├── 01_Projects/
│ │ └── rent-campaign/
│ │ ├── brief.md Timeline, goals, tactics
│ │ ├── legal-notes.md Research on tenant rights
│ │ └── contacts.md Allies, journalists, officials
│ └── 02_Notes/
│ └── meeting-2026-03.md Notes from last organising meeting
│
└── public/
├── index.md Campaign landing page
├── articles/
│ ├── know-your-rights.md "What the law says about rent increases"
│ └── how-to-respond.md "Template letter to your landlord"
└── updates/
└── petition-launched.md "500 signatures in the first week"
Private files stay private. Public files become a website. The AI assistant respects this boundary automatically.
Five tasks the AI handles
1. Draft the campaign page
You say: “I want to create our main campaign page explaining the rent increase and what people can do.”
The assistant:
- Routes to the page template (
_ai/templates/page.md) - Asks for the key facts one at a time (how much? which buildings? when?)
- Drafts the page following the style guide
- Places it in
public/index.md
2. Write an explainer article
You say: “Write an article explaining tenant rights around rent increases in Switzerland.”
The assistant:
- Routes to the publish playbook (
_ai/playbooks/publish.md) - Starts from the article template
- Asks what legal points to cover
- Produces a 600-800 word article in plain language
- Places it in
public/articles/know-your-rights.md
3. Turn meeting notes into actions
You say: “Here are my rough notes from last night’s meeting. Turn them into a structured recap.”
The assistant:
- Asks you to paste or point to the notes
- Extracts decisions, action items, and owners
- Saves to
_private/02_Notes/meeting-2026-03.md - Never publishes private notes
4. Publish an update
You say: “We hit 500 petition signatures. Write a short update for the site.”
The assistant:
- Drafts a concise update
- Follows the style guide (direct, no jargon, respects people’s time)
- Places it in
public/updates/petition-launched.md - Walks you through the git commit and push
5. Deploy the site
You say: “Deploy.”
The assistant:
- Routes to the deploy playbook (
_ai/playbooks/deploy.md) - Runs the Quartz build
- Pushes to GitHub, triggering automatic deployment
- Confirms the site is live
What you don’t need
- No coding. Every interaction is a conversation.
- No prompt engineering. The playbooks handle that. You describe what you want in plain language.
- No web design. Quartz generates a clean, readable site from your markdown files.
- No CMS login. Your content lives in files you control, not on someone else’s platform.
- No specific AI tool. Claude, ChatGPT, Gemini, Cursor — the template works with all of them.
How to implement this
Prerequisites
- Obsidian (free) — to edit the vault
- A GitHub account (free) — to host the repo and deploy the site
- Any AI assistant — Claude, ChatGPT, Gemini, or a local model
Step by step
1. Download the template
Clone or download the base vault from GitHub:
git clone https://github.com/damianlaird/template my-campaign
cd my-campaign2. Make it yours
Edit these files:
AGENTS.md— update the “About” section with your organisation’s name and purposepublic/index.md— replace the placeholder with your landing pagepublic/llms.txt— update with your site’s descriptionpublic/robots.txt— update the sitemap URL
3. Install Quartz (for the website)
git clone https://github.com/jackyzha0/quartz.git _quartz
cd _quartz && npm installUpdate _quartz/quartz.config.ts:
pageTitle— your campaign or organisation namebaseUrl— your domain- Theme colours if you want
4. Preview locally
cd _quartz
npx quartz build --serve --directory ../publicOpen http://localhost:8080 to see your site.
5. Start working
Open the vault folder in Obsidian. Open your AI assistant. Tell it
what you need. It reads AGENTS.md and follows the playbooks.
6. Deploy (when ready)
Push to GitHub. If you have hosting configured with GitHub Actions,
the site deploys automatically. See _ai/playbooks/deploy.md for
the full setup.
Adapt it
The base vault is a starting point. Customise it for your context:
- Add playbooks — write new step-by-step procedures in
_ai/playbooks/for your specific workflows (petition drives, letter-writing campaigns, press releases) - Add templates — create content starters in
_ai/templates/for recurring formats (updates, calls to action, event notices) - Adjust the style guide — edit
_ai/style/style_guide.mdto match your voice - Add prompts — save reusable LLM prompts in
_ai/prompts/for tasks you repeat often
The AI assistant picks up your changes automatically. Add a new playbook, and next time you describe that task, it knows what to do.