A modern, professional landing page for XTeam, showcasing premium CRM systems, ERP platforms, Telegram bot development, and custom web and mobile solutions. Built with Next.js 16, React 19, and a luxury glassmorphism design aesthetic.
- Multi-language Support: Full internationalization with English, Russian, and Uzbek translations
- Theme System: Dark/Light/System modes with automatic detection and persistence
- Responsive Design: Mobile-first design that works seamlessly across all devices
- Smooth Animations: Fade-in, slide-in, floating elements, and glow effects with scroll-based triggers
- Glass Morphism UI: Modern glassmorphism effects with backdrop blur and transparency
- Accessible Components: Built with semantic HTML and ARIA labels for screen readers
- Performance Optimized: Using Next.js 16 with Turbopack and React Compiler support
- Modern Stack: TypeScript, Tailwind CSS v4, shadcn/ui components, and Lucide icons
- Framework: Next.js 16.1 (App Router)
- React: 19.2 with React Compiler support
- Styling: Tailwind CSS v4, PostCSS
- UI Components: shadcn/ui (Radix UI based)
- Icons: Lucide React
- Forms: React Hook Form with Zod validation
- Animations: CSS animations with Tailwind utilities
- i18n: Custom translation system with JSON files
- Analytics: Vercel Analytics
βββ app/
β βββ layout.tsx # Root layout (Server Component)
β βββ layout-client.tsx # Client layout with TranslationProvider
β βββ page.tsx # Home page
β βββ globals.css # Global styles and animations
β βββ layout.config.ts # Metadata configuration
βββ components/
β βββ navbar.tsx # Navigation with language/theme switcher
β βββ hero.tsx # Hero section with CTA
β βββ trust.tsx # Features/trust section
β βββ services.tsx # Services showcase
β βββ projects.tsx # Portfolio/projects
β βββ about.tsx # About company
β βββ faq.tsx # FAQ section
β βββ contact.tsx # Contact form
β βββ footer.tsx # Footer
β βββ ui/ # shadcn/ui components
βββ lib/
β βββ translation-context.tsx # Translation and theme context
β βββ translations/
β β βββ en.json # English translations
β β βββ ru.json # Russian translations
β β βββ uz.json # Uzbek translations
β βββ utils.ts # Utility functions
βββ public/ # Static assets
βββ package.json
- Node.js 18+ or later
- pnpm (recommended) or npm/yarn
- Clone the repository:
git clone <repository-url>
cd xteam-landing- Install dependencies:
pnpm install
# or
npm install- Run the development server:
pnpm dev
# or
npm run dev- Open http://localhost:3000 in your browser
pnpm build
pnpm startColors are defined using design tokens in app/globals.css using CSS custom properties (CSS variables). Modify the :root and .dark sections to change the color scheme:
:root {
--primary: oklch(0.1 0 0); /* Black */
--primary-foreground: oklch(1 0 0); /* White */
/* ... other colors ... */
}Edit the JSON files in lib/translations/:
en.json- Englishru.json- Russianuz.json- Uzbek
The translation system uses dot notation paths (e.g., hero.title) to access nested values.
Each section is a separate component in the components/ directory:
- Edit the components to change text, images, and structure
- Content strings are pulled from translation files for multi-language support
- Update translation files to see changes reflected across all languages
- Create a new component in
components/(e.g.,components/testimonials.tsx) - Add translations to
lib/translations/*.json - Import and add the component to
app/page.tsx - Style using Tailwind classes and existing design tokens
The useTranslation() hook provides access to:
language: Current language ('en' | 'ru' | 'uz')setLanguage(): Function to change languaget(): Translation function using dot notation
const { t, language, setLanguage } = useTranslation();
<h1>{t('hero.title')}</h1>The theme system provides:
theme: Current theme ('light' | 'dark' | 'system')setTheme(): Function to change themeisDark: Boolean indicating if dark mode is active
Changes are automatically persisted and detected from system preferences when set to 'system'.
Global animations defined in app/globals.css:
fadeInUp: Fade in with upward movementslideIn: Slide in from leftfloat: Continuous floating motionglow: Box shadow glow effect
Use with animate-fade-in, animate-slide-in, etc., and stagger with inline styles:
<div className="animate-fade-in" style={{ animationDelay: '0.2s' }}>- Turbopack: Next.js 16's stable default bundler for faster builds
- React Compiler: Automatic optimization of components (stable in Next.js 16)
- Image Optimization: Next.js Image component for lazy loading
- Code Splitting: Automatic route-based code splitting
- Vercel Analytics: Built-in performance monitoring
- Chrome (latest)
- Firefox (latest)
- Safari (latest)
- Edge (latest)
- Push your code to GitHub
- Import the repository in Vercel
- Vercel will auto-detect Next.js and configure build settings
- Click Deploy
Alternatively, use the Vercel CLI:
vercelCurrently, no environment variables are required. For future API integrations, add them to .env.local:
NEXT_PUBLIC_API_URL=your_api_url
- Semantic HTML elements (
main,header,nav,section) - ARIA labels and roles for screen readers
- Keyboard navigation support
- Color contrast compliance
- Form labels properly associated with inputs
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
For issues and questions, please open an issue on GitHub or contact support@xteam.com
Built with β€οΈ using Next.js, React, and Tailwind CSS