Internal codename: GroveEngine
A modern, multi-tenant blogging platform where users get their own blogs on subdomains (username.grove.place). Built entirely on Cloudflare infrastructure with SvelteKit, featuring unique gutter annotations, a powerful markdown editor, and an optional community feed. Lattice is the core framework that supports the entire Grove ecosystem—the thing that holds everything else up.
| Package | Version | Description |
|---|---|---|
| @autumnsgrove/groveengine | 0.5.0 | Lattice — Multi-tenant blog engine for Cloudflare Workers |
| example-site | 0.1.0 | Demo site showcasing all Lattice features |
| domains | 0.1.0 | AI-powered domain search tool for client consultations |
| Site | URL | Description |
|---|---|---|
| Grove Landing | grove.place | Landing page with email signup |
| Example Blog | example.grove.place | Demo site (The Midnight Bloom Tea Café) |
| Forage | forage.grove.place | AI-powered domain discovery |
| CDN | cdn.grove.place | Content delivery network |
| Auth | auth.grove.place | Heartwood authentication service |
| Admin | admin.grove.place | Heartwood admin dashboard |
| Login | login.grove.place | Heartwood login portal |
| Scout | scout.grove.place | GroveScout |
| Music | music.grove.place | Aria (music curation) |
| Search | search.grove.place | GroveSearch |
| Project | Repository | Description |
|---|---|---|
| Heartwood | AutumnsGrove/GroveAuth | Authentication service with Google OAuth 2.0 + PKCE |
| GroveScout | AutumnsGrove/GroveScout | Scout tool |
| Aria | AutumnsGrove/GroveMusic | Music curation platform |
| GroveSearch | AutumnsGrove/GroveSearch | Search service |
| Forage | AutumnsGrove/Forage | AI-powered domain discovery tool |
GroveEngine/
├── packages/
│ ├── engine/ # @autumnsgrove/groveengine - Blog engine
│ │ ├── src/
│ │ │ ├── lib/ # Core library code
│ │ │ │ ├── auth/ # JWT and session management
│ │ │ │ ├── components/ # Svelte components (admin, custom)
│ │ │ │ ├── payments/ # Stripe payment system
│ │ │ │ ├── ui/ # 50+ UI components with design system
│ │ │ │ └── utils/ # 12 utility modules
│ │ │ └── routes/ # SvelteKit routes (blog, admin, API, auth)
│ │ └── migrations/ # D1 database migrations (7 migrations)
│ └── example-site/ # Demo site: The Midnight Bloom Tea Café
├── domains/ # Forage: AI-powered domain discovery (forage.grove.place)
├── landing/ # Marketing site for grove.place
├── docs/ # Project documentation
│ ├── README.md # Master project summary
│ ├── specs/ # Technical specifications (7 specs)
│ ├── guides/ # Setup and onboarding guides
│ └── prompts/ # Research and implementation prompts
├── AgentUsage/ # 24+ agent workflow guides
└── assets/ # Brand assets & visuals
- Gutter Annotations - Unique sidebar annotation system for contextual notes on blog posts
- Markdown Editor - Full-featured editor with live preview, 7 themes, drag-drop images, slash commands, snippets, and ambient sounds
- Heartwood Integration - Google Sign-In with OAuth 2.0 + PKCE, plus magic code fallback via Heartwood
- Multi-Tenant Architecture - Subdomain-based isolation with per-tenant databases
- Cloudflare Native - D1 database, R2 storage, KV caching, Workers deployment
- 50+ UI Components - Complete design system with primitives, charts, galleries, and form components
- CDN Admin Uploader - R2-powered media upload with magic byte validation
- Stripe Payments - Payment system with provider abstraction for subscriptions
- AI-Powered Domain Search - Multi-provider AI (Claude, DeepSeek, Kimi, Llama 4) with live Cloudflare pricing
- Accessibility Fonts - 7 fonts including OpenDyslexic, Atkinson Hyperlegible, and Lexend
# Install the engine package
pnpm add @autumnsgrove/groveengine// Import blog components
import { ContentWithGutter, MarkdownEditor } from '@autumnsgrove/groveengine';
// Import utilities
import { parseMarkdown } from '@autumnsgrove/groveengine/utils/markdown';Current Phase: Phase 1 - MVP Development
Domain Secured: grove.place ✅
Completed:
- ✅ Domain secured (grove.place)
- ✅ Blog engine migrated from AutumnsGrove (v0.4.5)
- ✅ NPM packages published (@autumnsgrove/groveengine)
- ✅ Multi-tenant database schema designed (7 migrations, 25+ tables)
- ✅ Heartwood integration with Google Sign-In
- ✅ Landing page deployed with "How It Works" section
- ✅ Stripe payments system with provider abstraction
- ✅ CDN admin upload system with R2 storage and magic byte validation
- ✅ Example site showcasing all features
- ✅ AI-powered domain search tool with multi-provider support
- ✅ Security audit completed (2025-12-05) - critical issues fixed
- ✅ SSE streaming for real-time domain search updates
In Progress:
- 🔄 First client onboarding (Mom's publishing house)
- 🔄 Basic analytics implementation
Recently Completed (v0.5.0):
- ✅ Post limits enforcement (250 for Starter plan) via Heartwood
- ✅ Google Sign-In with OAuth 2.0 + PKCE
Key Links:
An AI-powered domain discovery tool that speeds up client consultations from 2-3 weeks to 1-2 days. Before you can plant, you have to search—and Forage does the searching so you can focus on choosing.
Features:
- Multi-provider AI swarm (Claude, DeepSeek, Kimi, Llama 4)
- Real-time SSE streaming for live progress updates
- Live pricing from Cloudflare Registrar
- Pricing tiers: bundled (≤$30), recommended (≤$50), standard, premium
- Expandable cards with domain evaluation scores
- RDAP metadata (registrar, expiration date)
- Token usage tracking with cost estimation
- Follow-up quiz system for refined searches
Tech: SvelteKit + Cloudflare Durable Objects + TypeScript
See docs/visual-overview.md for:
- Platform architecture diagram
- Development roadmap timeline
- Pricing structure
- Technology stack
- User flow diagrams
Nobody wants generic blogging platforms. Neurodivergent folks especially hate them—the endless customization rabbit holes, the algorithm-driven feeds, the sense that you're always performing for an audience you can't see.
Grove is different. It's:
-
Queer-friendly infrastructure — A safe digital space, especially valuable when physical environments feel hostile. Your corner of the internet, without surveillance capitalism.
-
Community-owned, solarpunk-aligned — Decentralized by design, built to be genuinely helpful rather than exploitative. No investor pressure to enshittify.
-
Portable by philosophy — Your content lives in markdown files. You can export and migrate anytime. We don't hold your data hostage.
-
Built for people, not engagement metrics — No dark patterns, no algorithmic manipulation. Just a place to Be.
This isn't just a SaaS—it's about helping people have their own space online, away from big tech algorithms.
| Plan | Price | Key Features |
|---|---|---|
| Free | $0/month | Meadow access, 20 public comments/week, no blog |
| Seedling | $8/month | 50 posts, 1GB storage, 3 themes + accent, unlimited comments |
| Sapling | $12/month | 250 posts, 5GB storage, 10 themes + accent, email forwarding |
| Oak | $25/month | Unlimited posts, 20GB storage, custom domain (BYOD), theme customizer, full email |
| Evergreen | $35/month | Unlimited posts, 100GB storage, custom domain included, custom font uploads, 8hrs support |
Phase 1: Lattice MVP - In Progress
- Post limits, analytics, first client onboarding
Phase 2: Multi-tenant Infrastructure
- Subdomain routing, tenant isolation, plan management
Phase 3: Grove Website
- Marketing site, billing dashboard, customer portal
Phase 4: Meadow
- Community feed, post sharing, voting, emoji reactions
Phase 5: Polish & Scale
- Additional themes, advanced analytics, comment system
Goals:
- 10 clients by Month 3
- 20 clients by Month 6
- $500 MRR by Month 12
- Frontend: SvelteKit 2.5+, Svelte 5, TypeScript, Tailwind CSS 3.4+
- Backend: Cloudflare Workers, D1 (SQLite), KV, R2 Storage, Durable Objects
- Payments: Stripe (with provider abstraction for future Paddle/LemonSqueezy)
- Auth: Heartwood (Google OAuth 2.0 + PKCE, magic code fallback)
- Email: Resend
- Markdown: Marked.js 17+, gray-matter (YAML frontmatter)
- Charts: Chart.js 4.5+
- Icons: Lucide Svelte
- UI: 50+ components with bits-ui primitives
- AI Providers: Claude, DeepSeek, Kimi, Llama 4 (for domain search)
- Testing: Vitest 4.0+, Testing Library, happy-dom
- Build: Vite 5.4+, pnpm 9+ workspaces
- Zero data loss incidents
- Page load time < 2 seconds
- < 10 hours support per client/month
- < 5% monthly churn rate
- Net Promoter Score > 50
- Node.js 20+
- pnpm 9+
- Cloudflare account (for deployment)
# Clone the repository
git clone https://github.com/AutumnsGrove/GroveEngine.git
cd GroveEngine
# Install dependencies
pnpm install
# Start development server (engine)
cd packages/engine
pnpm dev
# Start with Cloudflare bindings (D1, R2, KV)
pnpm dev:wrangler
# Start landing page
cd landing
pnpm dev
# Start example site
cd packages/example-site
pnpm dev
# Start domain search tool
cd domains
pnpm dev# Run tests (engine)
cd packages/engine
pnpm test
# Run tests with coverage
pnpm test:coverage
# Run security tests
pnpm test:security
# Run tests with UI
pnpm test:ui# Build engine package for npm
cd packages/engine
pnpm build:package# Apply migrations locally
cd packages/engine
wrangler d1 migrations apply grove-engine-db --local
# Apply migrations to production
wrangler d1 migrations apply grove-engine-db --remoteMIT
Project Status: Phase 1 - MVP Development Domain: grove.place ✅ Engine Version: 0.5.0 Last Updated: 2025-12-09