Commit Graph
204 Commits
Author SHA1 Message Date
oliver 62d9d76bde Add supplied post images to two posts and to the blog overview cards
- blog/posts/odoo-19-to-20-invoice-migration-with-n8n-and-mcp.html: in-post image
  much.png + og:image
- blog/posts/track-the-oca-modules-you-actually-use.html: in-post image
  oca_module_status.png + og:image
- blog/index.json: optional "image" key on those two entries only (text splice)
- script.js: renderBlog() draws .blog-thumb only when the entry carries an image
- style.css: .blog-thumb rule
- sitemap.xml: lastmod 2026-10-24 for the invoice-migration post

Built by profile webmaster (run 20261024_094206_5c4f28, verified PROBLEMS: 0 /
node --check OK); committed by olchi after that run died on an OpenRouter 402.
2026-10-24 09:46:13 +00:00
oliver 7b9db81e82 Publish blog post: Track the OCA Modules You Actually Use — Without Refreshing GitHub Every Day 2026-10-24 08:57:30 +00:00
oliver 76e5645585 Publish blog post: This is how i updated my Invoices from Odoo 19 to Odoo 20 with n8n and much MCP 2026-10-23 09:25:02 +00:00
oliver 61a9dd96d0 feat(legal): add Video Credits block with 10 Pixabay attributions
Add a Video Credits legal-card after Image Credits and before Trademark
Notice, carrying the 10 user-supplied Pixabay video attributions verbatim
(hrefs, utm params and the intentional /de// double slash preserved).
Rows use the existing .credit-row pattern; .video-credits mirrors
.image-credits in the page's inline <style>. Links carry target=_blank
rel=noopener to match the Image Credits convention. Meta description now
lists image and video credits.
2026-10-22 19:06:55 +00:00
oliver 488419155b fix(pricing): state the same domain count per plan on the homepage
The homepage cards gave no domain count to Side Hustle or On the Rise and
gave three to Powerhouse, while the in-app plan page (odoo/upsell.html) and
the published terms.html both say one domain for Side Hustle and three for
On the Rise and Powerhouse. Cards now read 1 / 3 / 3; PRODUCT.md and
llms.txt carry the same counts so no future page has to guess.
2026-10-22 16:12:40 +00:00
oliver 55d1ffd800 chore(site): drop dead coupon code and stale product-spec facts
script.js: delete applyCoupon(). Its only caller was the coupon button deleted above,
so the function was unreachable dead code that still carried the removed 'Coupon FREE
TRIAL applied - 1 month free' promise in a publicly served file. It would also have
thrown on the two DOM ids that no longer exist.

PRODUCT.md: this file is served publicly and still advertised $19.40/mo, $36.25/mo,
$49.60/mo, the FREE TRIAL coupon, 'yearly billing saves roughly 8-10%', a 'Satisfied
or reimbursed' guarantee and 'redundant slots'. Corrected to the yearly list prices
the site publishes and to the decisions above.
2026-10-21 23:05:23 +00:00
oliver dd27e820f5 feat(legal): add Privacy Policy and Terms of Service pages
Two new root-level pages, assembled from legal.html so they inherit the existing
head, fonts, style block and .legal-* cards. The trial email's /legal/privacy and
/legal/terms links 404 on the live site and are repointed here.

Both are factual drafts built from product facts (data held, the six regions, Stripe,
cancel-anytime, backup slots) and are NOT lawyer-authored. Decision 12 marks them for
legal review; they must not be treated as final before that review.
2026-10-21 23:05:23 +00:00
oliver 93511e893d fix(site): correct prices, drop every discount claim and repair trial copy
Applies the 16 findings the user answered in projects/active/odoo-hosting-2027-landing/
decisions-2026-10-21-user.md, using the wording from
copywriter/out/site-fix-wording-2026-10-21.md.

index.html: Powerhouse 535 -> 595 in the card and in the JSON-LD Offer; delete the
three Save 8%/9%/10% badges and the empty badge div on the Empire card; replace the
'Save 15% with yearly billing' line and the coupon message text (ids kept - script.js
reads them); delete the FREE TRIAL coupon input block; qualify the checkout line as
'Card required to buy, not to start'; fix 'redundant slots' to the real rotating-slot
model; drop the 'coupon codes for startups and NGOs' promise; add Privacy and Terms to
the footer.

email/trial-confirmation.html: stop promising backups, domain mapping and SSL on the
trial (the trial has none); state what the trial is not; copyright 2024 -> 2026;
repoint Privacy/Terms from the 404 /legal/privacy and /legal/terms to the new pages.

support.html: state that custom and OCA modules install from On the Rise up and that
Side Hustle has no module installation.

odoo/upsell.html: '4 weeks free' -> '30 days free'.

blog: the backup speed-run no longer sends readers to a non-existent hosting
dashboard; my-first-post loses the 30-day refund promise and the dashboard domain
step; community-vs-enterprise-cost quotes $214/year instead of $19.40/month;
odoocommunity-agents drops 'per-seat licensing' from the body and both meta
descriptions.

sitemap.xml: add /privacy.html and /terms.html.
llms.txt: publish the Powerhouse price and list the two new pages.

Evidence: every old string verified gone and every new string present in the working
tree; 12 HTML files tag-balanced; JSON-LD and sitemap XML valid.
2026-10-21 23:05:22 +00:00
oliver e25e4c64fa a11y(landing): lift the 'not supported' / flag chips above the 11px legibility floor
The cmp-not-us and cmp-flag pills rendered at 0.62rem (9.92px), below the
11px floor for functional text. 0.69rem = 11.04px. Detector finding cleared.
2026-10-21 22:23:15 +00:00
oliver 0f7da0b68b perf(landing): load style.css non-blocking on odoo-hosting-2027
Match the pattern index.html already uses (media=print + onload swap,
noscript fallback) so the new page adds no render-blocking stylesheet.
Page-scoped critical CSS stays inline.
2026-10-21 22:22:27 +00:00
oliver db919fc8c2 feat(landing): add Odoo Hosting 2027 comparison page
New page odoo-hosting-2027.html (feature + lifetime-cost comparison tables,
Odoo Online exclusion, Enterprise growth path, JSON-LD). Links it from the
homepage pricing CTA, adds it to sitemap.xml, adds llms.txt for AI-SEO.
2026-10-21 22:20:45 +00:00
oliver a54dc22bd1 copy(footer): say "AI Agents and N8N automations" in the About-us blurb
Updates the homepage footer tagline to name AI Agents and N8N
automations explicitly. Markup-preserving: existing <strong> emphasis
on "stability" and "power" is unchanged; no structural, style or
layout changes.
2026-10-20 13:09:31 +00:00
oliver ca89d8e7b7 confirm 2026-10-17 17:10:09 -03:00
oliver 29127d4025 chat fixes 2026-10-17 10:50:45 -03:00
oliver b4e0faa62e UTM 2026-10-17 10:40:05 -03:00
oliver 575e3efece Update upsell.html 2026-10-17 09:39:08 -03:00
oliver 62f92769a1 Update upsell.html 2026-10-17 09:30:55 -03:00
oliver 3637094896 url 2026-10-16 08:42:42 -03:00
oliver 609f9d64bf new produt id 2026-10-16 08:39:01 -03:00
oliver 1ab6c47df6 Update index.html 2026-10-16 08:29:29 -03:00
Reef 354799b9ca fix: repair contact flow and buy flow targets
- Buy Now product IDs aligned to the Odoo shop (54/55/56), matching odoo/upsell.html
- support.html contact form: rewire from dead ODOO4projects.com/website/form endpoint to n8n CRM webhook; remove /web/csrf_token prefetch; show success only on res.ok (previously always showed 'submitted' even when nothing was delivered)
- /contactus links (footer nav, Schema contactPoint, order widget fallback, trial email) retargeted to support.html#contact; canonical/og:url corrected to /support.html
- Custom Quote and footer contact handlers hardened with res.ok checks
- buyNow basket target verified: 20.odoo4projects.com/shop/post_basket (200)
2026-10-12 15:41:11 +00:00
oliver 04d39157b8 Buy Area 2026-10-08 17:28:26 -03:00
oliver 5cc0c06a11 Fix modal close + color 2026-10-08 16:29:57 -03:00
ODOO4projects Web Developer b003c221ce fix: Custom Quote modal text visibility and close button
- Dark text (#171c26) for all form fields in modal on ivory background
- Explicit colors for labels, inputs, placeholders
- Close button (X) now visible with midnight background
2026-10-08 18:52:55 +00:00
ODOO4projects Web Developer 79f2a71d49 feat: rename Rates & SUITES to Order & Pricing, add Custom Quote modal
- Change section header to 'Order & Pricing'
- Add 'Get Custom Quote' button that opens modal with name, email, requirements fields
- Requirements field has placeholder: 'Describe your requirements (how many users? onsite, cloud? how many workers?)'
- Submit to https://n8n.odoo4projects.com/webhook/ODOO4projects/crm with UTM tracking
- Empire 'Get Custom Quote' button now opens modal instead of Order Widget
- Add CSS for modal overlay, form styling, and mobile responsiveness
2026-10-08 17:39:08 +00:00
Reef 729289ef71 Publish blog post: 6 Tips to Leverage the Latest Odoo Management App Update 2026-10-08 15:50:04 +00:00
ODOO4projects Web Developer 06ed942f8b fix: correct trial location preselection after city-only values
- options now use city values (saopaulo) instead of full hostnames
- preselect logic extracts city from bestServer.host before matching
2026-10-06 22:48:35 +00:00
ODOO4projects Web Developer 3d1473a2d5 feat: add agent-skills JSON to homepage for free trial provisioning
- includes spin_up_free_trial skill with MCP server reference
- defines six server locations (Manchester, Sydney, Mumbai, São Paulo, Meppel, Boston)
- provides workflow steps and clear instructions for conversational agents
2026-10-06 22:46:11 +00:00
Reef e926f850f7 Publish blog post: Odoo 20 Is Live on Our Servers — With an MCP Server and Free Backups 2026-10-06 22:06:05 +00:00
ODOO4projects Web Developer eb142d1aa6 fix: location values now return city name only (saopaulo instead of api.saopaulo.odoo4projects.com) 2026-10-05 20:37:28 +00:00
ODOO4projects Web Developer 4d9becd159 feat: spinning-up widget for ?message=spinning_up URL param 2026-10-05 20:32:13 +00:00
ODOO4projects Web Developer 5f4c75e94f feat: store UTM params in cookies, inject into webhook payloads 2026-10-05 20:30:30 +00:00
ODOO4projects Web Developer d83d960543 email: professional HTML template for new trial signup confirmation 2026-10-05 20:01:52 +00:00
ODOO4projects Web Developer 9751bda35c copywriter: FAQ growth path & pricing outcome-based language 2026-10-05 19:57:16 +00:00
ODOO4projects Web Developer 3e899391d7 fix: change trial webhook to n8n.odoo4projects.com/webhook/ODOO4projects/trial 2026-10-05 19:18:51 +00:00
ODOO4projects Web Developer 4134ff5260 fix: address points 5,7,8,9,11,12,13,14,15 - add Offer schema, remove duplicate partners, trial error feedback, rel=noopener noreferrer, remove inline onclick, semantic pagination, footer email 2026-10-04 23:14:31 +00:00
Reef af866d87e8 Publish blog post: ODOO Community Is Going Online on ODOO4projects 2026-09-28 09:53:40 +00:00
Reef 5f52cd6059 Change OCA section title to 'Our Top OCA Module Picks' 2026-09-27 10:34:01 +00:00
Reef 3605545838 Add OCA Modules Status section: searchable scrollable table with v19/v20 support indicators and GitHub icon links 2026-09-27 10:24:03 +00:00
Reef 246beeb231 Add Odoo Version dropdown (19.0/20.0) next to server location in pricing section; include version in buyNow basket POST 2026-09-27 10:02:22 +00:00
Reef e5604381da Fix buyNow webhook URL to odoo.odoo4projects.com; update skill with test case for changeable URL 2026-08-24 21:42:45 +00:00
Reef aeb465e9dd Remove ping debug console.log output 2026-08-24 21:39:17 +00:00
Reef 1fb2bdf525 Fix hero animation: heroImages keys now have api. prefix to match SERVERS hosts 2026-08-24 21:36:40 +00:00
Reef d26a3ee725 Add console debug output to pingServer: OK/ERR/TIMEOUT with elapsed ms 2026-08-24 21:33:31 +00:00
Reef 1642497c10 Prefix all SERVERS hosts with api. and remove duplicate api. from pingServer 2026-08-24 21:02:09 +00:00
Reef f7460c129d Download static assets from static.odoo4projects.com (agent.js, agent.css, 4.svg, logo.svg, favicon.png) and serve locally. Update all HTML references. 2026-08-24 20:53:34 +00:00
Reef 602329db27 Ping api.{host}/favicon.ico instead of {host}/favicon.ico 2026-08-24 19:36:46 +00:00
Reef a003054781 Redesign footer: 4-column grid, partners section (OC Guy, OCA Paraguay, OD8N), brass top rule, partner cards 2026-08-22 12:45:41 +00:00
Reef 5ddb142c8f Update upsell.html buy buttons: form POST to /shop/post_basket with info=uuid 2026-08-22 12:41:39 +00:00
oliver 7245e47cac static sites for ODOO 2026-08-22 09:37:27 -03:00