A professional B2B SaaS platform for finding certified Odoo partners in Germany. Built with pure HTML/CSS/JavaScript and powered by Supabase.
- 129 SEO-optimized blog articles about Odoo ERP
- Partner directory with advanced search capabilities
- EEAT compliance with German business trust indicators
- Professional Grove.ai design aesthetic
- AI-generated hero images for each article
- Static site generation for optimal performance
- German business context (TÜV, DSGVO certifications)
- Node.js 18+
- npm
- Supabase account
- DigitalOcean account (for deployment)
- Clone the repository:
git clone https://github.com/YOUR_USERNAME/german-odoo-directory.git
cd german-odoo-directory- Install dependencies:
npm install- Copy
.env.templateto.envand add your Supabase credentials:
cp .env.template .env- Build the site:
npm run build- Preview locally:
npm run previewgerman-odoo-directory/
├── src/ # Source files
│ ├── templates/ # HTML templates
│ ├── styles/ # CSS files
│ └── scripts/ # JavaScript modules
├── build-scripts/ # Build and generation scripts
├── config/ # Configuration files
├── dist/ # Generated static site (git ignored)
└── supabase/ # Supabase edge functions
npm run build- Build the complete static sitenpm run dev- Start local development servernpm run generate:blog- Generate blog pagesnpm run generate:partners- Generate partner pagesnpm run generate:images:secure- Generate AI images for articles
- Push to GitHub:
./push-to-github.sh- Deploy via DigitalOcean Dashboard:
- Go to DigitalOcean App Platform
- Create new app from GitHub repository
- Configure as Static Site (FREE tier)
- Set build command:
npm install && npm run build - Set output directory:
dist
Add these to your DigitalOcean app:
SUPABASE_URLSUPABASE_ANON_KEY
- Primary Color: #714B67 (Purple)
- Font: Inter
- Grid: 8px baseline
- Aesthetic: Grove.ai minimalist design
- Lighthouse Score: 95+
- Static HTML/CSS/JS: No framework overhead
- Optimized Images: Served from Supabase CDN
- Caching: Aggressive cache headers for assets
- CSP headers configured
- No exposed API keys
- Supabase RLS enabled
- HTTPS enforced
- Schema.org structured data
- XML sitemap
- RSS feed
- Meta descriptions with keywords
- Clean URLs
- German language optimization
- Fork the repository
- Create your feature branch
- Commit your changes
- Push to the branch
- Open a Pull Request
MIT License - see LICENSE file for details
For issues or questions, please open an issue on GitHub.
Built with ❤️ for the German Odoo community