7 Commits

Author SHA1 Message Date
ODOO4projects Bot ed5119e92f Publish blog post: Local vs International Donors: Fundraising communication in 2026 2026-03-27 08:29:23 +00:00
ODOO4projects Bot bc33287967 Publish blog post: Low-cost Donor CRM Migration for Small NGOs (2026-03-27) 2026-03-27 08:22:26 +00:00
ODOO4projects Bot 0e1b73f6d3 Add blog post: local vs international donors 2026 2026-03-26 21:34:08 +00:00
Oliver a74de43248 Update README.md 2026-03-25 18:21:03 -03:00
Web_Designer 819665225f Add blog post: Reduce NGO Admin by 20–40%: 7 Workflows You Can Automate This Month 2026-03-25 20:55:58 +00:00
Oliver 3dd49559ac 0 2026-03-25 16:14:17 -03:00
Oliver c81565749a 0 2026-03-25 16:12:40 -03:00
6 changed files with 195 additions and 77 deletions
+16 -26
View File
@@ -5,12 +5,24 @@
**Stack:** Static HTML · Tailwind CSS · Vanilla JS **Stack:** Static HTML · Tailwind CSS · Vanilla JS
--- ---
## BLOG POSTS
Blog posts live in `blog.json` — do not create separate backup files.
To add a blog post customize this command
jq '.arrays[0] = [$NEW_JSON] + .arrays[0]' blog.json > tmp.json && mv tmp.json blog.json
## Repository Rules ## Repository Rules
- Do not touch this readme
- Blog posts live in `blog.json` — do not create separate backup files. - Keep the seperation of Site and the blogposts in blog.json
- No backup files in the repo. Example of JSON structure for blog.json
- Update this README with every commit. {
"area": "Transparency",
"title": "Every Peso on the Page: Ana's Ledger Story",
"teaser": "<p>Ana replaced five notebooks with a four-stop impact ledger and now answers donor questions in seconds.</p>",
"content": "<h3>Every peso needs a map</h3>\n<p>Ana used to juggle five notebooks and still felt blind when a donor asked where their coin landed.</p>\n<h3>Pressure points</h3>\n<p without late nights.</p>\n",
"date": "2026-03-22"
},
--- ---
@@ -26,22 +38,6 @@
--- ---
## CI Checks (required on every push)
- **HTML lint** — valid markup, no broken anchors
- **JS lint** — no errors, no `console.error` left in production paths
- **Tailwind build** — `npx tailwindcss -i ./src/input.css -o ./assets/site.css --minify` must exit 0
- **Corporate design compliance:**
- No CSS gradients — `gradient`, `bg-*-gradient`, `linear-gradient`, `radial-gradient` are forbidden
- No CSS animations or keyframes — `animate-*`, `@keyframes`, transform-based `hover:translate-*` are forbidden
- No blur or glassmorphism effects — `backdrop-blur`, `backdrop-filter` are forbidden
- Colors must use the approved brand palette only: `brand-ink · brand-primary · brand-accent · brand-sunrise · brand-emerald · brand-snow · brand-smoke`
- Images must be served from `odoo4projects.com`, `images.unsplash.com`, or local `assets/`
- **Accessibility** — heading hierarchy (one `<h1>` per page), `alt` on all images, sufficient contrast (WCAG AA)
- **Performance budget** — total page weight ≤ 200 KB (excluding cached fonts); critical render path ≤ 1 s on fast 3G
- **SEO** — `<title>`, `<meta name="description">`, `<h1>`, canonical `<link>`, and JSON-LD structured data must be present
---
## Languages ## Languages
@@ -52,9 +48,3 @@
| `de` | Deutsch | | `de` | Deutsch |
All UI strings are managed via the inline `translations` object in `index.html`. All UI strings are managed via the inline `translations` object in `index.html`.
---
## Focus Keywords
`NGO donor management` · `transparent donations` · `Odoo for NGOs` · `donor communication` · `minimal admin for charities`
Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.9 KiB

+179 -34
View File
File diff suppressed because one or more lines are too long
BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.9 KiB

-17
View File
@@ -124,23 +124,6 @@
<button id="blog-toggle" type="button" class="text-brand-accent font-semibold hover:underline underline-offset-4">Browse all articles →</button> <button id="blog-toggle" type="button" class="text-brand-accent font-semibold hover:underline underline-offset-4">Browse all articles →</button>
</div> </div>
<div id="blog-grid" class="grid gap-6 md:grid-cols-3"></div> <div id="blog-grid" class="grid gap-6 md:grid-cols-3"></div>
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Article",
"headline": "How to Automate Grant Reporting for Small NGOs — StepbyStep with Odoo + n8n",
"datePublished": "2026-03-25",
"author": {
"@type": "Person",
"name": "Odoo4Projects NGO Team"
},
"description": "Automate grant reporting for small NGOs with Odoo and n8n — reduce errors, save time, and simplify compliance.",
"mainEntityOfPage": "https://ngo.odoo4projects.com/automate-grant-reporting-odoo-n8n",
"keywords": "automate grant reporting, Odoo grants, n8n automation NGO, grant compliance automation, NGO reporting software"
}
</script>
<p id="blog-error" class="text-sm text-brand-ink/70 mt-6 hidden"></p> <p id="blog-error" class="text-sm text-brand-ink/70 mt-6 hidden"></p>
</div> </div>
</section> </section>
Binary file not shown.

After

Width:  |  Height:  |  Size: 192 KiB