✅ Quick Summary
The most robust and permanent way to remove the badge is injecting CSS specificity overrides (#base44-edit-badge { display: none !important; visibility: hidden !important; opacity: 0 !important; pointer-events: none !important; }) directly into src/index.css via Base44's AI assistant, followed by calling POST /api/apps/:appId/deploy. When Vite compiles the production bundle, the CSS rules suppress the badge element instantaneously upon DOM insertion.
The Problem
Base44 apps deployed to *.base44.app are served by a Cloudflare-fronted reverse proxy. The server HTML template injects /static/js/badge.js, which creates a fixed container with id='base44-edit-badge' on DOMContentLoaded. Because the badge script is injected at runtime, static HTML edits alone are overwritten on new builds.
How Push44 Solves It
The most robust and permanent way to remove the badge is injecting CSS specificity overrides (#base44-edit-badge { display: none !important; visibility: hidden !important; opacity: 0 !important; pointer-events: none !important; }) directly into src/index.css via Base44's AI assistant, followed by calling POST /api/apps/:appId/deploy. When Vite compiles the production bundle, the CSS rules suppress the badge element instantaneously upon DOM insertion.
Step-by-Step Guide
Inspect the Base44 badge architecture
Base44 injects <script src='/static/js/badge.js'></script> into the document <head>. On DOMContentLoaded, it constructs a fixed container with ID #base44-edit-badge at zIndex 999999 containing branding links and editor redirects.
Formulate CSS specificity blocker rules
To guarantee suppression across all browser engines, the blocker uses: #base44-edit-badge, #base44-badge, div[id*='base44'], .base44-badge { display: none !important; visibility: hidden !important; opacity: 0 !important; pointer-events: none !important; }.
Automate code injection via Base44 AI Chat API
Push44 calls POST /api/apps/:appId/chat/message with instructions to update src/index.css. Base44's backend assistant processes the diff and updates the sandbox checkpoint.
Trigger production redeployment
Push44 sends a POST request to /api/apps/:appId/deploy. Base44 initiates a fresh Vite production build and publishes the static artifacts to their CDN edge, delivering a 100% white-label live site.
Pro Tips
- The CSS blocker rule applies before React hydration, preventing any visual flickering or layout shifts
- All live URLs (https://<slug>.base44.app) update immediately upon deploy completion
- Push44's automated workflow takes under 20 seconds from click to live deployment
Common Mistakes to Avoid
- Trying to use DOM removal scripts that trigger paywall warning logs in the console
- Editing dist files locally without updating the upstream Base44 source checkpoint
- Failing to purge browser cache after redeployment
Ready to Export?
Push44 is free, open source, and takes under 2 minutes to set up.