From 959f3e7550e3098a3057f1fb4e9e1d26cdef979a Mon Sep 17 00:00:00 2001 From: waleed Date: Sat, 8 Nov 2025 02:28:47 -0800 Subject: [PATCH 01/12] feat(blog): fundraise blog --- apps/sim/app/(landing)/blog/page.tsx | 8 +- apps/sim/app/(landing)/careers/page.tsx | 583 +++++++++--------- .../app/(landing)/components/legal-layout.tsx | 5 +- apps/sim/app/(landing)/components/nav/nav.tsx | 10 +- apps/sim/content/blog/series-a/index.mdx | 48 ++ apps/sim/lib/blog/registry.ts | 1 + apps/sim/lib/blog/schema.ts | 2 + apps/sim/public/blog/authors/waleed.png | Bin 0 -> 2490664 bytes apps/sim/public/blog/series-a/cover.png | Bin 0 -> 92401 bytes apps/sim/public/blog/series-a/team.png | Bin 0 -> 10698937 bytes 10 files changed, 366 insertions(+), 291 deletions(-) create mode 100644 apps/sim/content/blog/series-a/index.mdx create mode 100644 apps/sim/public/blog/authors/waleed.png create mode 100644 apps/sim/public/blog/series-a/cover.png create mode 100644 apps/sim/public/blog/series-a/team.png diff --git a/apps/sim/app/(landing)/blog/page.tsx b/apps/sim/app/(landing)/blog/page.tsx index e5c21d354ce..34a55fd5c49 100644 --- a/apps/sim/app/(landing)/blog/page.tsx +++ b/apps/sim/app/(landing)/blog/page.tsx @@ -17,9 +17,11 @@ export default async function BlogIndex({ const all = await getAllPostMeta() const filtered = tag ? all.filter((p) => p.tags.includes(tag)) : all - const totalPages = Math.max(1, Math.ceil(filtered.length / perPage)) + const featured = pageNum === 1 ? filtered.find((p) => p.featured) || filtered[0] : null + const listBase = featured ? filtered.filter((p) => p.slug !== featured.slug) : filtered + const totalPages = Math.max(1, Math.ceil(listBase.length / perPage)) const start = (pageNum - 1) * perPage - const posts = filtered.slice(start, start + perPage) + const posts = listBase.slice(start, start + perPage) // Tag filter chips are intentionally disabled for now. // const tags = await getAllTags() const blogJsonLd = { @@ -30,7 +32,7 @@ export default async function BlogIndex({ description: 'Announcements, insights, and guides for building AI agent workflows.', } - const [featured, ...rest] = posts + const rest = posts return (
diff --git a/apps/sim/app/(landing)/careers/page.tsx b/apps/sim/app/(landing)/careers/page.tsx index d52bd985794..15640865bd8 100644 --- a/apps/sim/app/(landing)/careers/page.tsx +++ b/apps/sim/app/(landing)/careers/page.tsx @@ -14,9 +14,11 @@ import { } from '@/components/ui/select' import { Textarea } from '@/components/ui/textarea' import { quickValidateEmail } from '@/lib/email/validation' +import { isHosted } from '@/lib/environment' import { createLogger } from '@/lib/logs/console/logger' import { cn } from '@/lib/utils' -import { LegalLayout } from '@/app/(landing)/components' +import Footer from '@/app/(landing)/components/footer/footer' +import Nav from '@/app/(landing)/components/nav/nav' import { soehne } from '@/app/fonts/soehne/soehne' const logger = createLogger('CareersPage') @@ -199,329 +201,340 @@ export default function CareersPage() { } return ( - -
- {/* Form Section */} -
-

Apply Now

-

- Help us build the future of AI workflows -

- -
- {/* Name and Email */} -
-
- - setName(e.target.value)} - className={cn( - showErrors && - nameErrors.length > 0 && - 'border-red-500 focus:border-red-500 focus:ring-red-100 focus-visible:ring-red-500' +
+