From f0db6631c9321ea8ec2cf6c0326c3b3d08b1de4b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Oj=C4=81rs=20Kapteinis?= Date: Mon, 17 Nov 2025 21:24:25 +0200 Subject: [PATCH] feat: restore custom homepage and UX improvements MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Replace social media links with Mastodon, Pixelfed, and Bookwyrm - Mastodon: https://kapteinis.lv/@ojars - Pixelfed: https://pixel.kapteinis.lv/ojars - Bookwyrm: https://book.kapteinis.lv/user/ojars - Update hero section tagline to "Let's Start Surfing" - Improve hero description for AI research agent focus - Add "Add Webpage(s)" direct link to navigation for easier crawling access - Fix URL validation to support percent-encoded URLs (Latvian characters) - Add accessibility labels and hover effects to social links 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- .../documents/webpage/page.tsx | 4 +- .../dashboard/[search_space_id]/layout.tsx | 4 ++ surfsense_web/components/homepage/footer.tsx | 37 ++++++++++++------- .../components/homepage/hero-section.tsx | 7 +--- 4 files changed, 32 insertions(+), 20 deletions(-) diff --git a/surfsense_web/app/dashboard/[search_space_id]/documents/webpage/page.tsx b/surfsense_web/app/dashboard/[search_space_id]/documents/webpage/page.tsx index b24e1dba7..0f78bad7c 100644 --- a/surfsense_web/app/dashboard/[search_space_id]/documents/webpage/page.tsx +++ b/surfsense_web/app/dashboard/[search_space_id]/documents/webpage/page.tsx @@ -17,8 +17,8 @@ import { } from "@/components/ui/card"; import { Label } from "@/components/ui/label"; -// URL validation regex -const urlRegex = /^(https?:\/\/)?([\da-z.-]+)\.([a-z.]{2,6})([/\w .-]*)*\/?$/; +// URL validation regex - updated to support percent-encoded URLs (e.g., Latvian characters) +const urlRegex = /^https?:\/\/[^\s]+$/; export default function WebpageCrawler() { const t = useTranslations("add_webpage"); diff --git a/surfsense_web/app/dashboard/[search_space_id]/layout.tsx b/surfsense_web/app/dashboard/[search_space_id]/layout.tsx index ea5dc41e2..dc9c73785 100644 --- a/surfsense_web/app/dashboard/[search_space_id]/layout.tsx +++ b/surfsense_web/app/dashboard/[search_space_id]/layout.tsx @@ -49,6 +49,10 @@ export default function DashboardLayout({ title: "Add Sources", url: `/dashboard/${search_space_id}/sources/add`, }, + { + title: "Add Webpage(s)", + url: `/dashboard/${search_space_id}/documents/webpage`, + }, { title: "Manage Documents", url: `/dashboard/${search_space_id}/documents`, diff --git a/surfsense_web/components/homepage/footer.tsx b/surfsense_web/components/homepage/footer.tsx index 88e640e81..872576679 100644 --- a/surfsense_web/components/homepage/footer.tsx +++ b/surfsense_web/components/homepage/footer.tsx @@ -1,9 +1,8 @@ "use client"; import { - IconBrandDiscord, - IconBrandGithub, - IconBrandLinkedin, - IconBrandTwitter, + IconBrandMastodon, + IconBook, + IconPhoto, } from "@tabler/icons-react"; import Link from "next/link"; import type React from "react"; @@ -48,17 +47,29 @@ export function Footer() { © SurfSense 2025

- - + + - - + + - - - - - + +
diff --git a/surfsense_web/components/homepage/hero-section.tsx b/surfsense_web/components/homepage/hero-section.tsx index 6488052e9..830079630 100644 --- a/surfsense_web/components/homepage/hero-section.tsx +++ b/surfsense_web/components/homepage/hero-section.tsx @@ -59,18 +59,15 @@ export function HeroSection() {

- The AI Workspace{" "}
- Built for Teams + Let's Start Surfing

- {/* // TODO:aCTUAL DESCRITION */}

- Connect any LLM to your internal knowledge sources and chat with it in real time alongside - your team. + Your AI-powered research agent and personal knowledge base. Connect any LLM to your data sources and explore information like never before.