null
80b1747ffe
branding
2026-05-25 19:44:10 -05:00
null
bc6bc9a787
logo
2026-05-25 19:40:18 -05:00
null
1d687c5fa1
branch footer
2026-05-25 19:23:37 -05:00
null
52d9a16462
branch footer
2026-05-25 18:35:40 -05:00
null
c17ac83b52
services
2026-05-25 18:33:19 -05:00
null
09926fed6d
Contact.jsx (line 23): added ZIP to validation/error state, rendered it as required, and shows ZIP code is required.
...
server/index.js (line 253): backend Zod schema now rejects missing or blank ZIP.
api.js (line 3): preserves backend field errors for display.
2026-05-25 18:17:16 -05:00
null
529cce7ec0
branding
2026-05-25 18:11:51 -05:00
null
5f5c085fbe
contact update
2026-05-25 17:56:32 -05:00
null
ca8972b54d
chore: bump version to 0.7.6
2026-05-18 14:26:06 -05:00
null
046d5b1d4a
fix: ui industries
2026-05-18 14:25:45 -05:00
null
3f8eafb76a
chore: bump version to 0.7.5
2026-05-18 14:02:50 -05:00
null
a79f42123a
fix: seo fb
2026-05-18 14:02:12 -05:00
null
a293d0fa9a
feat(seo): add canonical URLs, close SEO audit ( #175 )
2026-05-18 13:58:35 -05:00
null
f378233328
fix: seo
2026-05-18 13:55:06 -05:00
null
a8765990ef
mobile ui fixes
2026-05-18 13:45:39 -05:00
null
de61d5e625
fix(ui): UI fixes across header, contact, home, about, support, services, industries ( #132 #133 #134 #154 #165 #172 #173 )
2026-05-18 13:12:18 -05:00
null
fdc6eaeab5
chore: bump version to 0.7.2
2026-05-18 12:33:06 -05:00
null
928527b908
fix: remove all email addresses from site, redesign contact page, update footer, about, header, support ( #165 #172 #134 #173 )
2026-05-18 12:11:56 -05:00
null
b04e5bbb04
spacing
2026-05-18 10:57:06 -05:00
null
fff92a40df
close 134
2026-05-18 09:46:56 -05:00
null
990139b77f
fix(ui): remove duplicate trust section ( #173 ), enlarge logo and add home link ( #154 )
2026-05-18 09:44:44 -05:00
null
d8a975431f
fix(ui): dropdown hover gap fix ( #132 ) and remove contact form button ( #133 )
2026-05-18 09:35:29 -05:00
null
aec33165b9
chore: bump version to 0.7.1, fix Home.jsx aria-label text fragment (batch 10.3)
2026-05-17 22:48:57 -05:00
null
e1604ee28f
fix: add aria-labels for accessibility, fix JSX template literal syntax ( #101 ) (batch 10.2)
2026-05-17 22:47:03 -05:00
null
9c1b6e4753
fix: optimize images to WebP (95% reduction), add form loading spinners ( #97 #130 ) (batch 10.1)
2026-05-17 22:35:55 -05:00
null
2c002c2f82
fix: remove React Query, add HTTPS redirect, document CSP Zoho note ( #128 #127 #129 ) (batch 10.0)
2026-05-17 22:33:11 -05:00
null
95917bc699
chore: bump version to 0.7.0 (batch 9.10)
2026-05-17 22:11:40 -05:00
null
5c17019931
fix: remove unused assets (24MB), Dialog component, CardDescription dup, zustand dep ( #95 #113 #114 #115 #116 ) (batch 9.9)
2026-05-17 22:08:21 -05:00
null
829362fb79
fix: Cisco/Veteran icons, sidebar slug, JointLogo placeholder, Footer copy ( #98 #100 #103 #107 ) (batch 9.8)
2026-05-17 22:05:08 -05:00
null
6e975b869b
fix: favicon/manifest, og:image PNG, logo optimized to 44KB PNG ( #99 #117 #118 ) (batch 9.7)
2026-05-17 22:01:27 -05:00
null
f8d380ebab
fix: disable prod sourcemaps, secure CORS default, allow HMR websocket ( #122 #124 #131 ) (batch 9.6)
2026-05-17 21:53:39 -05:00
null
53e2873fd4
fix: honeypot spam protection, 409 conflict handling ( #119 #126 ) (batch 9.5)
2026-05-17 21:51:53 -05:00
null
00f5356db4
fix: Support CTA bg color, clickable phone/email, Footer tel: +1 ( #112 #106 #90 ) (batch 9.4)
2026-05-17 21:48:27 -05:00
null
8adb9cdb76
fix: desktop dropdown nav, Button→Link, Contact scroll-to-form ( #109 #102 #105 ) (batch 9.3)
2026-05-17 21:44:48 -05:00
null
a5d9d142d5
fix: 8x8 logo visibility, industry icons, service cards, icon fallback ( #91 #94 #125 #92 #93 ) (batch 9.2)
2026-05-17 21:41:01 -05:00
null
bdef2684bb
fix: header CTA visibility, scroll-to-top, 404 page ( #104 #89 #88 ) (batch 9.1)
2026-05-17 21:37:42 -05:00
null
4e57efdc53
fix: DB schema UNIQUE constraint, Docker healthcheck, DB permissions ( #120 #121 #123 ) (batch 9.0)
2026-05-17 21:34:39 -05:00
null
4235ed7a50
fix: tighten service and industry copy to match original site tone (batch 8.8, issue #85 )
2026-05-17 20:56:42 -05:00
null
770941752f
feat: add ZohoDesk signup/signin CTA to Support page (batch 8.7, issue #84 )
2026-05-17 20:55:03 -05:00
null
2f58e93c43
feat: add 8x8 certification details to homepage trust card (batch 8.6, issue #83 )
2026-05-17 20:54:16 -05:00
null
123329b03e
feat: add free migration offer CTA section to homepage (batch 8.5, issue #82 )
2026-05-17 20:51:16 -05:00
null
6ca8585f89
fix: rename asset files to kebab-case (batch 8.4, issue #81 )
2026-05-17 20:49:11 -05:00
null
4fe31ed9b6
fix: correct contact info and remove unverified location claims (batch 8.9)
...
- Phone: (906) 482-6616 → (321) 730-8020 direct, (888) 656-2850 toll-free
- Add toll-free number to Footer and Contact page
- Add LinkedIn link to footer
- Add 8x8 trademark disclaimer to footer legal section
- Fix JSON-LD phone numbers in Home.jsx
- Add support phone to Support page
- Strip all Houghton, MI and Upper Peninsula location references
from meta tags, JSON-LD, and fallback descriptions
(not present on original site, unverified)
- Change JSON-LD areaServed from Houghton/UP to United States
- Update Support.jsx Zoho Desk link placeholder
2026-05-17 20:44:18 -05:00
null
1b0d5adc36
feat(seo): add react-helmet-async, per-page meta/OG tags, JSON-LD, sitemap, robots.txt, heading fixes ( #71 )
...
- Added react-helmet-async + HelmetProvider to main.jsx
- Per-page Helmet components on all 8 pages (title, description, OG tags)
- JSON-LD structured data (Organization, LocalBusiness, Service)
- Created public/sitemap.xml with all 17 routes
- Created public/robots.txt
- Fixed heading hierarchy (no h1->h3 skips)
- Improved image alt text throughout
- Fixed docs/zoho-setup.md env defaults clarification
2026-05-17 20:03:42 -05:00
null
2a9eef0e71
docs: update FUTURE.md + HISTORY.md, bump v0.6.6 (Phase 7 complete)
2026-05-17 19:27:57 -05:00
null
2923ef0d50
feat(zoho): add Cases forwarding + setup docs ( closes #76 , #78 )
...
- Add forwardSupportToZoho() for Zoho Cases (fire-and-forget)
- Map support fields: issue→Subject, priority→Priority, Case_Origin=Website
- ZOHO_CASES_ENABLED env var (independent from ZOHO_ENABLED)
- Add docs/zoho-setup.md with step-by-step setup guide
- Batch 7.2 and 7.4
2026-05-17 19:27:04 -05:00
null
debde23ab7
fix(zoho): fix OAuth token endpoint, improve lead field mapping, add upsert
...
- Fix critical bug: token refresh now uses ZOHO_ACCOUNTS_DOMAIN
(accounts.zoho.com) instead of API domain (www.zohoapis.com).
The OAuth token endpoint lives on a different domain.
- Remove unnecessary redirect_uri from refresh token request
- Add ZOHO_ACCOUNTS_DOMAIN env var (separate from API domain)
- Split contact name into First_Name/Last_Name for Zoho schema
- Replace Service_Interest (non-standard field) with Description
+ Lead_Source: Website (standard picklist value)
- Switch from Insert to Upsert API with duplicate_check_fields:
[Email] so duplicate submissions update instead of error
- Add trigger: ['workflow'] for explicit workflow control
- Add token refresh retry (1 retry on transient failure)
- Add ZOHO_CASES_ENABLED env var for future Cases forwarding
- Update .env.example with full Zoho config documentation
- Update FUTURE.md with detailed Phase 7 Zoho integration plan
- Remove obsolete ZOHO_REDIRECT_URI from Dockerfile
2026-05-17 18:37:10 -05:00
null
f1823bcc4b
fix: rename asset files to remove spaces ( closes #67 )
2026-05-17 18:08:25 -05:00
null
1437b2af07
fix: 10 bug fixes from code review (batch 0.6.5)
...
- #63 : Fix industry.href undefined → use industry.id for navigation
- #50 : Fix sanitized scope error in catch block (let before try)
- #58 : Footer.jsx: convert all internal <a href> to <Link to>
- #61 : Textarea.jsx: fix className interpolation (quotes → backticks)
- #59 : About.jsx: convert CTA <a href> to <Link to>
- #60 : Support.jsx: convert Contact button <a href> to <Link to>
- #62 : Badge.jsx: text-foreground → text-text
- #64 : Support.jsx: hover:bg-navy-darker → hover:bg-primary-navy-dark
- #65 : Server: move timeoutMiddleware before catch-all routes
- #66 : Contact.jsx: convert self-referencing <a href> to <Link to>
2026-05-17 18:03:55 -05:00
null
4f3e20b7a0
fix: dead code cleanup, timeout middleware, Zoho error handling ( closes #53 , #54 , #55 , #56 , #57 )
...
- Delete broken barrel exports ui/index.jsx and ui/all.jsx (#53 )
- Remove duplicate QueryClient instance and dead queryClient.js (#55 )
- Remove unused queryClient import/export from api.js (#55 )
- Move timeoutMiddleware before catch-all routes so it actually fires (#54 )
- Fix async error handling in forwardToZoho - add .catch() (#56 )
- Add ZOHO_CLIENT_ID to credential guard, normalize defaults to null (#57 )
(batch 0.6.4)
2026-05-17 17:46:54 -05:00