Create a blog with Astro and deploy it on Cloudflare Workers as a static website.
- ✅ Minimal styling (make it your own!)
- ✅ 100/100 Lighthouse performance
- ✅ SEO-friendly with canonical URLs and OpenGraph data
- ✅ Sitemap support
- ✅ RSS Feed support
- ✅ Markdown & MDX support
- ✅ Built-in Observability logging
This project includes TWO powerful AI systems for real estate:
Multi-agent AI system for real estate lead management:
- Lead Sourcing (Gemini + Playwright): Advanced web scraping
- ROI Analysis (DeepSeek): Complex financial calculations
- Outreach Generation (Claude): Personalized messaging
- Knowledge Management: Queryable lead intelligence
- Google Sheets Integration: Automatic logging
cd backend
./setup.sh
python test_basic.pyProduction-ready Google Cloud Functions with:
- 🔥 Pace Morby Scoring: Creative finance deal evaluation
- 💰 Financial Analysis: NOI, Cap Rate, ROI calculations
- 💳 Stripe Subscriptions: Monetize your deal flow
- 🤖 Gemini AI: Deep strategy analysis
- ⏰ Automated Workflow: 60-minute daily power play
- 📊 Cloud Scheduler: Auto-scraping every 6 hours
cd cloud-functions
./deploy.shFull Documentation | Deployment Guide
Outside of this repo, you can start a new project with this template using C3 (the create-cloudflare CLI):
npm create cloudflare@latest -- --template=cloudflare/templates/astro-blog-starter-templateA live public deployment of this template is available at https://astro-blog-starter-template.templates.workers.dev
This project requires several environment variables for its AI agents, integrations, and compliance features.
-
Copy the example environment file:
cp .env.example .env
-
Fill in your actual API keys and credentials in
.env
The .env.example file contains templates for:
- AI Models (Claude, Gemini, DeepSeek) - Powers the specialist agents
- LangGraph - Orchestration and agent workflow management
- Cloudflare D1 - Database persistence for agent memory across sessions
- Slack Integration - Bot credentials for Slack workspace integration
- SBA 7(a) API - Government funding API for automated underwriting
- Philadelphia Compliance - Tax validation and compliance logging
See .env.example for detailed documentation on each variable.
⚠️ Security Note: Never commit your.envfile to version control. It's already listed in.gitignore.
Astro looks for .astro or .md files in the src/pages/ directory. Each page is exposed as a route based on its file name.
There's nothing special about src/components/, but that's where we like to put any Astro/React/Vue/Svelte/Preact components.
The src/content/ directory contains "collections" of related Markdown and MDX documents. Use getCollection() to retrieve posts from src/content/blog/, and type-check your frontmatter using an optional schema. See Astro's Content Collections docs to learn more.
Any static assets, like images, can be placed in the public/ directory.
All commands are run from the root of the project, from a terminal:
| Command | Action |
|---|---|
npm install |
Installs dependencies |
npm run dev |
Starts local dev server at localhost:4321 |
npm run build |
Build your production site to ./dist/ |
npm run preview |
Preview your build locally, before deploying |
npm run astro ... |
Run CLI commands like astro add, astro check |
npm run astro -- --help |
Get help using the Astro CLI |
npm run build && npm run deploy |
Deploy your production site to Cloudflare |
npm wrangler tail |
View real-time logs for all Workers |
Check out our documentation or jump into our Discord server.
This theme is based off of the lovely Bear Blog.
