The official landing page for Memos, an AI-powered chat history management system with intelligent semantic search capabilities.
This is a modern, responsive landing page built with Next.js 15 that showcases the Memos project - a revolutionary chat history storage and management system that combines traditional keyword search with AI-powered semantic similarity for intelligent conversational data retrieval.
- Clean, Minimal Design - Professional landing page with modern aesthetics
- Responsive Layout - Mobile-first design that works on all devices
- Dark Mode Support - Automatic theme switching based on user preference
- Gradient Backgrounds - Beautiful visual effects with CSS gradients
- Smooth Animations - Subtle hover effects and transitions
- Professional i18n Setup - Built with next-intl for scalable multilingual support
- Multi-Language Support - English and Chinese (Simplified) with easy extensibility
- SEO-Friendly URLs - Clean URLs with locale prefixes (
/en,/zh) - Dropdown Language Switcher - Professional dropdown menu with flags and language names
- Static Site Generation - Optimized SSG for all locales with
generateStaticParams - Type-Safe Translations - Full TypeScript support with structured message files
- Advanced Routing - Centralized routing configuration with next-intl navigation APIs
- Navigation Header - Logo, dropdown language switcher, and GitHub link
- Hero Section - Compelling headline with primary call-to-action
- Features Grid - Three key features of the Memos system:
- π Hybrid Search (keyword + semantic)
- π€ AI-Powered (Google Gemini embeddings)
- β‘ Real-time capabilities
- Footer - Clean footer with copyright information
- Fast loading times with Next.js optimization
- Clean typography using Geist fonts
- Intuitive navigation and layout
- Professional color scheme with consistent branding
- Framework: Next.js 15.4.2 with React 19
- Internationalization: next-intl 4.3.4 with official App Router support
- Styling: Tailwind CSS 4 with custom design tokens
- UI Components: Radix UI primitives (dropdown menu, button)
- Icons: Lucide React for interface icons
- Typography: Geist Sans and Geist Mono fonts
- Development: TypeScript with ESLint and path mapping
- Node.js 18+
- pnpm (recommended) or npm
-
Clone the repository
git clone <repository-url> cd website
-
Install dependencies
pnpm install # or npm install -
Start the development server
pnpm dev # or npm run dev -
Access the website
Navigate to one of the following URLs:
- English: http://localhost:3000/en
- Chinese: http://localhost:3000/zh
pnpm dev- Start development server with Turbopackpnpm build- Build the application for productionpnpm start- Start the production serverpnpm lint- Run ESLint for code quality
website/
βββ messages/ # Translation files
β βββ en.json # English translations
β βββ zh.json # Chinese translations
βββ src/
β βββ app/
β β βββ [locale]/ # Next.js 15 app directory with i18n routing
β β βββ layout.tsx # Root layout with locale support
β β βββ page.tsx # Main landing page component
β β βββ not-found.tsx # Custom 404 page
β β βββ globals.css # Global styles & Tailwind CSS
β βββ components/
β β βββ ui/ # UI component library
β β βββ button.tsx # Button component with variants
β β βββ dropdown-menu.tsx # Dropdown menu components
β β βββ language-dropdown.tsx # Language switcher dropdown
β βββ i18n/ # Internationalization configuration
β β βββ routing.ts # Routing configuration
β β βββ navigation.ts # Navigation API wrappers
β β βββ request.ts # Server-side i18n config
β βββ lib/ # Utility libraries
β β βββ utils.ts # Utility functions (cn helper)
β βββ middleware.ts # Next.js middleware for locale detection
βββ public/ # Static assets
βββ package.json # Dependencies and scripts
βββ next.config.ts # Next.js configuration with next-intl
βββ tailwind.config.js # Tailwind CSS configuration
βββ tsconfig.json # TypeScript configuration
βββ README.md # This file
- β Official next-intl Implementation - Professional i18n setup following official documentation
- β
Structured Message Files - JSON-based translation management in
messages/folder - β
Advanced Routing - Centralized routing configuration with
routing.ts - β Navigation APIs - Type-safe navigation wrappers with locale awareness
- β
Static Site Generation - Optimized SSG with
generateStaticParamsandsetRequestLocale - β Professional Dropdown - Enhanced language switcher with next-intl navigation
- β
Server Components - Using
getTranslationsfor optimal performance - β Middleware Integration - Automatic locale detection and routing
- β
TypeScript Support - Full type safety with path mapping to
src/folder
- src/ Folder Structure - Clean separation of source code
- Type-Safe Translations - Structured message keys with IntelliSense
- Centralized Configuration - Single source of truth for routing and locales
- Performance Optimized - Static rendering with locale-aware navigation
- Scalable Design - Easy addition of new languages and routes
- English (en) - Default language with full content
- Chinese Simplified (zh) - Complete translation available
- URL-based Routing - Clean URLs with locale prefixes (
/en,/zh) - Professional Dropdown - Language switcher with country flags and next-intl navigation
- Static Site Generation - Pre-rendered pages for all locales
- Type-Safe Navigation - Locale-aware Link, redirect, useRouter, and usePathname
- Automatic Locale Detection - Middleware handles browser language preferences
- Fallback Support - Graceful fallback to default locale
The application uses next-intl's structured approach:
- Message Files - JSON files in
messages/folder - Routing Configuration - Centralized in
src/i18n/routing.ts - Navigation APIs - Wrapped Next.js navigation in
src/i18n/navigation.ts - Request Configuration - Server-side setup in
src/i18n/request.ts - Middleware - Automatic locale detection in
src/middleware.ts
The website includes structured translations for:
- Navigation elements and GitHub links
- Complete hero section (title, subtitle, description)
- Feature cards with detailed descriptions
- Call-to-action buttons and footer content
- Error pages (404 not found)
To add a new language (e.g., French):
-
Add message file
# Create messages/fr.json with translations touch messages/fr.json -
Update routing configuration
// src/i18n/routing.ts export const routing = defineRouting({ locales: ["en", "zh", "fr"], defaultLocale: "en", });
-
Update language dropdown
// src/components/ui/language-dropdown.tsx const languages = { en: { label: "English", flag: "πΊπΈ" }, zh: { label: "δΈζ", flag: "π¨π³" }, fr: { label: "FranΓ§ais", flag: "π«π·" }, };
-
Create translations
// messages/fr.json { "HomePage": { "title": "Stockage Intelligent pour les DonnΓ©es Conversationnelles", "description": "..." } }
The system will automatically:
- Generate static pages for the new locale
- Handle routing and navigation
- Provide type-safe translation functions
- Support locale detection and switching
The website uses a carefully crafted design system built on top of Tailwind CSS:
- Colors: Custom color palette with semantic naming
- Typography: Geist font family for modern readability
- Spacing: Consistent spacing scale throughout
- Shadows: Subtle shadows for depth and hierarchy
- Borders: Rounded corners for friendly, modern feel
Memos is a full-stack application designed to revolutionize how we store and retrieve conversational data. It combines traditional keyword search with AI-powered semantic similarity, providing an intelligent system for managing chat histories, conversations, and memory-based interactions.
- Backend: Node.js + Express.js with TypeScript
- Database: Supabase PostgreSQL with pgvector extension
- AI: Google Gemini AI (gemini-embedding-001)
- Frontend: Next.js 15+ with React 19
- MCP: Model Context Protocol for AI tool integration
-
Vercel (Recommended)
# Deploy to Vercel with automatic i18n support npx vercel --prod -
Netlify
# Build and deploy pnpm build # Upload .next folder to Netlify
-
Docker
FROM node:18-alpine WORKDIR /app COPY package*.json ./ RUN npm install COPY . . RUN npm run build EXPOSE 3000 CMD ["npm", "start"]
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Make your changes following the established patterns
- Update translations in
messages/folder if you modify text content - Test all language routes (
/en,/zh) - Update this README for any structural changes
- Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
- Follow the established JSON structure in
messages/folder - Ensure all translation keys are present in all language files
- Test the dropdown language switcher functionality
- Verify static site generation works for new locales
- Use
getTranslationsfor server components - Use
useTranslationsfor client components - Always add
setRequestLocale(locale)in pages and layouts for static rendering - Use next-intl's navigation APIs (
Link,useRouter, etc.) for locale-aware routing
This project is licensed under the ISC License - see the main Memos project for details.
- Live Website:
- English: http://localhost:3000/en (development)
- Chinese: http://localhost:3000/zh (development)
- next-intl Documentation: https://next-intl.dev/
- Memos Project Documentation: See
MEMOS.mdfor full project details - GitHub Repository: [Your repository URL]
Built with β€οΈ using Next.js 15 and next-intl for the global Memos community