Skip to content

Commit 1b08769

Browse files
Feat: design-system token consolidation and edge API routes (#228)
* refactor(ui): modernize design system with improved layouts and build performance * feat(edge): restore Edge/Inngest migration with package updates * fix: various build errors + performance issues * feat(changelog): timeline view redesign with markdown rendering Redesigned changelog display with minimal timeline sidebar design. Implemented markdown-to-HTML conversion, removed duplicate content, and added sticky scroll timeline markers that align with entry boundaries. * fix(changelog): address CodeRabbit PR fixes and improve code quality Fixed code review issues across changelog components, added server-side DOMPurify sanitization for defense-in-depth, and improved component maintainability by extracting functions and simplifying logic. * 📝 Add docstrings to `feat/design-system-enhancements` (#242) Docstrings generation was requested by @JSONbored. * #228 (comment) The following files were modified: * `apps/web/src/app/(auth)/auth/link/[provider]/callback/page.tsx` * `apps/web/src/app/(auth)/auth/link/[provider]/route.ts` * `apps/web/src/app/(auth)/layout.tsx` * `apps/web/src/app/[category]/[slug]/page.tsx` * `apps/web/src/app/accessibility/page.tsx` * `apps/web/src/app/account/activity/page.tsx` * `apps/web/src/app/account/companies/[id]/edit/page.tsx` * `apps/web/src/app/account/companies/new/page.tsx` * `apps/web/src/app/account/companies/page.tsx` * `apps/web/src/app/account/connected-accounts/page.tsx` * `apps/web/src/app/account/jobs/[id]/analytics/page.tsx` * `apps/web/src/app/account/jobs/[id]/edit/page.tsx` * `apps/web/src/app/account/jobs/new/page.tsx` * `apps/web/src/app/account/jobs/page.tsx` * `apps/web/src/app/account/layout.tsx` * `apps/web/src/app/account/library/[slug]/edit/page.tsx` * `apps/web/src/app/account/library/[slug]/page.tsx` * `apps/web/src/app/account/library/new/page.tsx` * `apps/web/src/app/account/library/page.tsx` * `apps/web/src/app/account/page.tsx` * `apps/web/src/app/account/settings/mfa/page.tsx` * `apps/web/src/app/account/settings/page.tsx` * `apps/web/src/app/account/sponsorships/[id]/analytics/page.tsx` * `apps/web/src/app/account/sponsorships/page.tsx` * `apps/web/src/app/account/submissions/page.tsx` * `apps/web/src/app/api/company/route.ts` * `apps/web/src/app/api/content/[category]/[slug]/route.ts` * `apps/web/src/app/api/content/[category]/route.ts` * `apps/web/src/app/api/content/changelog/[slug]/route.ts` * `apps/web/src/app/api/content/paginated/route.ts` * `apps/web/src/app/api/content/sitewide/route.ts` * `apps/web/src/app/api/feeds/route.ts` * `apps/web/src/app/api/flux/[...path]/route.ts` * `apps/web/src/app/api/og/route.tsx` * `apps/web/src/app/api/revalidate/route.ts` * `apps/web/src/app/api/search/autocomplete/route.ts` * `apps/web/src/app/api/search/route.ts` * `apps/web/src/app/api/stats/social-proof/route.ts` * `apps/web/src/app/api/status/route.ts` * `apps/web/src/app/api/templates/route.ts` * `apps/web/src/app/api/trending/route.ts` * `apps/web/src/app/changelog/[slug]/loading.tsx` * `apps/web/src/app/changelog/[slug]/page.tsx` * `apps/web/src/app/changelog/loading.tsx` * `apps/web/src/app/changelog/page.tsx` * `apps/web/src/app/community/directory/page.tsx` * `apps/web/src/app/community/page.tsx` * `apps/web/src/app/companies/[slug]/page.tsx` * `apps/web/src/app/companies/page.tsx` * `apps/web/src/app/contact/page.tsx` * `apps/web/src/app/cookies/page.tsx` * `apps/web/src/app/error.tsx` * `apps/web/src/app/global-error.tsx` * `apps/web/src/app/help/page.tsx` * `apps/web/src/app/jobs/[slug]/page.tsx` * `apps/web/src/app/jobs/page.tsx` * `apps/web/src/app/layout.tsx` * `apps/web/src/app/manifest.ts` * `apps/web/src/app/not-found.tsx` * `apps/web/src/app/page.tsx` * `apps/web/src/app/partner/page.tsx` * `apps/web/src/app/privacy/page.tsx` * `apps/web/src/app/search/page.tsx` * `apps/web/src/app/submit/layout.tsx` * `apps/web/src/app/submit/page.tsx` * `apps/web/src/app/submit/wizard/page.tsx` * `apps/web/src/app/terms/page.tsx` * `apps/web/src/app/tools/config-recommender/page.tsx` * `apps/web/src/app/tools/config-recommender/results/[id]/page.tsx` * `apps/web/src/app/trending/page.tsx` * `apps/web/src/app/u/[slug]/collections/[collectionSlug]/page.tsx` * `apps/web/src/app/u/[slug]/page.tsx` * `apps/web/src/components/content/detail-page/detail-header-actions.tsx` * `apps/web/src/components/core/layout/footer.tsx` * `apps/web/src/components/features/account/connected-accounts-client.tsx` * `apps/web/src/components/features/changelog/changelog-accordion-sections.tsx` * `apps/web/src/components/features/changelog/changelog-content-utils.ts` * `apps/web/src/components/features/changelog/changelog-content.tsx` * `apps/web/src/components/features/changelog/changelog-list-client.tsx` * `apps/web/src/components/features/changelog/changelog-timeline-view.tsx` * `apps/web/src/components/features/changelog/timeline-marker.tsx` * `apps/web/src/components/features/growth/newsletter/newsletter-cta-variants.tsx` * `apps/web/src/components/providers/notifications-provider.tsx` * `apps/web/src/lib/utils/markdown-to-html.ts` Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * refactor(utils): extract URL safety utilities and fix CodeRabbit PR issues Extracted duplicate URL validation functions to shared module and addressed code review feedback across changelog components, sponsorships, and API routes * feat(content): enhance detail pages and enable commands examples tab Fixed security items extraction to check both contentItem and metadata, enabled additional sections for commands category, and added Examples tab for commands content type. * fix(deps): update dependencies and remove unused packages Updated @anthropic-ai/mcpb, @supabase/supabase-js, and turbo to latest versions. Removed unused ultracite dependency and reorganized devDependencies. * refactor(content): consolidate URL utilities and add Schema.org FAQ support * fix(typecheck): fix outstanding typescript error * 📝 Add docstrings to `feat/design-system-enhancements` (#244) Docstrings generation was requested by @JSONbored. * #228 (comment) The following files were modified: * `apps/web/src/app/(auth)/auth-code-error/page.tsx` * `apps/web/src/app/(auth)/auth/link/[provider]/callback/page.tsx` * `apps/web/src/app/(auth)/auth/link/[provider]/route.ts` * `apps/web/src/app/(auth)/login/login-panel-client.tsx` * `apps/web/src/app/(auth)/login/page.tsx` * `apps/web/src/app/500.tsx` * `apps/web/src/app/[category]/[slug]/page.tsx` * `apps/web/src/app/accessibility/page.tsx` * `apps/web/src/app/account/activity/page.tsx` * `apps/web/src/app/account/companies/new/page.tsx` * `apps/web/src/app/account/companies/page.tsx` * `apps/web/src/app/account/connected-accounts/page.tsx` * `apps/web/src/app/account/jobs/[id]/analytics/page.tsx` * `apps/web/src/app/account/jobs/new/page.tsx` * `apps/web/src/app/account/jobs/page.tsx` * `apps/web/src/app/account/library/[slug]/edit/page.tsx` * `apps/web/src/app/account/library/[slug]/page.tsx` * `apps/web/src/app/account/library/new/page.tsx` * `apps/web/src/app/account/library/page.tsx` * `apps/web/src/app/account/page.tsx` * `apps/web/src/app/account/settings/page.tsx` * `apps/web/src/app/account/sponsorships/[id]/analytics/page.tsx` * `apps/web/src/app/account/sponsorships/page.tsx` * `apps/web/src/app/account/submissions/page.tsx` * `apps/web/src/app/api/company/route.ts` * `apps/web/src/app/api/content/[category]/[slug]/route.ts` * `apps/web/src/app/api/content/changelog/[slug]/route.ts` * `apps/web/src/app/api/content/paginated/route.ts` * `apps/web/src/app/api/content/sitewide/route.ts` * `apps/web/src/app/api/feeds/route.ts` * `apps/web/src/app/api/flux/[...path]/route.ts` * `apps/web/src/app/api/inngest/route.ts` * `apps/web/src/app/api/search/route.ts` * `apps/web/src/app/api/status/route.ts` * `apps/web/src/app/api/trending/route.ts` * `apps/web/src/app/changelog/[slug]/loading.tsx` * `apps/web/src/app/changelog/[slug]/page.tsx` * `apps/web/src/app/community/page.tsx` * `apps/web/src/app/companies/[slug]/page.tsx` * `apps/web/src/app/companies/page.tsx` * `apps/web/src/app/jobs/[slug]/page.tsx` * `apps/web/src/app/jobs/page.tsx` * `apps/web/src/app/page.tsx` * `apps/web/src/app/privacy/page.tsx` * `apps/web/src/app/search/page.tsx` * `apps/web/src/app/submit/layout.tsx` * `apps/web/src/app/submit/page.tsx` * `apps/web/src/app/submit/wizard/page.tsx` * `apps/web/src/app/terms/page.tsx` * `apps/web/src/app/tools/config-recommender/page.tsx` * `apps/web/src/app/tools/config-recommender/results/[id]/page.tsx` * `apps/web/src/app/trending/page.tsx` * `apps/web/src/app/u/[slug]/collections/[collectionSlug]/page.tsx` * `apps/web/src/app/u/[slug]/page.tsx` * `apps/web/src/components/content/detail-page/content-detail-view.tsx` * `apps/web/src/components/content/detail-tabs/tab-section-renderer.tsx` * `apps/web/src/components/features/changelog/changelog-accordion-sections.tsx` * `apps/web/src/components/features/changelog/changelog-timeline-view.tsx` Signed-off-by: ghost <49853598+JSONbored@users.noreply.github.com> Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> Co-authored-by: ghost <49853598+JSONbored@users.noreply.github.com> * 📝 Add docstrings to `feat/design-system-enhancements` (#245) Docstrings generation was requested by @JSONbored. * #228 (comment) The following files were modified: * `apps/web/src/app/(auth)/auth-code-error/page.tsx` * `apps/web/src/app/(auth)/auth/link/[provider]/callback/page.tsx` * `apps/web/src/app/[category]/[slug]/loading.tsx` * `apps/web/src/app/[category]/[slug]/page.tsx` * `apps/web/src/app/accessibility/page.tsx` * `apps/web/src/app/account/activity/page.tsx` * `apps/web/src/app/account/companies/new/page.tsx` * `apps/web/src/app/account/companies/page.tsx` * `apps/web/src/app/account/connected-accounts/page.tsx` * `apps/web/src/app/account/jobs/[id]/analytics/page.tsx` * `apps/web/src/app/account/jobs/new/page.tsx` * `apps/web/src/app/account/jobs/page.tsx` * `apps/web/src/app/account/layout.tsx` * `apps/web/src/app/account/library/[slug]/page.tsx` * `apps/web/src/app/account/library/new/page.tsx` * `apps/web/src/app/account/settings/page.tsx` * `apps/web/src/app/account/sponsorships/[id]/analytics/page.tsx` * `apps/web/src/app/account/sponsorships/page.tsx` * `apps/web/src/app/account/submissions/page.tsx` * `apps/web/src/app/api/company/route.ts` * `apps/web/src/app/api/content/[category]/[slug]/route.ts` * `apps/web/src/app/api/content/changelog/[slug]/route.ts` * `apps/web/src/app/api/content/paginated/route.ts` * `apps/web/src/app/api/feeds/route.ts` * `apps/web/src/app/api/flux/[...path]/route.ts` * `apps/web/src/app/api/inngest/route.ts` * `apps/web/src/app/api/revalidate/route.ts` * `apps/web/src/app/api/search/route.ts` * `apps/web/src/app/api/status/route.ts` * `apps/web/src/app/api/templates/route.ts` * `apps/web/src/app/api/trending/route.ts` * `apps/web/src/app/changelog/[slug]/page.tsx` * `apps/web/src/app/changelog/page.tsx` * `apps/web/src/app/community/page.tsx` * `apps/web/src/app/companies/[slug]/page.tsx` * `apps/web/src/app/companies/page.tsx` * `apps/web/src/app/cookies/page.tsx` * `apps/web/src/app/jobs/[slug]/page.tsx` * `apps/web/src/app/jobs/page.tsx` * `apps/web/src/app/page.tsx` * `apps/web/src/app/privacy/page.tsx` * `apps/web/src/app/search/page.tsx` * `apps/web/src/app/submit/layout.tsx` * `apps/web/src/app/submit/page.tsx` * `apps/web/src/app/tools/config-recommender/page.tsx` * `apps/web/src/app/tools/config-recommender/results/[id]/page.tsx` * `apps/web/src/app/trending/page.tsx` * `apps/web/src/app/u/[slug]/collections/[collectionSlug]/page.tsx` * `apps/web/src/app/u/[slug]/page.tsx` * `apps/web/src/components/content/detail-page/content-detail-view.tsx` * `apps/web/src/components/content/detail-page/detail-header-actions.tsx` * `apps/web/src/components/content/detail-tabs/tab-section-renderer.tsx` * `apps/web/src/components/content/sections/unified-section.tsx` * `apps/web/src/components/core/layout/footer.tsx` * `apps/web/src/components/features/changelog/changelog-accordion-sections.tsx` * `apps/web/src/components/features/changelog/changelog-content-utils.ts` * `apps/web/src/components/features/changelog/changelog-content.tsx` * `apps/web/src/components/features/changelog/changelog-list-client.tsx` Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * fix(api): resolve Next.js 16 compatibility and improve API validation * fix(coderabbit): linting, formatting, + codebase safety --------- Signed-off-by: ghost <49853598+JSONbored@users.noreply.github.com> Co-authored-by: JSONbored <49853598+gh0stdotexe@users.noreply.github.com> Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
1 parent 0fd6a0b commit 1b08769

File tree

325 files changed

+25819
-18990
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

325 files changed

+25819
-18990
lines changed

.gitignore

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,9 @@ lerna-debug.log*
4242
.cursor/
4343
docs/
4444

45+
# Migration planning (analysis only, no code changes)
46+
.migration/
47+
4548
# CodeRabbit generated reports/summaries (should not be committed)
4649
DELIVERABLES.md
4750
FINAL_TEST_REPORT.md
@@ -105,6 +108,13 @@ supabase/migrations/*
105108
# Turborepo
106109
.turbo
107110

111+
# Playwright test artifacts
112+
test-results/
113+
playwright-report/
114+
*.spec.ts-snapshots/
115+
*.spec.tsx-snapshots/
116+
.playwright/
117+
108118
apps/edge/functions/deno.lock
109119

110120
packages/edge-runtime/src/utils/email/templates/template-map.json

.prettierignore

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
# Dependencies
2+
node_modules
3+
.pnp
4+
.pnp.js
5+
6+
# Build outputs
7+
.next
8+
out
9+
dist
10+
build
11+
.turbo
12+
13+
# Generated files
14+
**/*.generated.*
15+
**/*.generated.ts
16+
**/*.generated.tsx
17+
18+
# Lock files
19+
pnpm-lock.yaml
20+
package-lock.json
21+
yarn.lock
22+
23+
# Logs
24+
*.log
25+
npm-debug.log*
26+
yarn-debug.log*
27+
yarn-error.log*
28+
29+
# Environment files
30+
.env
31+
.env.local
32+
.env.*.local
33+
34+
# IDE
35+
.vscode
36+
.idea
37+
*.swp
38+
*.swo
39+
*~
40+
41+
# OS
42+
.DS_Store
43+
Thumbs.db
44+
45+
# Public assets (don't format)
46+
public/**/*.js
47+
public/**/*.css
48+
public/service-worker.js
49+
50+
# Config files that should maintain their format
51+
*.config.js
52+
*.config.mjs
53+
*.config.ts

.prettierrc.json

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
{
2+
"semi": true,
3+
"singleQuote": true,
4+
"trailingComma": "es5",
5+
"printWidth": 100,
6+
"tabWidth": 2,
7+
"useTabs": false,
8+
"arrowParens": "always",
9+
"endOfLine": "lf",
10+
"plugins": ["prettier-plugin-tailwindcss"]
11+
}

.vercelignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ dist/
4040
# If cached without dist/, TypeScript thinks builds are complete but outputs don't exist
4141
*.tsbuildinfo
4242
tsconfig.tsbuildinfo
43+
.tsbuildinfo
4344

4445
# Package manager files (Vercel auto-detects via lock files)
4546
# DO NOT exclude pnpm-lock.yaml - required for pnpm detection

apps/edge/supabase/functions/flux-station/deno.json

Lines changed: 0 additions & 47 deletions
This file was deleted.

0 commit comments

Comments
 (0)