|
1 | 1 | import type {ReactNode} from 'react'; |
| 2 | +import Link from '@docusaurus/Link'; |
2 | 3 | import Layout from '@theme/Layout'; |
3 | 4 |
|
4 | 5 | import {demos, type DemoCategory} from '../constants/demos'; |
@@ -29,21 +30,50 @@ const demoGroups: DemoGroup[] = [ |
29 | 30 | }, |
30 | 31 | ]; |
31 | 32 |
|
| 33 | +const productionSites = [ |
| 34 | + { |
| 35 | + title: 'HiChee.com', |
| 36 | + description: |
| 37 | + 'Production vacation-rental comparison site using React on Rails to help travelers compare Airbnb, Booking.com, Vrbo, and direct-booking prices.', |
| 38 | + href: 'https://hichee.com/', |
| 39 | + }, |
| 40 | +]; |
| 41 | + |
32 | 42 | export default function ExamplesPage(): ReactNode { |
33 | 43 | return ( |
34 | 44 | <Layout title="Examples" description="React on Rails demo and starter applications"> |
35 | 45 | <main className={styles.main}> |
36 | 46 | <section className={styles.hero}> |
37 | 47 | <div className="container"> |
38 | | - <p className={styles.kicker}>Demos and starters</p> |
39 | | - <h1>See React on Rails running, then read the source.</h1> |
| 48 | + <p className={styles.kicker}>Demos, starters, and production sites</p> |
| 49 | + <h1> |
| 50 | + See React on Rails running in demos and real products. |
| 51 | + </h1> |
40 | 52 | <p className={styles.lead}> |
41 | | - Every demo links to a live deployment and its source code. Use them to evaluate |
| 53 | + Use live deployments, source-backed demos, and production references to evaluate |
42 | 54 | React on Rails, compare OSS and Pro, or start a new app. |
43 | 55 | </p> |
44 | 56 | </div> |
45 | 57 | </section> |
46 | 58 |
|
| 59 | + <section className="container"> |
| 60 | + <div className={styles.sectionHeader}> |
| 61 | + <p className={styles.sectionEyebrow}>Production sites</p> |
| 62 | + <h2>Live products built with React on Rails.</h2> |
| 63 | + </div> |
| 64 | + <div className={styles.siteGrid}> |
| 65 | + {productionSites.map((site) => ( |
| 66 | + <article className={styles.siteCard} key={site.title}> |
| 67 | + <h3>{site.title}</h3> |
| 68 | + <p>{site.description}</p> |
| 69 | + <Link className={styles.siteLink} href={site.href}> |
| 70 | + Visit site |
| 71 | + </Link> |
| 72 | + </article> |
| 73 | + ))} |
| 74 | + </div> |
| 75 | + </section> |
| 76 | + |
47 | 77 | {demoGroups.map((group) => { |
48 | 78 | const groupDemos = demos.filter((demo) => demo.category === group.category); |
49 | 79 | if (groupDemos.length === 0) { |
|
0 commit comments