Chavica is a no-code website builder — think Wix, but built for the Nigerian and African market. Users drag blocks onto a canvas, customise them, and publish to a subdomain in minutes. I built the full visual editor, template system, real-time preview, and billing from zero.
Non-technical people in Nigeria — small businesses, freelancers, artists — have no easy way to get a professional website. Wix and Squarespace are priced in dollars and slow on African internet. Chavica gives them a fast, affordable alternative in their own currency.
The hardest part of any website builder. I built a drag-and-drop canvas where users can add, reorder, and configure blocks (hero, gallery, contact form, etc.). Each block has a settings panel. The editor state is a JSON tree that renders both in the editor and at publish time.
Users start from one of 20+ templates. Each template is a JSON config that seeds the editor. I built a template preview system so users can browse and switch templates before committing.
When a user hits Publish, the JSON config gets rendered to static HTML and deployed to their subdomain (username.chavica.com). Custom domains are also supported via Vercel's DNS API.
Freemium model — free plan with Chavica branding, paid plans remove branding and unlock custom domains. Payments via Paystack, with webhook-driven subscription state.
Most dnd libraries weren't flexible enough for a nested block editor. I built a custom engine with drag handles, drop zones, and keyboard accessibility. More code, but full control over UX.
Every page is stored as a JSON tree. This makes versioning, templates, and publishing simple — the same JSON renders in the editor and as the final site. It also makes undo/redo straightforward.
- →Editor UX is 10× harder than it looks. Every interaction has 5 edge cases.
- →Start with fewer blocks and nail them, rather than shipping 50 mediocre ones.
- →Publishing pipelines need caching. Every publish should be fast — users get impatient.
- →Freemium conversion is a product problem, not a marketing problem. The upgrade moment has to feel natural.