Creating a custom website builder experience in Odoo 18 for a SaaS platform involves multiple layers of development, from extending the website module to managing user onboarding and isolating customer data. This guide walks you through the detailed steps to build a fully functional, multi-tenant website builder system in Odoo 18.
Table of Contents
-
Overview of Requirements
-
Prerequisites
-
Step 1: Create a Custom Module Structure
-
Step 2: Add a Website Setup Wizard
-
Step 3: Extend Website Templates & Blocks
-
Step 4: User Onboarding Flow for SaaS
-
Step 5: Multi-Tenant Data Isolation
-
Step 6: Custom Domain & SSL Mapping
-
Step 7: Billing and Subscription
-
Step 8: Deploying & Scaling
1. Overview of Requirements
A custom website builder for SaaS should provide:
-
A setup wizard during first login
-
Drag & drop page builder based on templates
-
Tenant-based data isolation
-
Custom domain mapping
-
Integrated billing system
2. Prerequisites
-
Odoo 18 Community or Enterprise version installed
-
Python and PostgreSQL setup
-
Knowledge of Odoo module development
-
Understanding of website builder and controller system in Odoo
3. Step 1: Create a Custom Module Structure
manifest.py:
4. Step 2: Add a Website Setup Wizard
Create a wizard that opens automatically after a new website is created.
website_setup_wizard.py:
5. Step 3: Extend Website Templates & Blocks
Add custom drag & drop blocks.
website_templates.xml:
6. Step 4: User Onboarding Flow for SaaS
-
On user sign-up, create a unique website instance.
-
Use default templates and pre-defined themes.
main.py (controller):
7. Step 5: Multi-Tenant Data Isolation
Use Odoo’s multi-website support + database-level tenant scoping:
-
Attach all models (pages, assets, config) to
website_id -
Restrict queries via
@api.modeldecorators
Example:
8. Step 6: Custom Domain & SSL Mapping
Use Odoo’s website.domain field and setup Nginx reverse proxy with SNI-based SSL.
-
Update
ir.httpto match domain with website instance -
Map domains in Nginx:
9. Step 7: Billing and Subscription
Use sale_subscription:
-
Create subscription products for website packages
-
Trigger provisioning on subscription confirmation
Optional Automation:
-
Auto-disable website on expired subscription
-
Send renewal email via
mass_mailing
10. Step 8: Deploying & Scaling
-
Use Docker or systemd for service management
-
Nginx as frontend load balancer
-
PostgreSQL replication for scale
-
Cloudflare for DNS & SSL automation
-
Add Redis for caching if needed
11. Where PySquad Can Help
At PySquad, we've helped SaaS platforms successfully build and scale Odoo-based website builders tailored to industry needs. Here’s how we can support you:
-
Turnkey Development: From architecture to deployment, we build custom SaaS-ready website builder modules.
-
Odoo Customization: We create bespoke templates, snippets, and wizards tailored to your niche.
-
Multi-Tenancy Setup: Expert-level implementation of website/data isolation, domain routing, and security.
-
Subscription & Billing Integration: Seamless product plans with automated workflows.
-
DevOps Support: Nginx/SSL, Docker setup, multi-instance scaling, and cloud integrations.
-
Ongoing Maintenance: SLA-based long-term support and enhancements.
If you're planning to launch or enhance your SaaS with a website builder, our team is ready to collaborate. Visit pysquad.com or reach out to solutions@pysquad.com to discuss your vision.
Conclusion
With the steps above, you can build a scalable and user-friendly SaaS website builder in Odoo 18. This tutorial gives you the base system, extend it with analytics, content moderation, template marketplaces, and more as your SaaS grows.
For advanced help or implementation, you can collaborate with a development team experienced in Odoo and SaaS architecture.




