Skip to content

Redesign main page: industries, customers, LLM visibility#50

Merged
irinanazarova merged 16 commits intomasterfrom
improvements
Apr 14, 2026
Merged

Redesign main page: industries, customers, LLM visibility#50
irinanazarova merged 16 commits intomasterfrom
improvements

Conversation

@irinanazarova
Copy link
Copy Markdown
Contributor

@irinanazarova irinanazarova commented Apr 2, 2026

Summary

Refresh the main page content and design. All content lives on a single page with anchor navigation, plus new LLM-visibility surfaces.

Note: the /compare hub and /compare/socket-io pages were split off to the compare-pages branch so that work can finish independently.

Changes vs production

Main page — industries & customers section (replaces use-cases)

Five two-halves blocks — Healthtech (9 companies), Fintech (5), Field Services & IoT (8), Communities (7), And more (7) — with 36 customer companies total. Each company card is clickable and opens a modal with logo, description, and case study link (where available). Tiles with a case study also show a direct "Read case study →" link (or "Watch the talk →" for Wealthbox's Yjs talk) that opens the content in a new tab without triggering the modal.

Doximity podcast quote from the On Rails podcast after Healthtech.

Main page — "Why AnyCable?" section

Updated copy: delivery guarantees, 10K connections, any backend. New Python/FastAPI code tab alongside Pub/Sub, Ruby, JS/TS. Standardized tab button styles.

Main page — resources section (redesigned)

Same two-halves layout as the rest of the page:

  • Doc icon cards (Rails, Laravel, JS, Hotwire) — all four using official brand SVGs
  • Video thumbnails (Vladimir's v1.4 screencast, Irina's RMR 2024, JP Camara's SF Ruby 2025), single-column with 16:9 cropping and larger text for readability
  • Latest Substack newsletter issues with red CTA card

Main page — hero & navigation

  • Floating animation on logo
  • Header links → anchors (#features, #customers, #pricing, #resources) + Docs
  • Smooth scrolling with scroll-margin-top for sticky header
  • Removed header link underline on hover

New: LLM visibility

  • /llms.txt — comprehensive content for LLM discoverability
  • FAQPage JSON-LD (6 questions: what is AnyCable, pricing, backends, HIPAA, vs Socket.io, vs Pusher)
  • SoftwareApplication schema with pricing (OSS free, Managed free/2K, Pro $1490/yr, Enterprise, Consulting $200/hr)
  • Updated meta descriptions

Blog index

7 new Evil Martians blog posts added (Dec 2025 — Nov 2024).

Other

  • Footer: darker background (#1a1a1a), Discord removed
  • Consistent 1px border grid across all sections
  • 25 new company logos
  • /pro redirect removed
  • Removed unused CSS/JS from development

Addressed review feedback

From @palkan's review comments:

  • Videos: switched to single-column layout so each video is ~half the viewport width; added aspect-ratio: 16/9 + object-fit: cover so YouTube's 4:3 hqdefault.jpg thumbnails crop cleanly (no more top/bottom black bars); bumped title to 17px and speaker to 14px for readability.
  • YouTube thumbnails: switched from maxresdefault.jpg (often 404s for older videos → gray placeholder) to hqdefault.jpg (universally available).
  • Customer popup: was stuck to the left because the parent .popup uses display: inherit (not flex), so justify-content: center never applied. Fixed by positioning the modal absolutely with left: 50% + transform: translate(-50%, …).
  • Framework logos: replaced the hand-drawn sketches with official SVGs — Rails (worldvectorlogo), Laravel (Wikimedia Commons), JavaScript (Simple Icons), Hotwire (Simple Icons).
  • Case study CTA on tiles: injected a real clickable "Read case study →" element on tiles with data-case-study. Clicking the link opens the case study directly in a new tab; clicking anywhere else still opens the popup. Wealthbox's CTA reads "Watch the talk →" since it links to JP Camara's Yjs talk.

Split off to separate branch

The /compare hub and /compare/socket-io pages (plus compare.scss) are on the compare-pages branch and will be finished/merged separately.

How to review

yarn devlocalhost:5173

  1. Scroll through the full page — industries, quote, resources
  2. Click company cards → modals with logos and case study links
  3. Click "Read case study →" / "Watch the talk →" → opens directly in new tab (does not open modal)
  4. Code tabs → check Python tab
  5. Header anchor links → smooth scroll
  6. View source → check JSON-LD schemas

- Add /features page showcasing AnyCable capabilities with feature grid
- Add /compare hub with comparison pages for Action Cable, Pusher, and Ably
- Add /customers showcase page with case studies and industry breakdown
- Add /learn hub with learning paths, documentation links, and resources
- Update navigation header with new page links
- Add comprehensive SCSS styling for all new pages following existing design system
- Maintain consistent red accent (#f64343) and clean, modern aesthetic
PRICING STRUCTURE (Monthly-first PLG approach):

Self-Hosted:
- Open Source: Free forever
- Pro License: $99/month or $990/year (save 17%)

Managed (plus.anycable.io):
- Free: $0 - up to 100 connections
- Starter: $29/mo - up to 1K connections
- Pro: $99/mo - up to 10K connections (Most Popular)
- Scale: $299/mo - up to 50K connections
- Enterprise: Custom pricing

KEY FEATURES:
- Monthly pricing with annual discounts (17% savings)
- Clear upgrade path from free to enterprise
- Interactive pricing calculator comparing AnyCable, Pusher, self-hosted
- Comprehensive feature comparison table
- Detailed FAQ section (8 common questions)
- Enterprise CTA with gradient background
- Toggle between monthly/annual billing
- Real-time cost estimates based on connections

PLG BEST PRACTICES IMPLEMENTED:
✓ Start free (no credit card)
✓ Usage-based scaling
✓ Self-serve signup
✓ Clear value progression
✓ Transparent pricing
✓ Easy upgrade path
✓ Calculator shows competitive advantage

Technical:
- New /pricing page with dedicated route
- pricing.ts with calculator logic
- pricing.scss with responsive design
- Updated header navigation link
- Update Self-Hosted Pro from $99/mo to $130/mo ($108/mo annual)
- Reframe Enterprise section to focus on source-available licensing
- Highlight main Enterprise value: extending AnyCable with custom Go modules
- Update Enterprise description to emphasize customization capabilities
- Fix HTML parsing error: change '< 100ms' to '&lt; 100ms'
- This was breaking Vite's HTML parser and preventing proper page loading
- Move pricing.ts to js/components/pricing-calculator.ts
- Import pricing calculator in main index.ts
- Change pricing page to use /index.ts instead of /pricing.ts
- This ensures proper module loading and stylesheet import
- Fix line break in Handlebars dochead partial call
- Multiline attributes can break Handlebars parsing
- Add Ably pricing tiers to calculator logic
- Display Ably as 4th comparison option in calculator
- Calculate and show savings compared to Ably
- Update pricing estimates based on Ably's pricing page
Main page:
- Replace use-cases section with industry showcase (Healthtech, Fintech,
  Field Services & IoT, Communities, And more) featuring 36 companies
  with descriptions, links, and clickable "learn more" modals
- Add Doximity podcast quote from On Rails podcast
- Update "Why AnyCable?" text with new positioning (framework-agnostic,
  delivery guarantees, any backend)
- Redesign resources section using two-halves layout with doc icon cards,
  video thumbnails with play overlays, and newsletter list
- Add company modal with logos, detail text, and case study links
- Floating animation on hero logo
- Smooth scroll with header offset for anchor navigation

Navigation:
- Header links now anchor to page sections (Features, Customers, Pricing,
  Docs, Resources) instead of separate pages
- Remove underline on header link hover

New content:
- Socket.io comparison page (/compare/socket-io) with reliability focus
- AnyCable vs Socket.io blog post draft
- llms.txt for LLM discoverability
- 7 new Evil Martians blog posts added to blog index
- Compare index updated with Socket.io, Action Cable, Pusher/Ably,
  Centrifugo, Laravel Reverb, Django Channels comparisons

Removed pages:
- /features, /learn, /pricing, /pro, /customers (consolidated to main)
- /compare/ably, /compare/pusher, /compare/action-cable

Assets:
- 25 new company logos (favicons + SVGs for Doximity, CoinGecko, Agero)
- JS and Laravel doc icons
- Company modal JS

Styling:
- Consistent border grid across all two-halves sections
- Standardized button styles (primary, secondary, tab active states)
- Footer background darkened (#1a1a1a), Discord link removed
- Smooth scrolling with scroll-margin-top for sticky header
- Add Python/FastAPI code snippet to about-slide tabs (real httpx code)
- Add FAQPage JSON-LD with 6 questions (what is AnyCable, pricing,
  multi-backend, HIPAA, vs Socket.io, vs Pusher/Ably)
- Add SoftwareApplication pricing offers (OSS, Managed, Pro, Enterprise,
  Consulting)
- Add "when you don't need AnyCable" honesty section to llms.txt
- Fix broken pricing link in llms.txt (/pricing → /#pricing)
- Add "HIPAA and SOC2 compliant" to Healthtech industry description
@bolt-new-by-stackblitz
Copy link
Copy Markdown

Review PR in StackBlitz Codeflow Run & review this pull request in StackBlitz Codeflow.

Remove features.scss, customers.scss, learn.scss, pricing.scss,
pricing-calculator.ts, and WEBSITE_IMPROVEMENTS_SPEC.md — all from
pages that were added and then removed during development.
Copy link
Copy Markdown
Member

@palkan palkan left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I like it 👍

Let's just fix some bugs:

  1. Videos — kinda small and barely readable (and the first one has a cover image with the top padding?)
Image

(They look fine on mobile)

  1. The customer popup always appears on the left side of the screen—is it intentional?
Screen.Recording.2026-04-13.at.17.05.32.mov
  1. Laravel and JS logos—what are they?)
Image

Should be smth like this (oops, we have a bug—Rails is now JS 😁):

Image
  1. One suggestion regarding the customer tiles—let's add a link to case studies right on the tile ("Read case study" or smth like that); right now you can only find them if you click, and since most don't have case studies, it's not clear that they even exist.

5*) Maybe, we should not list that many customer per section? And add logos to some of them (like, 2 bigger tiles with logos and 4 smaller ones per section?).

- Videos: switch to single-column layout with 16:9 aspect-ratio +
  object-fit cover so YouTube's 4:3 hqdefault thumbnails crop cleanly;
  bump title/speaker font sizes for readability on desktop
- YouTube thumbnails: use hqdefault.jpg (always available) instead of
  maxresdefault.jpg which 404s for older videos
- Framework icons: replace hand-drawn approximations with official SVGs
  (Rails, Laravel, JavaScript, Hotwire)
- Customer popup: center properly via absolute positioning — parent
  .popup never gets display:flex so justify-content was never applied
- Customer tiles: inject a "Read case study →" span on tiles with a
  case study; click opens the case study URL directly (window.open
  with stopPropagation), while clicking elsewhere on the tile still
  opens the company popup as before
@palkan palkan self-requested a review April 14, 2026 19:25
Copy link
Copy Markdown
Member

@palkan palkan left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Awesome! All good now. Almost: can we update "Read the case study" to smth like "Watch bla-bla" for Wealthbox (Yjs talk)?

Wealthbox's case study is a YouTube talk (JP Camara's Yjs talk at
SF Ruby 2025), not a written article. Add optional
data-case-study-cta attribute on tiles that need different CTA
text and use it for Wealthbox. Default remains "Read case study →".
Remove /compare (hub) and /compare/socket-io from this PR to finish
that work separately. Also drops the compare.scss import from
index.scss and the /compare link from llms.txt.

The compare pages are preserved on the compare-pages branch for
follow-up work.
@irinanazarova irinanazarova merged commit e4afc56 into master Apr 14, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants