Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions apps/marketing/next.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,11 @@ const config: NextConfig = {
destination: "/examples/infrastructure",
permanent: true,
},
{
source: "/examples/:framework(react|vue|angular|svelte|solid|vanilla)/:example",
destination: "/examples/:example",
permanent: true,
},
{
source: "/examples",
destination: "/examples/crm",
Expand Down
4 changes: 2 additions & 2 deletions apps/marketing/src/app/case-studies/chartmetric/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -114,7 +114,7 @@ export default function ChartMetricCaseStudyPage() {
</div>
</div>
<div className="bg-linear-to-br from-blue-50 to-blue-100 dark:from-blue-900 dark:to-blue-800 rounded-lg p-6">
<div className="text-2xl font-bold text-blue-700 dark:text-blue-200 mb-2">99%</div>
<div className="text-2xl font-bold text-blue-700 dark:text-blue-200 mb-2">100%</div>
<div className="text-sm text-blue-600 dark:text-blue-300">
Customization needs met
</div>
Expand Down Expand Up @@ -214,7 +214,7 @@ export default function ChartMetricCaseStudyPage() {
<div className="space-y-4">
<p>
Simple Table was <strong>highly customizable</strong>—around{" "}
<strong>99% of our needs</strong> were covered through built-in customization
<strong>100% of our needs</strong> were covered through built-in customization
options such as <strong>CSS variable overrides</strong>,{" "}
<strong>custom icons</strong>, and <strong>custom headers</strong>. For edge
cases, we were able to rely on global class selectors.
Expand Down
215 changes: 0 additions & 215 deletions apps/marketing/src/app/examples/[framework]/[example]/page.tsx

This file was deleted.

3 changes: 3 additions & 0 deletions apps/marketing/src/app/examples/billing/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,9 @@ import BillingExampleWrapper from "@/examples/billing/BillingExampleWrapper";
export const metadata: Metadata = {
title: SEO_STRINGS.examples.billing.title,
description: SEO_STRINGS.examples.billing.description,
alternates: {
canonical: "/examples/billing",
},
};

export default function BillingExample() {
Expand Down
3 changes: 3 additions & 0 deletions apps/marketing/src/app/examples/hr/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,9 @@ import HRExampleWrapper from "@/examples/hr/HRExampleWrapper";
export const metadata: Metadata = {
title: SEO_STRINGS.examples.hr.title,
description: SEO_STRINGS.examples.hr.description,
alternates: {
canonical: "/examples/hr",
},
};

export default function HRExample() {
Expand Down
3 changes: 3 additions & 0 deletions apps/marketing/src/app/examples/infrastructure/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,9 @@ import InfrastructureExampleWrapper from "@/examples/infrastructure/Infrastructu
export const metadata: Metadata = {
title: SEO_STRINGS.examples.infrastructure.title,
description: SEO_STRINGS.examples.infrastructure.description,
alternates: {
canonical: "/examples/infrastructure",
},
};

export default function InfrastructurePage() {
Expand Down
3 changes: 3 additions & 0 deletions apps/marketing/src/app/examples/music/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,9 @@ export const metadata: Metadata = {
description:
SEO_STRINGS.examples.music?.description ||
"Explore music artist analytics with Simple Table - track followers, popularity, playlist reach, and more.",
alternates: {
canonical: "/examples/music",
},
};

export default function MusicPage() {
Expand Down
11 changes: 1 addition & 10 deletions apps/marketing/src/app/sitemap.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import { readdirSync, statSync } from "fs";
import { join } from "path";
import type { MetadataRoute } from "next";
import { BLOG_POSTS } from "@/constants/blogPosts";
import { EXAMPLE_SLUGS, FRAMEWORK_HUB_IDS } from "@/constants/frameworkIntegrationHub";
import { FRAMEWORK_HUB_IDS } from "@/constants/frameworkIntegrationHub";
import { SEO_STRINGS } from "@/constants/strings/seo";

const SITE_URL = SEO_STRINGS.site.url.replace(/\/$/, "");
Expand Down Expand Up @@ -73,15 +73,6 @@ function expandDynamicRoutes(routes: string[]): string[] {
continue;
}

if (route === "/examples/[framework]/[example]") {
for (const id of FRAMEWORK_HUB_IDS) {
for (const slug of EXAMPLE_SLUGS) {
expanded.push(`/examples/${id}/${slug}`);
}
}
continue;
}

if (route === "/examples/[framework]") {
for (const id of FRAMEWORK_HUB_IDS) {
expanded.push(`/examples/${id}`);
Expand Down
7 changes: 4 additions & 3 deletions apps/marketing/src/components/pages/HomeContent.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -260,7 +260,7 @@ export default function HomeContent() {
animate={{ opacity: 1, y: 0 }}
transition={{ duration: 0.6, delay: 0.2 }}
>
The Data Grid for React, Vue, Angular, Svelte, Solid, and Vanilla TypeScript
Big grid energy. Featherweight build.
</motion.h1>

<motion.p
Expand All @@ -269,8 +269,9 @@ export default function HomeContent() {
animate={{ opacity: 1 }}
transition={{ duration: 0.6, delay: 0.3 }}
>
A lightweight data grid with sorting, filtering, virtualization, column pinning, row
grouping, inline editing, and much more.
A {SIMPLE_TABLE_INFO.bundleSizeMinGzip} data grid packed with 30+ features, dropped
into React, Vue, Angular, Svelte, Solid, or vanilla TypeScript in minutes — backed by
support that actually replies.
</motion.p>

<motion.div
Expand Down
6 changes: 2 additions & 4 deletions apps/marketing/src/components/sections/CaseStudySection.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ export default function CaseStudySection() {
</div>
</div>
<div className="bg-white dark:bg-gray-800 rounded-lg p-4 text-center">
<div className="text-2xl font-bold text-blue-600 dark:text-blue-400 mb-1">99%</div>
<div className="text-2xl font-bold text-blue-600 dark:text-blue-400 mb-1">100%</div>
<div className="text-sm text-gray-600 dark:text-gray-400">
Customization needs met
</div>
Expand All @@ -58,9 +58,7 @@ export default function CaseStudySection() {
<div className="text-2xl font-bold text-purple-600 dark:text-purple-400 mb-1">
Highly Responsive
</div>
<div className="text-sm text-gray-600 dark:text-gray-400">
Support & bug fixes
</div>
<div className="text-sm text-gray-600 dark:text-gray-400">Support & bug fixes</div>
</div>
</div>

Expand Down
3 changes: 1 addition & 2 deletions apps/marketing/src/components/sections/FeaturesSection.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -53,8 +53,7 @@ export default function FeaturesSection() {
Full-Featured Data Grid Component
</h2>
<p className="text-lg text-gray-600 dark:text-gray-300 max-w-3xl mx-auto">
Make your data handling look professional. Here's what our component brings to your
projects
30+ features in the box, so you can stop gluing libraries together.
</p>
</div>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -146,7 +146,7 @@ export default function ProductionSection() {
Dedicated Support
</h3>
<p className="text-gray-600 dark:text-gray-300">
Your feedback is important to us. Get timely technical support for your use cases.
Real humans, fast replies. Ask a question and actually get an answer.
</p>
</motion.div>
</div>
Expand Down
Loading
Loading