diff --git a/website/PRODUCTS_PAGE_README.MD b/website/PRODUCTS_PAGE_README.MD
new file mode 100644
index 000000000..e4a1188be
--- /dev/null
+++ b/website/PRODUCTS_PAGE_README.MD
@@ -0,0 +1,306 @@
+# Jan Products Page - Retro-Tech Design System
+
+A futuristic products showcase page that combines the nostalgic aesthetics of RadioShack's electronic components with PostHog's modern data visualization approach. This creates a unique "retro-tech" visual language that feels both familiar and cutting-edge.
+
+## Design Philosophy
+
+### RadioShack + PostHog = Retro-Tech
+- **RadioShack Heritage**: Circuit board patterns, electronic components, terminal interfaces, amber/green CRT colors
+- **PostHog Influence**: Clean data cards, status indicators, system metrics, dashboard layouts
+- **Result**: A cohesive aesthetic that makes AI products feel like sophisticated electronic equipment
+
+### Color Palette
+```css
+--retro-green: #00ff41 /* Matrix green, primary brand */
+--retro-amber: #ffb000 /* Classic terminal amber */
+--retro-blue: #00bfff /* Processing/loading states */
+--retro-red: #ff0040 /* Error/warning states */
+--retro-cyan: #00ffff /* Accent highlights */
+--retro-magenta: #ff00ff /* Special effects */
+```
+
+## Architecture
+
+### File Structure
+```
+jan/website/src/
+├── pages/
+│ └── prods.astro # Main products page
+├── components/
+│ ├── CircuitBackground.astro # Animated circuit patterns
+│ ├── StatusIndicator.astro # System status components
+│ ├── RetroCard.astro # Terminal-style cards
+│ └── FloatingNav.astro # Floating navigation menu
+├── layouts/
+│ └── Layout.astro # Base layout with GSAP
+└── styles/
+ └── retro-effects.css # Advanced visual effects
+```
+
+### Component Hierarchy
+```
+Layout
+└── Products Page
+ ├── FloatingNav (right-side navigation)
+ ├── Hero Section
+ │ └── CircuitBackground (animated)
+ ├── Table of Contents
+ ├── Models Section
+ │ └── RetroCard (circuit variant)
+ ├── Platforms Section
+ │ └── RetroCard (data/system variants)
+ ├── Tools Section
+ │ └── RetroCard (terminal variant)
+ └── Integration Section
+```
+
+## Components Deep Dive
+
+### CircuitBackground.astro
+Creates animated circuit board patterns with electronic components.
+
+**Props:**
+- `variant`: 'subtle' | 'prominent' | 'animated'
+- `color`: 'green' | 'amber' | 'blue' | 'multi'
+- `density`: 'low' | 'medium' | 'high'
+- `animated`: boolean
+- `opacity`: number (0-1)
+
+**Features:**
+- Procedural circuit patterns
+- Animated electronic components (LEDs, resistors, capacitors)
+- Flowing data lines
+- Responsive grid scaling
+
+### StatusIndicator.astro
+Terminal-style system status indicators with pulsing animations.
+
+**Props:**
+- `status`: 'active' | 'warning' | 'success' | 'error' | 'idle'
+- `label`: string
+- `pulse`: boolean
+- `size`: 'small' | 'medium' | 'large'
+
+**Features:**
+- Animated status dots with glow effects
+- Color-coded status states
+- Accessibility compliant
+- Reduced motion support
+
+### RetroCard.astro
+Terminal-inspired cards with scanlines, CRT effects, and interactive animations.
+
+**Props:**
+- `variant`: 'terminal' | 'circuit' | 'data' | 'system'
+- `color`: 'green' | 'amber' | 'blue' | 'red' | 'multi'
+- `size`: 'small' | 'medium' | 'large'
+- `glitch`: boolean
+- `scanlines`: boolean
+- `glow`: boolean
+- `interactive`: boolean
+- `status`: 'online' | 'offline' | 'error' | 'warning' | 'processing'
+
+**Features:**
+- CRT monitor bezels with power indicators
+- Animated scanlines and glitch effects
+- Terminal-style headers with traffic light controls
+- Interactive hover states with 3D transforms
+- Corner brackets for retro-futuristic framing
+
+### FloatingNav.astro
+Floating navigation with terminal interface and system monitoring.
+
+**Props:**
+- `sections`: Array of navigation items with icons and status
+- `position`: 'left' | 'right'
+- `theme`: 'dark' | 'matrix' | 'circuit'
+- `compact`: boolean
+
+**Features:**
+- Terminal-style command prompt
+- Real-time system status indicators
+- Animated progress bars
+- Circuit connection lines
+- Smooth scrolling with GSAP integration
+
+## Animations & Effects
+
+### GSAP Integration
+The page uses GSAP (GreenSock Animation Platform) for sophisticated animations:
+
+**Timeline Animations:**
+- Hero section entrance with staggered reveals
+- Section headers with typewriter effects
+- Card appearances with 3D transforms
+
+**Scroll Triggers:**
+- Elements animate into view as user scrolls
+- Parallax effects on background elements
+- Progressive content revelation
+
+**Interactive Animations:**
+- Magnetic cursor effects on cards
+- 3D hover transformations
+- Ripple effects on clicks
+
+### CSS-Only Effects
+Enhanced with pure CSS animations for performance:
+
+**Visual Effects:**
+- CRT scanlines and monitor bezels
+- Matrix-style character rain
+- Glitch text distortions
+- Neon glow and pulsing lights
+
+**Component Animations:**
+- Electronic component blinking (LEDs)
+- Data stream flowing effects
+- Circuit trace pulsing
+- Status indicator breathing
+
+## Performance Optimizations
+
+### Lazy Loading
+- GSAP libraries loaded from CDN
+- Animations initialized after DOM ready
+- Circuit patterns use CSS transforms for GPU acceleration
+
+### Reduced Motion Support
+```css
+@media (prefers-reduced-motion: reduce) {
+ /* All animations disabled for accessibility */
+}
+```
+
+### Mobile Optimizations
+- Responsive grid layouts
+- Touch-friendly interactive elements
+- Optimized animation performance
+- Reduced visual effects on smaller screens
+
+## Accessibility Features
+
+### WCAG Compliance
+- High contrast mode support
+- Focus indicators for keyboard navigation
+- Screen reader friendly markup
+- Semantic HTML structure
+
+### Keyboard Navigation
+- Tab order follows logical flow
+- Escape key closes floating navigation
+- Arrow keys for menu navigation
+- Enter/Space for activation
+
+### Color Accessibility
+- Sufficient contrast ratios maintained
+- Status information not solely color-dependent
+- Alternative text for decorative elements
+
+## Customization Guide
+
+### Adding New Sections
+1. Add section to main page
+2. Update FloatingNav sections array
+3. Add corresponding GSAP animations
+4. Update TOC links
+
+### Creating New Card Variants
+```astro
+
+
+
+```
+
+### Custom Circuit Patterns
+```astro
+
+```
+
+### Color Theme Customization
+Override CSS custom properties:
+```css
+:root {
+ --retro-green: #your-color;
+ --retro-amber: #your-color;
+ /* etc. */
+}
+```
+
+## Dependencies
+
+### Required
+- Astro ^5.6.1
+- GSAP (loaded from CDN)
+- JetBrains Mono font
+
+### Optional Enhancements
+- Sharp for image optimization
+- Additional GSAP plugins for advanced effects
+
+## Browser Support
+
+### Fully Supported
+- Chrome 88+
+- Firefox 85+
+- Safari 14+
+- Edge 88+
+
+### Graceful Degradation
+- Older browsers receive static layout
+- CSS fallbacks for unsupported features
+- Progressive enhancement approach
+
+## Development Commands
+
+```bash
+# Start development server
+npm run dev
+
+# Build for production
+npm run build
+
+# Preview production build
+npm run preview
+```
+
+## Future Enhancements
+
+### Planned Features
+- Sound effects for interactions
+- More electronic component animations
+- Additional card variants
+- Theme switching capability
+- Advanced glitch effects
+
+### Performance Improvements
+- WebGL circuit backgrounds
+- Intersection Observer for animations
+- Service worker for offline support
+- Image lazy loading optimization
+
+## Contributing
+
+When adding new components or effects:
+
+1. Follow the retro-tech design language
+2. Ensure accessibility compliance
+3. Add reduced motion alternatives
+4. Test on multiple devices
+5. Document new props and features
+
+---
+
+*Created with ❤️ and a healthy dose of 80s nostalgia*
diff --git a/website/PRODUCTS_PAGE_README.md b/website/PRODUCTS_PAGE_README.md
new file mode 100644
index 000000000..54299c01b
--- /dev/null
+++ b/website/PRODUCTS_PAGE_README.md
@@ -0,0 +1,306 @@
+# Jan Products Page - Retro-Tech Design System
+
+A futuristic products showcase page that combines the nostalgic aesthetics of RadioShack's electronic components with PostHog's modern data visualization approach. This creates a unique "retro-tech" visual language that feels both familiar and cutting-edge.
+
+## Design Philosophy
+
+### RadioShack + PostHog = Retro-Tech
+- **RadioShack Heritage**: Circuit board patterns, electronic components, terminal interfaces, amber/green CRT colors
+- **PostHog Influence**: Clean data cards, status indicators, system metrics, dashboard layouts
+- **Result**: A cohesive aesthetic that makes AI products feel like sophisticated electronic equipment
+
+### Color Palette
+```css
+--retro-green: #00ff41 /* Matrix green, primary brand */
+--retro-amber: #ffb000 /* Classic terminal amber */
+--retro-blue: #00bfff /* Processing/loading states */
+--retro-red: #ff0040 /* Error/warning states */
+--retro-cyan: #00ffff /* Accent highlights */
+--retro-magenta: #ff00ff /* Special effects */
+```
+
+## Architecture
+
+### File Structure
+```
+jan/website/src/
+├── pages/
+│ └── prods.astro # Main products page
+├── components/
+│ ├── CircuitBackground.astro # Animated circuit patterns
+│ ├── StatusIndicator.astro # System status components
+│ ├── RetroCard.astro # Terminal-style cards
+│ └── FloatingNav.astro # Floating navigation menu
+├── layouts/
+│ └── Layout.astro # Base layout with GSAP
+└── styles/
+ └── retro-effects.css # Advanced visual effects
+```
+
+### Component Hierarchy
+```
+Layout
+└── Products Page
+ ├── FloatingNav (right-side navigation)
+ ├── Hero Section
+ │ └── CircuitBackground (animated)
+ ├── Table of Contents
+ ├── Models Section
+ │ └── RetroCard (circuit variant)
+ ├── Platforms Section
+ │ └── RetroCard (data/system variants)
+ ├── Tools Section
+ │ └── RetroCard (terminal variant)
+ └── Integration Section
+```
+
+## Components Deep Dive
+
+### CircuitBackground.astro
+Creates animated circuit board patterns with electronic components.
+
+**Props:**
+- `variant`: 'subtle' | 'prominent' | 'animated'
+- `color`: 'green' | 'amber' | 'blue' | 'multi'
+- `density`: 'low' | 'medium' | 'high'
+- `animated`: boolean
+- `opacity`: number (0-1)
+
+**Features:**
+- Procedural circuit patterns
+- Animated electronic components (LEDs, resistors, capacitors)
+- Flowing data lines
+- Responsive grid scaling
+
+### StatusIndicator.astro
+Terminal-style system status indicators with pulsing animations.
+
+**Props:**
+- `status`: 'active' | 'warning' | 'success' | 'error' | 'idle'
+- `label`: string
+- `pulse`: boolean
+- `size`: 'small' | 'medium' | 'large'
+
+**Features:**
+- Animated status dots with glow effects
+- Color-coded status states
+- Accessibility compliant
+- Reduced motion support
+
+### RetroCard.astro
+Terminal-inspired cards with scanlines, CRT effects, and interactive animations.
+
+**Props:**
+- `variant`: 'terminal' | 'circuit' | 'data' | 'system'
+- `color`: 'green' | 'amber' | 'blue' | 'red' | 'multi'
+- `size`: 'small' | 'medium' | 'large'
+- `glitch`: boolean
+- `scanlines`: boolean
+- `glow`: boolean
+- `interactive`: boolean
+- `status`: 'online' | 'offline' | 'error' | 'warning' | 'processing'
+
+**Features:**
+- CRT monitor bezels with power indicators
+- Animated scanlines and glitch effects
+- Terminal-style headers with traffic light controls
+- Interactive hover states with 3D transforms
+- Corner brackets for retro-futuristic framing
+
+### FloatingNav.astro
+Floating navigation with terminal interface and system monitoring.
+
+**Props:**
+- `sections`: Array of navigation items with icons and status
+- `position`: 'left' | 'right'
+- `theme`: 'dark' | 'matrix' | 'circuit'
+- `compact`: boolean
+
+**Features:**
+- Terminal-style command prompt
+- Real-time system status indicators
+- Animated progress bars
+- Circuit connection lines
+- Smooth scrolling with GSAP integration
+
+## Animations & Effects
+
+### GSAP Integration
+The page uses GSAP (GreenSock Animation Platform) for sophisticated animations:
+
+**Timeline Animations:**
+- Hero section entrance with staggered reveals
+- Section headers with typewriter effects
+- Card appearances with 3D transforms
+
+**Scroll Triggers:**
+- Elements animate into view as user scrolls
+- Parallax effects on background elements
+- Progressive content revelation
+
+**Interactive Animations:**
+- Magnetic cursor effects on cards
+- 3D hover transformations
+- Ripple effects on clicks
+
+### CSS-Only Effects
+Enhanced with pure CSS animations for performance:
+
+**Visual Effects:**
+- CRT scanlines and monitor bezels
+- Matrix-style character rain
+- Glitch text distortions
+- Neon glow and pulsing lights
+
+**Component Animations:**
+- Electronic component blinking (LEDs)
+- Data stream flowing effects
+- Circuit trace pulsing
+- Status indicator breathing
+
+## Performance Optimizations
+
+### Lazy Loading
+- GSAP libraries loaded from CDN
+- Animations initialized after DOM ready
+- Circuit patterns use CSS transforms for GPU acceleration
+
+### Reduced Motion Support
+```css
+@media (prefers-reduced-motion: reduce) {
+ /* All animations disabled for accessibility */
+}
+```
+
+### Mobile Optimizations
+- Responsive grid layouts
+- Touch-friendly interactive elements
+- Optimized animation performance
+- Reduced visual effects on smaller screens
+
+## Accessibility Features
+
+### WCAG Compliance
+- High contrast mode support
+- Focus indicators for keyboard navigation
+- Screen reader friendly markup
+- Semantic HTML structure
+
+### Keyboard Navigation
+- Tab order follows logical flow
+- Escape key closes floating navigation
+- Arrow keys for menu navigation
+- Enter/Space for activation
+
+### Color Accessibility
+- Sufficient contrast ratios maintained
+- Status information not solely color-dependent
+- Alternative text for decorative elements
+
+## Customization Guide
+
+### Adding New Sections
+1. Add section to main page
+2. Update FloatingNav sections array
+3. Add corresponding GSAP animations
+4. Update TOC links
+
+### Creating New Card Variants
+```astro
+
+
+
+```
+
+### Custom Circuit Patterns
+```astro
+
+```
+
+### Color Theme Customization
+Override CSS custom properties:
+```css
+:root {
+ --retro-green: #your-color;
+ --retro-amber: #your-color;
+ /* etc. */
+}
+```
+
+## Dependencies
+
+### Required
+- Astro ^5.6.1
+- GSAP (loaded from CDN)
+- JetBrains Mono font
+
+### Optional Enhancements
+- Sharp for image optimization
+- Additional GSAP plugins for advanced effects
+
+## Browser Support
+
+### Fully Supported
+- Chrome 88+
+- Firefox 85+
+- Safari 14+
+- Edge 88+
+
+### Graceful Degradation
+- Older browsers receive static layout
+- CSS fallbacks for unsupported features
+- Progressive enhancement approach
+
+## Development Commands
+
+```bash
+# Start development server
+npm run dev
+
+# Build for production
+npm run build
+
+# Preview production build
+npm run preview
+```
+
+## Future Enhancements
+
+### Planned Features
+- Sound effects for interactions
+- More electronic component animations
+- Additional card variants
+- Theme switching capability
+- Advanced glitch effects
+
+### Performance Improvements
+- WebGL circuit backgrounds
+- Intersection Observer for animations
+- Service worker for offline support
+- Image lazy loading optimization
+
+## Contributing
+
+When adding new components or effects:
+
+1. Follow the retro-tech design language
+2. Ensure accessibility compliance
+3. Add reduced motion alternatives
+4. Test on multiple devices
+5. Document new props and features
+
+---
+
+*Created with ❤️ and a healthy dose of 80s nostalgia*
\ No newline at end of file
diff --git a/website/README.md b/website/README.md
index 746f55b45..cec200784 100644
--- a/website/README.md
+++ b/website/README.md
@@ -1,41 +1,19 @@
-# Starlight Starter Kit: Basics
+# Jan's Website
-[](https://starlight.astro.build)
+This website is [built with Starlight](https://starlight.astro.build)
-```
-bun create astro@latest -- --template starlight
-```
-[](https://stackblitz.com/github/withastro/starlight/tree/main/examples/basics)
-[](https://codesandbox.io/p/sandbox/github/withastro/starlight/tree/main/examples/basics)
-[](https://app.netlify.com/start/deploy?repository=https://github.com/withastro/starlight&create_from_path=examples/basics)
-[](https://vercel.com/new/clone?repository-url=https%3A%2F%2Fgithub.com%2Fwithastro%2Fstarlight%2Ftree%2Fmain%2Fexamples%2Fbasics&project-name=my-starlight-docs&repository-name=my-starlight-docs)
-
-> 🧑🚀 **Seasoned astronaut?** Delete this file. Have fun!
-
-## 🚀 Project Structure
-
-Inside of your Astro + Starlight project, you'll see the following folders and files:
-
-```
-.
-├── public/
-├── src/
-│ ├── assets/
-│ ├── content/
-│ │ └── docs/
-│ └── content.config.ts
-├── astro.config.mjs
-├── package.json
-└── tsconfig.json
-```
-
-Starlight looks for `.md` or `.mdx` files in the `src/content/docs/` directory. Each file is exposed as a route based on its file name.
+Starlight looks for `.md` or `.mdx` files in the `src/content/docs/` directory. Each file is exposed
+as a route based on its file name.
Images can be added to `src/assets/` and embedded in Markdown with a relative link.
Static assets, like favicons, can be placed in the `public/` directory.
+If you want to add new pages, these can go in the `src/pages/` directory. Because of the topics plugin
+we are using ([starlight sidebar topics](https://starlight-sidebar-topics.netlify.app/docs/guides/excluded-pages/))
+you will need to exclude them from the sidebar by adding them to the exclude list in `astro.config.mjs`, e.g., `exclude: ['/example'],`.
+
## 🧞 Commands
All commands are run from the root of the project, from a terminal:
@@ -48,7 +26,3 @@ All commands are run from the root of the project, from a terminal:
| `bun preview` | Preview your build locally, before deploying |
| `bun astro ...` | Run CLI commands like `astro add`, `astro check` |
| `bun astro -- --help` | Get help using the Astro CLI |
-
-## 👀 Want to learn more?
-
-Check out [Starlight’s docs](https://starlight.astro.build/), read [the Astro documentation](https://docs.astro.build), or jump into the [Astro Discord server](https://astro.build/chat).
diff --git a/website/astro.config.mjs b/website/astro.config.mjs
index 97ac22f69..a4a2e5211 100644
--- a/website/astro.config.mjs
+++ b/website/astro.config.mjs
@@ -169,7 +169,7 @@ export default defineConfig({
},
],
{
- exclude: ['/example'],
+ exclude: ['/prods'],
topics: {
university: [
'/university/getting-started/what-is-jan',
diff --git a/website/package.json b/website/package.json
index 3b409199b..4b936cd56 100644
--- a/website/package.json
+++ b/website/package.json
@@ -12,9 +12,11 @@
"dependencies": {
"@astrojs/starlight": "^0.35.1",
"astro": "^5.6.1",
+ "gsap": "^3.13.0",
+ "phosphor-astro": "^2.1.0",
"sharp": "^0.34.2",
"starlight-sidebar-topics": "^0.6.0",
"starlight-theme-rapide": "^0.5.1",
"starlight-videos": "^0.3.0"
}
-}
\ No newline at end of file
+}
diff --git a/website/src/components/CircuitBackground.astro b/website/src/components/CircuitBackground.astro
new file mode 100644
index 000000000..8f94ebafb
--- /dev/null
+++ b/website/src/components/CircuitBackground.astro
@@ -0,0 +1,366 @@
+---
+export interface Props {
+ variant?: 'subtle' | 'prominent' | 'animated';
+ color?: 'green' | 'amber' | 'blue' | 'multi';
+ density?: 'low' | 'medium' | 'high';
+ animated?: boolean;
+ opacity?: number;
+}
+
+const {
+ variant = 'subtle',
+ color = 'green',
+ density = 'medium',
+ animated = true,
+ opacity = 0.1
+} = Astro.props;
+
+const colorSchemes = {
+ green: {
+ primary: '#00ff41',
+ secondary: '#00cc33',
+ accent: '#008822'
+ },
+ amber: {
+ primary: '#ffb000',
+ secondary: '#ff9500',
+ accent: '#cc7700'
+ },
+ blue: {
+ primary: '#00bfff',
+ secondary: '#0099cc',
+ accent: '#007799'
+ },
+ multi: {
+ primary: '#00ff41',
+ secondary: '#ffb000',
+ accent: '#00bfff'
+ }
+};
+
+const colors = colorSchemes[color];
+
+const densitySettings = {
+ low: { size: 80, nodes: 6 },
+ medium: { size: 50, nodes: 8 },
+ high: { size: 30, nodes: 12 }
+};
+
+const settings = densitySettings[density];
+---
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/website/src/components/FloatingNav.astro b/website/src/components/FloatingNav.astro
new file mode 100644
index 000000000..86bd47b14
--- /dev/null
+++ b/website/src/components/FloatingNav.astro
@@ -0,0 +1,735 @@
+---
+export interface Props {
+ sections?: Array<{
+ id: string;
+ label: string;
+ icon: string;
+ status?: 'active' | 'inactive' | 'processing';
+ }>;
+ position?: 'left' | 'right';
+ theme?: 'dark' | 'matrix' | 'circuit';
+ compact?: boolean;
+}
+
+const {
+ sections = [
+ { id: 'models', label: 'Models', icon: '🧠', status: 'active' },
+ { id: 'platforms', label: 'Platforms', icon: '💻', status: 'active' },
+ { id: 'tools', label: 'Tools', icon: '🔧', status: 'processing' }
+ ],
+ position = 'right',
+ theme = 'matrix',
+ compact = false
+} = Astro.props;
+
+const navId = `floating-nav-${Math.random().toString(36).substr(2, 9)}`;
+---
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/website/src/components/RetroCard.astro b/website/src/components/RetroCard.astro
new file mode 100644
index 000000000..0f8ab56a8
--- /dev/null
+++ b/website/src/components/RetroCard.astro
@@ -0,0 +1,601 @@
+---
+export interface Props {
+ variant?: 'terminal' | 'circuit' | 'data' | 'system';
+ color?: 'green' | 'amber' | 'blue' | 'red' | 'multi';
+ size?: 'small' | 'medium' | 'large';
+ glitch?: boolean;
+ scanlines?: boolean;
+ glow?: boolean;
+ interactive?: boolean;
+ status?: 'online' | 'offline' | 'error' | 'warning' | 'processing';
+ title?: string;
+ subtitle?: string;
+ className?: string;
+}
+
+const {
+ variant = 'terminal',
+ color = 'green',
+ size = 'medium',
+ glitch = false,
+ scanlines = true,
+ glow = true,
+ interactive = true,
+ status = 'online',
+ title,
+ subtitle,
+ className = ''
+} = Astro.props;
+
+const colorSchemes = {
+ green: {
+ primary: '#00ff41',
+ secondary: '#00cc33',
+ bg: 'rgba(0, 255, 65, 0.05)',
+ border: '#00ff41',
+ glow: 'rgba(0, 255, 65, 0.3)'
+ },
+ amber: {
+ primary: '#ffb000',
+ secondary: '#ff9500',
+ bg: 'rgba(255, 176, 0, 0.05)',
+ border: '#ffb000',
+ glow: 'rgba(255, 176, 0, 0.3)'
+ },
+ blue: {
+ primary: '#00bfff',
+ secondary: '#0099cc',
+ bg: 'rgba(0, 191, 255, 0.05)',
+ border: '#00bfff',
+ glow: 'rgba(0, 191, 255, 0.3)'
+ },
+ red: {
+ primary: '#ff0040',
+ secondary: '#cc0033',
+ bg: 'rgba(255, 0, 64, 0.05)',
+ border: '#ff0040',
+ glow: 'rgba(255, 0, 64, 0.3)'
+ },
+ multi: {
+ primary: '#00ff41',
+ secondary: '#ffb000',
+ bg: 'linear-gradient(135deg, rgba(0, 255, 65, 0.05), rgba(255, 176, 0, 0.05))',
+ border: '#00ff41',
+ glow: 'rgba(0, 255, 65, 0.3)'
+ }
+};
+
+const scheme = colorSchemes[color];
+const cardId = `retro-card-${Math.random().toString(36).substr(2, 9)}`;
+---
+
+
+
+
+
+
+
+
+
+
+
+ {scanlines && (
+
+ )}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/website/src/components/StatusIndicator.astro b/website/src/components/StatusIndicator.astro
new file mode 100644
index 000000000..f60b23454
--- /dev/null
+++ b/website/src/components/StatusIndicator.astro
@@ -0,0 +1,147 @@
+---
+export interface Props {
+ status: 'active' | 'warning' | 'success' | 'error' | 'idle';
+ label: string;
+ pulse?: boolean;
+ size?: 'small' | 'medium' | 'large';
+}
+
+const { status, label, pulse = true, size = 'medium' } = Astro.props;
+
+const statusColors = {
+ active: '#00ff41',
+ warning: '#ffb000',
+ success: '#00ff41',
+ error: '#ff0040',
+ idle: '#888888'
+};
+
+const statusColor = statusColors[status];
+---
+
+
+
+
diff --git a/website/src/content/docs/jan/assistants.mdx b/website/src/content/docs/jan/assistants.mdx
index 9e0bada5b..3cc553cb3 100644
--- a/website/src/content/docs/jan/assistants.mdx
+++ b/website/src/content/docs/jan/assistants.mdx
@@ -26,7 +26,7 @@ which can help guide how the AI model should behave and respond to your inputs.
assistants, and customize their instructions and settings from the Assistants tab.

+description, and can be customized for different tasks.](../../../assets/assistants-ui-overview.png)
To find the Assistants tab:
@@ -76,18 +76,18 @@ Provide examples when explaining complex topics.
You can quickly switch between assistants, or create and edit them, directly from the Chat screen using the
assistant dropdown menu at the top:
-
+
- Click the assistant's name (e.g., "Travel Planner") at the top of the Chat screen to open the dropdown menu.
- The dropdown lists all of your assistants. Click on any of the assistants available to switch to it for the
current chat session.
- To create a new assistant, select **Create Assistant** at the bottom of the dropdown. This opens the Add Assistant dialog:
-
+
- To edit an existing assistant, click the gear (⚙️) icon next to its name in the dropdown. This opens the Edit Assistant dialog:
-
+
### Add/Edit Assistant Dialogs
- Set an (optional) emoji and name for your assistant.
diff --git a/website/src/content/docs/jan/data-folder.mdx b/website/src/content/docs/jan/data-folder.mdx
index 629b2e2b8..a1a404a5a 100644
--- a/website/src/content/docs/jan/data-folder.mdx
+++ b/website/src/content/docs/jan/data-folder.mdx
@@ -31,7 +31,7 @@ Via Jan:
2. Click
-
+
Via Terminal:
diff --git a/website/src/content/docs/jan/explanation/llama-cpp.mdx b/website/src/content/docs/jan/explanation/llama-cpp.mdx
index 7f4a49c51..58f0e82bf 100644
--- a/website/src/content/docs/jan/explanation/llama-cpp.mdx
+++ b/website/src/content/docs/jan/explanation/llama-cpp.mdx
@@ -43,7 +43,7 @@ Originally created by Georgi Gerganov, llama.cpp is designed to run large langua
Find llama.cpp settings at **Settings** () > **Local Engine** > **llama.cpp**:
-
+
These are advanced settings. You typically only need to adjust them if models aren't working properly or you want to optimize performance for your specific hardware.
diff --git a/website/src/content/docs/jan/explanation/model-parameters.mdx b/website/src/content/docs/jan/explanation/model-parameters.mdx
index b03b9222b..b188f488e 100644
--- a/website/src/content/docs/jan/explanation/model-parameters.mdx
+++ b/website/src/content/docs/jan/explanation/model-parameters.mdx
@@ -49,7 +49,7 @@ These settings control how the model thinks and performs:
| **Presence Penalty** | Encourages talking about new topics | Higher values make the model explore new subjects instead of staying on one topic. |
| **Frequency Penalty** | Reduces word repetition | Similar to repeat penalty but focuses on how often words are used. |
-
+
## Model Capabilities (Edit Button)
@@ -61,8 +61,8 @@ These toggle switches enable special features:
- **Web Search**: Let the model search the internet for current information
- **Reasoning**: Enable step-by-step thinking for complex problems
-
-
+
+
## Hardware Settings
diff --git a/website/src/content/docs/jan/installation/linux.mdx b/website/src/content/docs/jan/installation/linux.mdx
index 3bb55fae3..58b2aabee 100644
--- a/website/src/content/docs/jan/installation/linux.mdx
+++ b/website/src/content/docs/jan/installation/linux.mdx
@@ -1,5 +1,5 @@
---
-title: Linux
+title: Linux Installation
description: Get started quickly with Jan, an AI chat application that runs 100% offline on your desktop & mobile (*coming soon*).
keywords:
[
@@ -20,85 +20,78 @@ keywords:
]
---
+import { Aside, Tabs, TabItem } from '@astrojs/starlight/components';
-
-
-
-# Linux Installation
Instructions for installing Jan on Linux.
## Compatibility
System requirements:
-
+
+
+ #### Debian-based (Supports `.deb` and `AppImage`)
-
+ - Debian
+ - Ubuntu and derivatives:
+ - Ubuntu Desktop LTS (official)/Ubuntu Server LTS (only for server)
+ - Edubuntu
+ - Kubuntu
+ - Lubuntu
+ - Ubuntu Budgie
+ - Ubuntu Cinnamon
+ - Ubuntu Kylin
+ - Ubuntu MATE
+ - Linux Mint
+ - Pop!_OS
-#### Debian-based (Supports `.deb` and `AppImage`)
+ #### RHEL-based (Supports `.rpm` and `AppImage`)
-- Debian
-- Ubuntu and derivatives:
- - Ubuntu Desktop LTS (official)/Ubuntu Server LTS (only for server)
- - Edubuntu
- - Kubuntu
- - Lubuntu
- - Ubuntu Budgie
- - Ubuntu Cinnamon
- - Ubuntu Kylin
- - Ubuntu MATE
- - Linux Mint
- - Pop!_OS
+ - RHEL-based (Server only)
+ - Fedora
-#### RHEL-based (Supports `.rpm` and `AppImage`)
+ #### Arch-based
-- RHEL-based (Server only)
-- Fedora
+ - Arch Linux
+ - SteamOS
-#### Arch-based
+ #### Independent
-- Arch Linux
-- SteamOS
+ - openSUSE
+
-#### Independent
+
+ - Haswell processors (Q2 2013) and newer
+ - Tiger Lake (Q3 2020) and newer for Celeron and Pentium processors
+ - Excavator processors (Q2 2015) and newer
-- openSUSE
+
+ CPU must support AVX2. See [supported processors](https://en.wikipedia.org/wiki/Advanced_Vector_Extensions#CPUs_with_AVX2).
+
+
-
+
+ - 8GB → up to 3B parameter models (int4)
+ - 16GB → up to 7B parameter models (int4)
+ - 32GB → up to 13B parameter models (int4)
-
-- Haswell processors (Q2 2013) and newer
-- Tiger Lake (Q3 2020) and newer for Celeron and Pentium processors
-- Excavator processors (Q2 2015) and newer
+
+ DDR3 or newer recommended.
+
+
-
-CPU must support AVX2. See [supported processors](https://en.wikipedia.org/wiki/Advanced_Vector_Extensions#CPUs_with_AVX2).
-
-
+
+ - 6GB → up to 3B parameter models (int4)
+ - 8GB → up to 7B parameter models (int4)
+ - 12GB → up to 13B parameter models (int4)
-
-- 8GB → up to 3B parameter models (int4)
-- 16GB → up to 7B parameter models (int4)
-- 32GB → up to 13B parameter models (int4)
-
-
-DDR3 or newer recommended.
-
-
-
-
-- 6GB → up to 3B parameter models (int4)
-- 8GB → up to 7B parameter models (int4)
-- 12GB → up to 13B parameter models (int4)
-
-
-6GB VRAM minimum required.
-
-
-
-
-Minimum 10GB of free disk space required.
-
+
+ 6GB VRAM minimum required.
+
+
+
+ Minimum 10GB of free disk space required.
+
## Install Jan
@@ -110,67 +103,62 @@ Installation steps:
### Step 1: Download Application
Available releases:
-
-
-Stable release:
- - Ubuntu: [jan.deb](https://app.jan.ai/download/latest/linux-amd64-deb)
- - Others: [Jan.AppImage](https://app.jan.ai/download/latest/linux-amd64-appimage)
-- Official Website: https://jan.ai/download
+
+
+ Stable release:
+ - Ubuntu: [jan.deb](https://app.jan.ai/download/latest/linux-amd64-deb)
+ - Others: [Jan.AppImage](https://app.jan.ai/download/latest/linux-amd64-appimage)
+ - Official Website: https://jan.ai/download
+
+
+
+ Beta release:
+ - Ubuntu: [jan.deb](https://app.jan.ai/download/beta/linux-amd64-deb)
+ - Others: [Jan.AppImage](https://app.jan.ai/download/beta/linux-amd64-appimage)
-
-
+
+ May contain bugs. Use with caution.
+
+
+
+
+ Development build:
+ - Ubuntu: [jan.deb](https://app.jan.ai/download/nightly/linux-amd64-deb)
+ - Others: [Jan.AppImage](https://app.jan.ai/download/nightly/linux-amd64-appimage)
-Beta release:
- - Ubuntu: [jan.deb](https://app.jan.ai/download/beta/linux-amd64-deb)
- - Others: [Jan.AppImage](https://app.jan.ai/download/beta/linux-amd64-appimage)
-
-
-May contain bugs. Use with caution.
-
-
-
-
-Development build:
- - Ubuntu: [jan.deb](https://app.jan.ai/download/nightly/linux-amd64-deb)
- - Others: [Jan.AppImage](https://app.jan.ai/download/nightly/linux-amd64-appimage)
-
-
-Experimental version. Expect instability.
-
-
+
+ Experimental version. Expect instability.
+
+
### Step 2: Install Application
Installation commands:
-
-
+
+
+ ##### dpkg
-##### dpkg
+ ```bash
+ sudo dpkg -i jan-linux-amd64-{version}.deb
+ ```
-```bash
-sudo dpkg -i jan-linux-amd64-{version}.deb
-```
+ ##### apt-get
-##### apt-get
+ ```bash
+ sudo apt-get install ./jan-linux-amd64-{version}.deb
+ ```
+
-```bash
-sudo apt-get install ./jan-linux-amd64-{version}.deb
-```
+
+ From the terminal, run the following commands:
-
-
-
-
-From the terminal, run the following commands:
-
-```bash
-chmod +x jan-linux-x86_64-{version}.AppImage
-./jan-linux-x86_64-{version}.AppImage
-```
-
-
+ ```bash
+ chmod +x jan-linux-x86_64-{version}.AppImage
+ ./jan-linux-x86_64-{version}.AppImage
+ ```
+
@@ -196,100 +184,95 @@ See [Jan Data Folder](/docs/data-folder) for details.
## GPU Acceleration
Configuration for GPU support:
-
+
+
+
-
-
+ ### Step 1: Verify Hardware & Install Dependencies
-### Step 1: Verify Hardware & Install Dependencies
+ **1.1. Check GPU Detection**
-**1.1. Check GPU Detection**
+ ```sh
+ lspci | grep -i nvidia
+ ```
-```sh
-lspci | grep -i nvidia
-```
+ **1.2. Install Required components**
-**1.2. Install Required components**
+ **NVIDIA Driver:**
-**NVIDIA Driver:**
+ 1. Install the [NVIDIA Driver](https://www.nvidia.com/en-us/drivers/), ideally via your package manager.
+ 2. Verify:
-1. Install the [NVIDIA Driver](https://www.nvidia.com/en-us/drivers/), ideally via your package manager.
-2. Verify:
+ ```sh
+ nvidia-smi
+ ```
-```sh
-nvidia-smi
-```
+ **CUDA Toolkit:**
-**CUDA Toolkit:**
+ 1. Install the [CUDA toolkit](https://developer.nvidia.com/cuda-downloads), ideally from your package manager (**11.7+**)
+ 2. Verify:
-1. Install the [CUDA toolkit](https://developer.nvidia.com/cuda-downloads), ideally from your package manager (**11.7+**)
-2. Verify:
+ ```sh
+ nvcc --version
+ ```
-```sh
-nvcc --version
-```
+ **Additional Requirements:**
-**Additional Requirements:**
+ ```sh
+ sudo apt update
+ sudo apt install gcc-11 g++-11 cpp-11
+ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64
+ ```
+ [Documentation](https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html#post-installation-actions)
-```sh
-sudo apt update
-sudo apt install gcc-11 g++-11 cpp-11
-export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64
-```
-[Documentation](https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html#post-installation-actions)
+ ### Step 2: Enable GPU Acceleration
-### Step 2: Enable GPU Acceleration
+ 1. Navigate to **Settings** > **Local Engine** > **Llama.cpp**
+ 2. Select appropriate backend in **llama-cpp Backend**. Details in our [guide](/docs/local-engines/llama-cpp).
-1. Navigate to **Settings** () > **Local Engine** > **Llama.cpp**
-2. Select appropriate backend in **llama-cpp Backend**. Details in our [guide](/docs/local-engines/llama-cpp).
+
+ CUDA offers better performance than Vulkan.
+
-
-CUDA offers better performance than Vulkan.
-
+
+
-
+
+ Requires Vulkan support.
-
+ 1. Navigate to **Settings** > **Hardware** > **GPUs**
+ 2. Select appropriate backend in **llama-cpp Backend**. Details in our [guide](/docs/local-engines/llama-cpp).
+
-
-Requires Vulkan support.
-
-1. Navigate to **Settings** () > **Hardware** > **GPUs**
-2. Select appropriate backend in **llama-cpp Backend**. Details in our [guide](/docs/local-engines/llama-cpp).
-
-
-
-
-Requires Vulkan support.
-
-1. Navigate to **Settings** () > **Hardware** > **GPUs**
-2. Select appropriate backend in **llama-cpp Backend**. Details in our [guide](/docs/local-engines/llama-cpp).
-
+
+ Requires Vulkan support.
+ 1. Navigate to **Settings** > **Hardware** > **GPUs**
+ 2. Select appropriate backend in **llama-cpp Backend**. Details in our [guide](/docs/local-engines/llama-cpp).
+
## Uninstall Jan
Removal commands:
-
-
-
-```bash
-sudo apt-get remove jan
-rm -rf Jan
-rm -rf ~/.config/Jan/data
-rm -rf ~/.config/Jan/cache
-```
-
-
-
-```bash
-rm jan-linux-x86_64-{version}.AppImage
-rm -rf ~/.config/Jan
-```
-
+
+
+ ```bash
+ sudo apt-get remove jan
+ rm -rf Jan
+ rm -rf ~/.config/Jan/data
+ rm -rf ~/.config/Jan/cache
+ ```
+
+
+
+ ```bash
+ rm jan-linux-x86_64-{version}.AppImage
+ rm -rf ~/.config/Jan
+ ```
+
-
+
These commands permanently delete application data.
diff --git a/website/src/content/docs/jan/installation/mac.mdx b/website/src/content/docs/jan/installation/mac.mdx
index a40136c44..5fbbdb9b6 100644
--- a/website/src/content/docs/jan/installation/mac.mdx
+++ b/website/src/content/docs/jan/installation/mac.mdx
@@ -20,6 +20,8 @@ keywords:
]
---
+import { Aside, Tabs, TabItem } from '@astrojs/starlight/components';
+
@@ -59,34 +61,33 @@ Installation steps:
### Step 1: Download Application
Select version:
-
-
-Get Jan from here:
+
+
+ Get Jan from here:
-- [Download Jan's Stable Version](https://app.jan.ai/download/latest/mac-universal)
-- Official Website: https://jan.ai/download
+ - [Download Jan's Stable Version](https://app.jan.ai/download/latest/mac-universal)
+ - Official Website: https://jan.ai/download
+
+
+
+ Beta: New features with potential instability.
-
-
+ [Download Jan's Beta Version](https://app.jan.ai/download/beta/mac-universal)
-Beta: New features with potential instability.
+
+
+
+
+ Nightly: Latest features, less stable.
-[Download Jan's Beta Version](https://app.jan.ai/download/beta/mac-universal)
+ [Download Jan's Nightly Version](https://app.jan.ai/download/nightly/mac-universal)
-
-
-
-
-Nightly: Latest features, less stable.
-
-[Download Jan's Nightly Version](https://app.jan.ai/download/nightly/mac-universal)
-
-
-Expect potential instability.
-
-
+
+ Expect potential instability.
+
+
diff --git a/website/src/content/docs/jan/installation/windows.mdx b/website/src/content/docs/jan/installation/windows.mdx
index e8c2ced1f..7b43e2a38 100644
--- a/website/src/content/docs/jan/installation/windows.mdx
+++ b/website/src/content/docs/jan/installation/windows.mdx
@@ -20,6 +20,8 @@ keywords:
]
---
+import { Aside, Tabs, TabItem } from '@astrojs/starlight/components';
+
# Windows Installation
@@ -30,14 +32,14 @@ keywords:
- **Operating System**: Windows 10 or higher.
- **CPU**
-
-
-- Intel: Haswell (Q2 2013) or newer
-- Intel Celeron/Pentium: Tiger Lake (Q3 2020) or newer
-
-
-- Excavator processors (Q2 2015) and newer.
-
+
+
+ - Intel: Haswell (Q2 2013) or newer
+ - Intel Celeron/Pentium: Tiger Lake (Q3 2020) or newer
+
+
+ - Excavator processors (Q2 2015) and newer.
+
@@ -72,31 +74,31 @@ Minimum 6GB VRAM recommended for NVIDIA, AMD, or Intel Arc GPUs.
### Step 1: Download Application
-
-
-- [Download Stable Jan](https://app.jan.ai/download/latest/win-x64)
-- Official Website: [Download Jan](https://jan.ai/download)
-
-
+
+
+ - [Download Stable Jan](https://app.jan.ai/download/latest/win-x64)
+ - Official Website: [Download Jan](https://jan.ai/download)
+
+
+
+ Beta: Contains newer features but may be unstable
-Beta: Contains newer features but may be unstable
+ [Download Beta Jan](https://app.jan.ai/download/beta/win-x64)
-[Download Beta Jan](https://app.jan.ai/download/beta/win-x64)
+
+
+
+
+ Nightly: Development build with latest features
-
-
-
+ [Download Nightly Jan](https://app.jan.ai/download/nightly/win-x64)
-Nightly: Development build with latest features
-
-[Download Nightly Jan](https://app.jan.ai/download/nightly/win-x64)
-
-
-Unstable development build
-
-
+
+ Unstable development build
+
+
### Step 2: Install Application
@@ -121,9 +123,8 @@ See [Jan Data Folder](/docs/data-folder) for complete folder structure details.
## GPU Acceleration
-
-
-
+
+
@@ -152,26 +153,26 @@ nvcc --version
```
### Step 2: Enable GPU Acceleration
-Navigate to **Settings** () > **Hardware** > **GPUs**
+Navigate to **Settings** > **Hardware** > **GPUs**
and toggle the **ON** switch if not enabled.
-
+
-
-AMD GPUs require **Vulkan** support.
+
+ AMD GPUs require **Vulkan** support.
-Navigate to **Settings** () > **Hardware** > **GPUs**
-and toggle the **ON** switch if not enabled.
-
+ Navigate to **Settings** > **Hardware** > **GPUs**
+ and toggle the **ON** switch if not enabled.
+
-
-Intel Arc GPUs require **Vulkan** support.
+
+ Intel Arc GPUs require **Vulkan** support.
-Navigate to **Settings** () > **Hardware** > **GPUs**
-and toggle the **ON** switch if not enabled.
-
+ Navigate to **Settings** > **Hardware** > **GPUs**
+ and toggle the **ON** switch if not enabled.
+
diff --git a/website/src/content/docs/jan/jan-models/jan-nano-128.mdx b/website/src/content/docs/jan/jan-models/jan-nano-128.mdx
index 9fb5e0544..3ff3e4e35 100644
--- a/website/src/content/docs/jan/jan-models/jan-nano-128.mdx
+++ b/website/src/content/docs/jan/jan-models/jan-nano-128.mdx
@@ -75,7 +75,7 @@ not about understanding every word; it's about finding the needle in a haystack
Jan-Nano-128k has been rigorously evaluated on the SimpleQA benchmark using our MCP-based methodology, demonstrating superior performance compared to its predecessor:
-
+
**Key findings:**
- 15% improvement over Jan-Nano-32k on complex multi-document tasks
diff --git a/website/src/content/docs/jan/jan-models/jan-nano-32.mdx b/website/src/content/docs/jan/jan-models/jan-nano-32.mdx
index 5f9d94534..93f170d58 100644
--- a/website/src/content/docs/jan/jan-models/jan-nano-32.mdx
+++ b/website/src/content/docs/jan/jan-models/jan-nano-32.mdx
@@ -20,7 +20,7 @@ import { Aside } from '@astrojs/starlight/components';
# Jan Nano
-
+
## Why Jan Nano?
@@ -64,7 +64,7 @@ Download Jan from [here](https://jan.ai/docs/desktop/).
**Step 2**
Go to the Hub Tab, search for Jan-Nano-Gguf, and click on the download button to the best model size for your system.
-
+
**Step 3**
Go to **Settings** > **Model Providers** > **Llama.cpp** click on the pencil icon and enable tool use for Jan-Nano-Gguf.
@@ -76,12 +76,12 @@ API. You can get a free API key from [here](https://serper.dev/). Sign up and th
**Step 5**
Add the serper MCP to Jan via the **Settings** > **MCP Servers** tab.
-
+
**Step 6**
Open up a new chat and ask Jan-Nano to search the web for you.
-
+
## Queries to Try
diff --git a/website/src/content/docs/jan/manage-models.mdx b/website/src/content/docs/jan/manage-models.mdx
index 01bc6ce91..5600df25d 100644
--- a/website/src/content/docs/jan/manage-models.mdx
+++ b/website/src/content/docs/jan/manage-models.mdx
@@ -47,7 +47,7 @@ Jan will indicate if a model might be **Slow on your device** or **Not enough RA
-
+
#### 2. Import from [Hugging Face](https://huggingface.co/)
@@ -64,11 +64,11 @@ You can download models with a direct link from Hugging Face:
**Copy the model ID.**
-
+
**Paste it in Jan's Hub Search Bar.**
-
+
#### 3. Import Local Files
@@ -87,15 +87,15 @@ quality or unexpected outputs. Learn about [model configurations here](./model-p
-
+
-
+
-
+
#### 4. Manual Setup
@@ -176,7 +176,7 @@ models. Here is an example of model parameters:
3. Select the three dots icon next to it and select **Delete Model**
-
+
@@ -195,8 +195,8 @@ Anthropic (Claude), Groq, Mistral, and more.
4. The activated cloud models will be available in your model selector inside the **Chat** panel
-
+
As soon as you add your key for a model provider like Anthropic or OpenAI, you will be able to pick one of their models to chat with.
-
+
diff --git a/website/src/content/docs/jan/mcp-examples/data-analysis/e2b.mdx b/website/src/content/docs/jan/mcp-examples/data-analysis/e2b.mdx
index 38e71b59a..b5b8cc098 100644
--- a/website/src/content/docs/jan/mcp-examples/data-analysis/e2b.mdx
+++ b/website/src/content/docs/jan/mcp-examples/data-analysis/e2b.mdx
@@ -39,7 +39,7 @@ complexity of managing Python environments or dependencies locally.
1. **Enable MCP**: Go to **Settings** > **MCP Servers**, toggle **Allow All MCP Tool Permission** ON
-
+
Don't forget that MCP gets enabled once you turn on Experimental Features in Jan's General settings.
@@ -47,11 +47,11 @@ Don't forget that MCP gets enabled once you turn on Experimental Features in Jan
2. **Get API Key**: Sign up at [e2b.dev](https://e2b.dev/), generate an API key
-
+
Add a meaningful name to your key.
-
+
3. **Add MCP Server**: Click `+` in MCP Servers section
@@ -63,12 +63,12 @@ Configure:
- Key: `E2B_API_KEY`
- Value: `your-api-key`
-
+
4. **Verify**: Check server shows as active
-
+
## Pre-installed Libraries
@@ -117,13 +117,13 @@ model with tool calling capabilities you'd like.
Make sure you activate Tools on the model you're using.
-
+
### Basic Data Analysis
Start small. Open a new chat, confirm that the model has tools enabled and ask it to create a small dataset of 100 students with grades and study hours.
-
+
```
@@ -138,9 +138,9 @@ The model will:
4. Add trend line
-
+
-
+
diff --git a/website/src/content/docs/jan/mcp-examples/search/exa.mdx b/website/src/content/docs/jan/mcp-examples/search/exa.mdx
index a33a9cf6b..8c0fa601f 100644
--- a/website/src/content/docs/jan/mcp-examples/search/exa.mdx
+++ b/website/src/content/docs/jan/mcp-examples/search/exa.mdx
@@ -53,7 +53,7 @@ verify tool calling is enabled in model parameters.
1. Go to **Settings** > **MCP Servers**
2. Toggle **Allow All MCP Tool Permission** ON
-
+
### Get API Key
@@ -62,7 +62,7 @@ verify tool calling is enabled in model parameters.
3. Generate API key
4. Save the key
-
+
### Configure MCP Server
@@ -77,13 +77,13 @@ Click `+` in MCP Servers section:
- Key: `EXA_API_KEY`
- Value: `your-api-key`
-
+
### Verify Setup
Check server status in the MCP Servers list.
-
+
### Model Configuration
@@ -94,13 +94,13 @@ Use a compatible model provider:
- **OpenAI**
- **OpenRouter**
-
+
## Usage
Start a new chat with a tool-enabled model. Exa tools will appear in the available tools list.
-
+
### Example Queries
@@ -109,7 +109,7 @@ Start a new chat with a tool-enabled model. Exa tools will appear in the availab
What is happening this week, mid July 2025, in Sydney, Australia?
```
-
+
**Investment Research:**
```
diff --git a/website/src/content/docs/jan/mcp.mdx b/website/src/content/docs/jan/mcp.mdx
index d175bd979..8c0392b5a 100644
--- a/website/src/content/docs/jan/mcp.mdx
+++ b/website/src/content/docs/jan/mcp.mdx
@@ -126,7 +126,7 @@ To illustrate how MCPs can be used within Jan, we will walk through an example u
Before we begin, you will need to enable experimental features at `General` > `Advanced`. Next, go to `Settings` > `MCP Servers`, and toggle
the `Allow All MCP Tool Permission` switch ON.
-
+
Please note that you will also need to have **NodeJS** and/or **Python** installed on your machine. In case you don't
have either, you can download them from the official websites at the links below:
@@ -138,7 +138,7 @@ have either, you can download them from the official websites at the links below
- Click on the `+` sign on the upper right-hand corner of the MCP box.
-
+
- Enter the following details to configure the BrowserMCP:
- **Server Name**: `browsermcp`
@@ -146,35 +146,35 @@ have either, you can download them from the official websites at the links below
- **Arguments**: `@browsermcp/mcp`
- **Environment Variables**: You can leave this field empty.
-
+
- Check that the server has been activated successfully.
-
+
- Open your favorite chrome-based browser (e.g., Google Chrome, Brave, Vivaldi, Microsoft Edge, etc...) and navigate to the
[Browser MCP Extension Page](https://chromewebstore.google.com/detail/browser-mcp-automate-your/bjfgambnhccakkhmkepdoekmckoijdlc).
-
+
- Make sure to enable the extension to run on private windows. Since Browser Use will have access to all sites you've
already logged into in your regular browser session, it is best to give it a clean slate to start from.
-
+
- Enable the extension to run on private windows by clicking on it and Connecting to the Browser MCP server.
-
+
- Go back to Jan and pick a model with good tool use capabilities, for example, Claude 3.7 and 4 Sonnet, or Claude 4 Opus,
and make sure to enable tool calling via the UI by going to **Model Providers > Anthropic** and, after you have entered your
API key, enable tool from the **+** button.
-
+
You can check and see if this was accurate below.
-
+
## Troubleshooting
diff --git a/website/src/content/docs/jan/remote-models/anthropic.mdx b/website/src/content/docs/jan/remote-models/anthropic.mdx
index 4b44f7a02..43f3c33fc 100644
--- a/website/src/content/docs/jan/remote-models/anthropic.mdx
+++ b/website/src/content/docs/jan/remote-models/anthropic.mdx
@@ -40,7 +40,7 @@ Ensure your API key has sufficient credits
3. Insert your **API Key**
-
+
### Step 3: Start Using Anthropic's Models
diff --git a/website/src/content/docs/jan/remote-models/cohere.mdx b/website/src/content/docs/jan/remote-models/cohere.mdx
index 5eee7cb67..812b5093f 100644
--- a/website/src/content/docs/jan/remote-models/cohere.mdx
+++ b/website/src/content/docs/jan/remote-models/cohere.mdx
@@ -40,7 +40,7 @@ Ensure your API key has sufficient credits.
3. Insert your **API Key**
-
+
### Step 3: Start Using Cohere's Models
diff --git a/website/src/content/docs/jan/remote-models/google.mdx b/website/src/content/docs/jan/remote-models/google.mdx
index ad80bacd2..9651a39d7 100644
--- a/website/src/content/docs/jan/remote-models/google.mdx
+++ b/website/src/content/docs/jan/remote-models/google.mdx
@@ -38,7 +38,7 @@ Ensure your API key has sufficient credits
3. Insert your **API Key**
-
+
### Step 3: Start Using Google's Models
diff --git a/website/src/content/docs/jan/remote-models/groq.mdx b/website/src/content/docs/jan/remote-models/groq.mdx
index 0691b109a..554fcdfbe 100644
--- a/website/src/content/docs/jan/remote-models/groq.mdx
+++ b/website/src/content/docs/jan/remote-models/groq.mdx
@@ -38,7 +38,7 @@ Ensure your API key has sufficient credits
3. Insert your **API Key**
-
+
diff --git a/website/src/content/docs/jan/remote-models/mistralai.mdx b/website/src/content/docs/jan/remote-models/mistralai.mdx
index 9baa55a2a..8c045c7e7 100644
--- a/website/src/content/docs/jan/remote-models/mistralai.mdx
+++ b/website/src/content/docs/jan/remote-models/mistralai.mdx
@@ -41,7 +41,7 @@ Ensure your API key has sufficient credits
3. Insert your **API Key**
-
+
### Step 3: Start Using Mistral's Models
diff --git a/website/src/content/docs/jan/remote-models/openai.mdx b/website/src/content/docs/jan/remote-models/openai.mdx
index 6cf8f5082..3db405fb0 100644
--- a/website/src/content/docs/jan/remote-models/openai.mdx
+++ b/website/src/content/docs/jan/remote-models/openai.mdx
@@ -42,7 +42,7 @@ Ensure your API key has sufficient credits
3. Insert your API Key
-
+
### Step 3: Start Using OpenAI's Models
diff --git a/website/src/content/docs/jan/remote-models/openrouter.mdx b/website/src/content/docs/jan/remote-models/openrouter.mdx
index 28e74d82f..81756d74f 100644
--- a/website/src/content/docs/jan/remote-models/openrouter.mdx
+++ b/website/src/content/docs/jan/remote-models/openrouter.mdx
@@ -51,7 +51,7 @@ Ensure your API key has sufficient credits. OpenRouter credits work across all a
3. Insert your **API Key**
-
+
### Step 3: Start Using OpenRouter Models
diff --git a/website/src/content/docs/jan/settings.mdx b/website/src/content/docs/jan/settings.mdx
index dc9090551..3a75b7d7c 100644
--- a/website/src/content/docs/jan/settings.mdx
+++ b/website/src/content/docs/jan/settings.mdx
@@ -53,7 +53,7 @@ To download models from Hugging Face that require authentication, for example, l
## Model Settings (Gear Icon)
-
+
Click the gear icon next to a model to configure advanced settings:
- **Context Size**: Maximum prompt context length
@@ -76,7 +76,7 @@ Monitor and manage system resources at **Settings > Hardware**:
- **GPU Acceleration**: Enable/disable and configure GPU settings
-
+
## Preferences
@@ -85,14 +85,14 @@ Monitor and manage system resources at **Settings > Hardware**:
Control the visual theme of Jan's interface with any color combo you'd like. You can also control the color use in the code blocks.
-
+
### Spell Check
Jan includes a built-in spell check feature to help catch typing errors in your messages.
-
+
@@ -110,7 +110,7 @@ Read more about that we collect with opt-in users at [Privacy](/docs/privacy).
-
+
### Log Management
@@ -122,7 +122,7 @@ Read more about that we collect with opt-in users at [Privacy](/docs/privacy).
- To open logs from Jan's interface: at **Logs**, click icon to open App Logs & Cortex Logs:
-
+
**2. Clear Logs**
@@ -134,7 +134,7 @@ This action cannot be undone.
-
+
@@ -145,7 +145,7 @@ Jan stores your data locally in your own filesystem in a universal file format.
At **Jan Data Folder**, click icon to open Jan application's folder:
-
+
**2. Edit Jan Data Folder**
@@ -161,7 +161,7 @@ An app restart will be required afterward.
4. Click **Yes, Proceed**
-
+
### HTTPs Proxy
@@ -184,7 +184,7 @@ Where:
- ``: The port number for the proxy server
-
+
**Ignore SSL Certificates**
@@ -199,7 +199,7 @@ Only enable this option if you trust your network environment.
-
+
@@ -218,7 +218,7 @@ Only use factory reset if:
To begin the process:
1. At **Reset to Factory Settings**, click **Reset** button
-
+
2. In the confirmation dialog:
- Type the word **RESET** to confirm
@@ -226,5 +226,5 @@ To begin the process:
- Click **Reset Now**
3. App restart is required upon confirmation
-
+
diff --git a/website/src/content/docs/jan/threads.mdx b/website/src/content/docs/jan/threads.mdx
index 0c02a99e0..d7e2a2bd5 100644
--- a/website/src/content/docs/jan/threads.mdx
+++ b/website/src/content/docs/jan/threads.mdx
@@ -15,8 +15,7 @@ keywords:
]
---
-
-# Start Chatting
+import { Aside } from '@astrojs/starlight/components';
@@ -35,36 +34,36 @@ Jan requires a model to chat. Download one from the Hub:
3. Select one matching your hardware specs
4. Click **Download**
-
+
-
+
Models consume memory and processing power. Choose based on your hardware specs.
**HuggingFace models:** Some require an access token. Add yours in **Settings > Model Providers > Llama.cpp > Hugging Face Access Token**.
-
+
### Step 3: Enable GPU Acceleration (Optional)
For Windows/Linux with compatible graphics cards:
-1. Go to **() Settings** > **Hardware**
+1. Go to **Settings** > **Hardware**
2. Toggle **GPUs** to ON
-
+
-
+
Install required drivers before enabling GPU acceleration. See setup guides for [Windows](/docs/desktop/windows#gpu-acceleration) & [Linux](/docs/desktop/linux#gpu-acceleration).
### Step 4: Start Chatting
-1. Click **New Chat** () icon
+1. Click the **New Chat** icon
2. Select your model in the input field dropdown
3. Type your message and start chatting
-
+
@@ -79,32 +78,32 @@ Jan organizes conversations into threads for easy tracking and revisiting.
- **Favorites**: Pin important threads for quick access
- **Recents**: Access recently used threads
-
+
### Edit Chat Titles
1. Hover over a conversation in the sidebar
-2. Click **three dots** () icon
-3. Click **Rename**
+2. Click the **three dots** icon
+3. Click **Rename**
4. Enter new title and save
-
+
### Delete Threads
-
+
Thread deletion is permanent. No undo available.
**Single thread:**
1. Hover over thread in sidebar
-2. Click **three dots** () icon
-3. Click **Delete**
+2. Click the **three dots** icon
+3. Click **Delete**
**All threads:**
1. Hover over `Recents` category
-2. Click **three dots** () icon
-3. Select **Delete All**
+2. Click the **three dots** icon
+3. Select **Delete All**
## Advanced Features
@@ -116,9 +115,9 @@ Customize how models respond:
2. Or go to the **Assistant tab** to create custom instructions
3. Instructions work across all models
-
+
-
+
### Model Parameters
@@ -127,7 +126,7 @@ Fine-tune model behavior:
- Adjust parameters in **Assistant Settings**
- Switch models via the **model selector**
-
+
### Connect Cloud Models (Optional)
@@ -138,6 +137,6 @@ Connect to OpenAI, Anthropic, Groq, Mistral, and others:
3. Click the **Gear icon** beside the provider
4. Add your API key (ensure sufficient credits)
-
+
For detailed setup, see [Remote APIs](/docs/remote-models/openai).
diff --git a/website/src/content/docs/jan/troubleshooting.mdx b/website/src/content/docs/jan/troubleshooting.mdx
index 58e207814..8eb17daa6 100644
--- a/website/src/content/docs/jan/troubleshooting.mdx
+++ b/website/src/content/docs/jan/troubleshooting.mdx
@@ -36,7 +36,7 @@ Error logs are essential for troubleshooting issues and getting help from Jan te
2. Choose **App Log**
-
+
#### Through Terminal
@@ -203,7 +203,7 @@ To verify GPU acceleration is turned on:
3. Verify your selected GPU(s) are visible in **System Monitor** from Jan's footer
-
+
diff --git a/website/src/content/docs/local-server/data-folder.mdx b/website/src/content/docs/local-server/data-folder.mdx
index a4542d4b3..616c523f9 100644
--- a/website/src/content/docs/local-server/data-folder.mdx
+++ b/website/src/content/docs/local-server/data-folder.mdx
@@ -29,7 +29,7 @@ Jan stores all your data locally on your computer. No cloud storage, no external
1. Go to Settings (⚙️) > Advanced Settings
2. Click the folder icon 📁
-
+
**Via File Explorer:**
@@ -59,7 +59,7 @@ $XDG_CONFIG_HOME/Jan/data
When Jan's local server is running, you can monitor real-time activity in the logs folder:
-
+
### Live Log Monitoring
diff --git a/website/src/content/docs/local-server/llama-cpp.mdx b/website/src/content/docs/local-server/llama-cpp.mdx
index 5872dd9f9..0606e229f 100644
--- a/website/src/content/docs/local-server/llama-cpp.mdx
+++ b/website/src/content/docs/local-server/llama-cpp.mdx
@@ -27,7 +27,7 @@ llama.cpp is the engine that runs AI models locally on your computer. It's what
Find llama.cpp settings at **Settings** (⚙️) > **Local Engine** > **llama.cpp**:
-
+
Most users don't need to change these settings. Jan picks good defaults for your hardware automatically.
diff --git a/website/src/content/docs/local-server/troubleshooting.mdx b/website/src/content/docs/local-server/troubleshooting.mdx
index d6a3c5c3f..df4ce2eb4 100644
--- a/website/src/content/docs/local-server/troubleshooting.mdx
+++ b/website/src/content/docs/local-server/troubleshooting.mdx
@@ -31,7 +31,7 @@ When Jan isn't working properly, error logs help identify the problem. Here's ho
1. Look for **System Monitor** in the footer
2. Click **App Log**
-
+
**Via Terminal:**
```bash
@@ -172,7 +172,7 @@ If Jan isn't using your NVIDIA graphics card for acceleration:
2. Turn on **GPU Acceleration**
3. Check **System Monitor** (footer) to verify GPU is detected
- 
+ 
3. **Verify Configuration**
diff --git a/website/src/content/docs/products/index.mdx b/website/src/content/docs/products/index.mdx
index 3d8c720fa..69abf7821 100644
--- a/website/src/content/docs/products/index.mdx
+++ b/website/src/content/docs/products/index.mdx
@@ -4,7 +4,7 @@ description: AI that runs where you need it, how you need it
sidebar:
order: 0
banner:
- content: Jan is OPEN SUPERINTELLIGENCE that you can Self Host! You can connect to the world while staying local.
+ content: 👋Jan is OPEN SUPERINTELLIGENCE that you can Self Host! You can connect to the 🌍 while staying local. 👀
---
import { Aside, Card, CardGrid } from '@astrojs/starlight/components';
diff --git a/website/src/content/docs/products/models/jan-v1.mdx b/website/src/content/docs/products/models/jan-v1.mdx
index 1457a6781..513c8068a 100644
--- a/website/src/content/docs/products/models/jan-v1.mdx
+++ b/website/src/content/docs/products/models/jan-v1.mdx
@@ -31,7 +31,7 @@ Jan V1 models power everything in the Jan ecosystem. When you use Jan, you're us
## Three Ways to Run
-
+
Run on your own hardware for complete privacy.
diff --git a/website/src/content/docs/products/platforms/desktop.mdx b/website/src/content/docs/products/platforms/desktop.mdx
index 7d65ae14a..056ee408a 100644
--- a/website/src/content/docs/products/platforms/desktop.mdx
+++ b/website/src/content/docs/products/platforms/desktop.mdx
@@ -78,7 +78,7 @@ Jan comes with a model that works immediately. No downloading, no waiting.
Connect to external AI providers when you need more power:
-
+
Our cloud service (coming soon). One click to enable.
diff --git a/website/src/content/docs/products/tools/browseruse.mdx b/website/src/content/docs/products/tools/browseruse.mdx
index 87a8e6f54..c209fde9e 100644
--- a/website/src/content/docs/products/tools/browseruse.mdx
+++ b/website/src/content/docs/products/tools/browseruse.mdx
@@ -68,7 +68,7 @@ High-risk actions require explicit user confirmation. Browser Use will never com
## Implementation
-
+
Runs on your device using Playwright.
diff --git a/website/src/content/docs/products/tools/deepresearch.mdx b/website/src/content/docs/products/tools/deepresearch.mdx
index bac7cdf58..bb8a9bb73 100644
--- a/website/src/content/docs/products/tools/deepresearch.mdx
+++ b/website/src/content/docs/products/tools/deepresearch.mdx
@@ -48,7 +48,7 @@ Deep Research provides comprehensive investigation capabilities beyond simple se
## Research Modes
-
+
Fast overview for immediate needs.
diff --git a/website/src/content/docs/products/tools/search.mdx b/website/src/content/docs/products/tools/search.mdx
index 938f986c9..414e85d6a 100644
--- a/website/src/content/docs/products/tools/search.mdx
+++ b/website/src/content/docs/products/tools/search.mdx
@@ -22,7 +22,7 @@ Jan Search operates in three modes:
## Implementation
-
+
Everything happens on your machine using Crawl4AI.
diff --git a/website/src/layouts/Layout.astro b/website/src/layouts/Layout.astro
new file mode 100644
index 000000000..591effc34
--- /dev/null
+++ b/website/src/layouts/Layout.astro
@@ -0,0 +1,64 @@
+---
+export interface Props {
+ title: string;
+}
+
+const { title } = Astro.props;
+---
+
+
+
+
+
+
+
+
+ {title}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/website/src/pages/example.mdx b/website/src/pages/example.mdx
deleted file mode 100644
index 8c7b798e3..000000000
--- a/website/src/pages/example.mdx
+++ /dev/null
@@ -1,7 +0,0 @@
----
-title: Example Page
-description: This is an example page.
----
-
-
-# Hey
diff --git a/website/src/pages/prods.astro b/website/src/pages/prods.astro
new file mode 100644
index 000000000..dd6ea9c97
--- /dev/null
+++ b/website/src/pages/prods.astro
@@ -0,0 +1,1872 @@
+---
+import Layout from '../layouts/Layout.astro';
+import CircuitBackground from '../components/CircuitBackground.astro';
+import StatusIndicator from '../components/StatusIndicator.astro';
+import RetroCard from '../components/RetroCard.astro';
+import FloatingNav from '../components/FloatingNav.astro';
+---
+
+
+
+
+
+
+
+
+
+
+
+
+ ⚡
+ Open Superintelligence
+
+
+ Jan's Product Roadmap
+ Models • Platforms • Tools
+
+
+ Complete AI ecosystem that you control. Our models, your infrastructure, real capabilities.
+
+
+
+ 3
+ AI Models
+
+
+ 4
+ Platforms
+
+
+ 4
+ Tools
+
+
+
+
+
+
+
+
+
Product Architecture
+
+
+
+
+
+
+
+ Jan V1 Series
+ Jan Nano
+ Lucy
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Parameters
+
+ 7B 8GB RAM
+ 13B 16GB RAM
+ 70B 64GB RAM
+
+
+
+
Context Window
+
+ 32,768 tokens
+
+
+
+
+
+ Complete model family designed to compete with Claude and GPT-4.
+ Optimized for reasoning, coding, and general conversation.
+
+
+
+ Reasoning
+ Code Generation
+ Multilingual
+ Tool Use
+
+
+
+
+
+
+
+
+
Parameters
+
+ 4B 6-8GB RAM
+
+
+
+
Context Options
+
+ 32k Standard
+ 128k Extended
+
+
+
+
+
+ Specialized for research and information retrieval. Native MCP integration
+ for web search, document analysis, and knowledge synthesis.
+
+
+
+ Web Search
+ Document Analysis
+ Citation Management
+ MCP Tools
+
+
+
+
+
+
+
+
+
Modalities
+
+ Vision
+ Text
+ Audio Soon
+
+
+
+
Release
+
+ Q2 2025
+
+
+
+
+
+ Advanced multimodal capabilities for image understanding, document processing,
+ and visual reasoning tasks.
+
+
+
+ Image Analysis
+ OCR
+ Visual Reasoning
+ Document Processing
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Why This Matters
+
+ Most AI is just a wrapper around someone else's models. Jan is different.
+ We build the models, control the infrastructure, and integrate the tools.
+
+
+
+
🧠
+
+
Our Models
+
Trained by us, optimized for your use cases, not subscription revenue.
+
+
+
+
🏠
+
+
Your Infrastructure
+
Run locally for privacy, or cloud when you need power. You choose.
+
+
+
+
🔧
+
+
Real Tools
+
Not just chat, but automation that actually gets things done.
+
+
+
+
+
+
+
+ ⚡
+ Jan
+
+
+ Models
+
+
+ Platforms
+
+
+ Tools
+
+
+
+
+
+
+
+
+
+
+
+
Start Building With Jan
+
Download Jan Desktop today and experience AI that runs where you need it.
+
+
+
+ 3M+
+ Downloads
+
+
+ 100%
+ Open Source
+
+
+ 0
+ Data Collection
+
+
+
+
+
+
+
+
+
+
+
diff --git a/website/src/styles/retro-effects.css b/website/src/styles/retro-effects.css
new file mode 100644
index 000000000..1e6f42294
--- /dev/null
+++ b/website/src/styles/retro-effects.css
@@ -0,0 +1,822 @@
+/* Retro-Tech Effects CSS */
+/* RadioShack meets PostHog aesthetic */
+
+:root {
+ /* Retro Color Palette */
+ --retro-green: #00ff41;
+ --retro-amber: #ffb000;
+ --retro-blue: #00bfff;
+ --retro-red: #ff0040;
+ --retro-cyan: #00ffff;
+ --retro-magenta: #ff00ff;
+
+ /* Terminal Colors */
+ --terminal-bg: #0a0a0a;
+ --terminal-fg: #00ff41;
+ --terminal-cursor: #ffffff;
+
+ /* Glow Effects */
+ --glow-green: rgba(0, 255, 65, 0.5);
+ --glow-amber: rgba(255, 176, 0, 0.5);
+ --glow-blue: rgba(0, 191, 255, 0.5);
+ --glow-red: rgba(255, 0, 64, 0.5);
+}
+
+/* CRT Monitor Effect */
+.crt-effect {
+ position: relative;
+ background: radial-gradient(ellipse at center, #0a0a0a 0%, #000000 100%);
+}
+
+.crt-effect::before {
+ content: '';
+ position: absolute;
+ top: 0;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ background: repeating-linear-gradient(
+ 0deg,
+ rgba(0, 255, 65, 0.05) 0px,
+ rgba(0, 255, 65, 0.05) 1px,
+ transparent 1px,
+ transparent 3px
+ );
+ pointer-events: none;
+ z-index: 1000;
+}
+
+.crt-effect::after {
+ content: '';
+ position: absolute;
+ top: 0;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ background: radial-gradient(
+ ellipse at center,
+ transparent 40%,
+ rgba(0, 0, 0, 0.8) 100%
+ );
+ pointer-events: none;
+ z-index: 1001;
+}
+
+/* Matrix Rain Effect */
+.matrix-rain {
+ position: fixed;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ pointer-events: none;
+ z-index: -1;
+ overflow: hidden;
+}
+
+.matrix-char {
+ position: absolute;
+ color: var(--retro-green);
+ font-family: 'JetBrains Mono', monospace;
+ font-size: 14px;
+ animation: matrixFall 3s linear infinite;
+ opacity: 0.7;
+}
+
+@keyframes matrixFall {
+ 0% {
+ transform: translateY(-100vh);
+ opacity: 1;
+ }
+ 100% {
+ transform: translateY(100vh);
+ opacity: 0;
+ }
+}
+
+/* Glitch Text Effects */
+.glitch-text {
+ position: relative;
+ color: var(--retro-green);
+ font-weight: bold;
+}
+
+.glitch-text::before,
+.glitch-text::after {
+ content: attr(data-text);
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+}
+
+.glitch-text::before {
+ animation: glitch-anim-1 0.3s infinite;
+ color: var(--retro-red);
+ z-index: -1;
+}
+
+.glitch-text::after {
+ animation: glitch-anim-2 0.3s infinite;
+ color: var(--retro-blue);
+ z-index: -2;
+}
+
+@keyframes glitch-anim-1 {
+ 0% {
+ clip-path: inset(40% 0 61% 0);
+ transform: translate(-2px, -2px);
+ }
+ 20% {
+ clip-path: inset(92% 0 1% 0);
+ transform: translate(2px, 2px);
+ }
+ 40% {
+ clip-path: inset(43% 0 1% 0);
+ transform: translate(-2px, 2px);
+ }
+ 60% {
+ clip-path: inset(25% 0 58% 0);
+ transform: translate(2px, -2px);
+ }
+ 80% {
+ clip-path: inset(54% 0 7% 0);
+ transform: translate(-2px, -2px);
+ }
+ 100% {
+ clip-path: inset(58% 0 43% 0);
+ transform: translate(2px, 2px);
+ }
+}
+
+@keyframes glitch-anim-2 {
+ 0% {
+ clip-path: inset(25% 0 58% 0);
+ transform: translate(2px, 1px);
+ }
+ 20% {
+ clip-path: inset(54% 0 7% 0);
+ transform: translate(-1px, 2px);
+ }
+ 40% {
+ clip-path: inset(58% 0 43% 0);
+ transform: translate(1px, -1px);
+ }
+ 60% {
+ clip-path: inset(40% 0 61% 0);
+ transform: translate(-1px, -2px);
+ }
+ 80% {
+ clip-path: inset(92% 0 1% 0);
+ transform: translate(2px, 1px);
+ }
+ 100% {
+ clip-path: inset(43% 0 1% 0);
+ transform: translate(-2px, -1px);
+ }
+}
+
+/* Neon Glow Effects */
+.neon-glow {
+ text-shadow:
+ 0 0 5px currentColor,
+ 0 0 10px currentColor,
+ 0 0 15px currentColor,
+ 0 0 20px currentColor;
+ animation: neonFlicker 2s infinite alternate;
+}
+
+@keyframes neonFlicker {
+ 0%,
+ 18%,
+ 22%,
+ 25%,
+ 53%,
+ 57%,
+ 100% {
+ text-shadow:
+ 0 0 5px currentColor,
+ 0 0 10px currentColor,
+ 0 0 15px currentColor,
+ 0 0 20px currentColor;
+ }
+ 20%,
+ 24%,
+ 55% {
+ text-shadow: none;
+ }
+}
+
+/* Terminal Cursor */
+.terminal-cursor {
+ display: inline-block;
+ background-color: var(--terminal-cursor);
+ color: var(--terminal-bg);
+ animation: cursorBlink 1s infinite;
+ margin-left: 2px;
+ width: 8px;
+ height: 1em;
+}
+
+@keyframes cursorBlink {
+ 0%,
+ 50% {
+ opacity: 1;
+ }
+ 51%,
+ 100% {
+ opacity: 0;
+ }
+}
+
+/* Data Stream Animation */
+.data-stream {
+ position: relative;
+ overflow: hidden;
+}
+
+.data-stream::before {
+ content: '';
+ position: absolute;
+ top: 0;
+ left: -100%;
+ width: 100%;
+ height: 100%;
+ background: linear-gradient(
+ 90deg,
+ transparent,
+ rgba(0, 255, 65, 0.1) 10%,
+ rgba(0, 255, 65, 0.3) 50%,
+ rgba(0, 255, 65, 0.1) 90%,
+ transparent
+ );
+ animation: dataStreamFlow 2s infinite;
+}
+
+@keyframes dataStreamFlow {
+ 0% {
+ left: -100%;
+ opacity: 0;
+ }
+ 50% {
+ opacity: 1;
+ }
+ 100% {
+ left: 100%;
+ opacity: 0;
+ }
+}
+
+/* Circuit Board Traces */
+.circuit-trace {
+ position: relative;
+ overflow: hidden;
+}
+
+.circuit-trace::after {
+ content: '';
+ position: absolute;
+ top: 50%;
+ left: 0;
+ right: 0;
+ height: 2px;
+ background: linear-gradient(
+ 90deg,
+ transparent,
+ var(--retro-green) 20%,
+ var(--retro-green) 80%,
+ transparent
+ );
+ transform: translateY(-50%);
+ animation: circuitPulse 3s infinite;
+}
+
+@keyframes circuitPulse {
+ 0%,
+ 100% {
+ opacity: 0.3;
+ box-shadow: 0 0 5px var(--retro-green);
+ }
+ 50% {
+ opacity: 1;
+ box-shadow: 0 0 15px var(--retro-green);
+ }
+}
+
+/* Electronic Component Styles */
+.component-resistor {
+ display: inline-block;
+ width: 20px;
+ height: 6px;
+ background: linear-gradient(
+ 90deg,
+ transparent 0%,
+ var(--retro-amber) 20%,
+ var(--retro-red) 40%,
+ var(--retro-amber) 60%,
+ var(--retro-red) 80%,
+ transparent 100%
+ );
+ border-radius: 1px;
+ position: relative;
+}
+
+.component-resistor::before,
+.component-resistor::after {
+ content: '';
+ position: absolute;
+ top: 50%;
+ width: 5px;
+ height: 1px;
+ background: var(--retro-green);
+ transform: translateY(-50%);
+}
+
+.component-resistor::before {
+ left: -5px;
+}
+.component-resistor::after {
+ right: -5px;
+}
+
+.component-led {
+ display: inline-block;
+ width: 8px;
+ height: 8px;
+ border-radius: 50%;
+ background: radial-gradient(circle, var(--retro-red), transparent);
+ box-shadow: 0 0 10px var(--retro-red);
+ animation: ledBlink 2s infinite;
+}
+
+@keyframes ledBlink {
+ 0%,
+ 80%,
+ 100% {
+ opacity: 0.3;
+ box-shadow: 0 0 5px var(--retro-red);
+ }
+ 85%,
+ 95% {
+ opacity: 1;
+ box-shadow: 0 0 15px var(--retro-red);
+ }
+}
+
+/* Retro Button Styles */
+.retro-button {
+ background: linear-gradient(145deg, #2a2a2a, #1a1a1a);
+ border: 2px solid var(--retro-green);
+ color: var(--retro-green);
+ padding: 0.75rem 1.5rem;
+ font-family: 'JetBrains Mono', monospace;
+ font-weight: 600;
+ text-transform: uppercase;
+ letter-spacing: 0.1em;
+ cursor: pointer;
+ position: relative;
+ overflow: hidden;
+ transition: all 0.3s ease;
+}
+
+.retro-button::before {
+ content: '';
+ position: absolute;
+ top: 0;
+ left: -100%;
+ width: 100%;
+ height: 100%;
+ background: linear-gradient(
+ 90deg,
+ transparent,
+ rgba(0, 255, 65, 0.2),
+ transparent
+ );
+ transition: left 0.5s;
+}
+
+.retro-button:hover::before {
+ left: 100%;
+}
+
+.retro-button:hover {
+ box-shadow:
+ 0 0 20px var(--glow-green),
+ inset 0 0 20px rgba(0, 255, 65, 0.1);
+ transform: translateY(-2px);
+}
+
+.retro-button:active {
+ transform: translateY(0);
+ box-shadow:
+ 0 0 10px var(--glow-green),
+ inset 0 0 10px rgba(0, 255, 65, 0.2);
+}
+
+/* Holographic Effect */
+.holographic {
+ background: linear-gradient(
+ 45deg,
+ var(--retro-cyan),
+ var(--retro-magenta),
+ var(--retro-amber),
+ var(--retro-green)
+ );
+ background-size: 400% 400%;
+ animation: holographicShift 3s ease infinite;
+ -webkit-background-clip: text;
+ -webkit-text-fill-color: transparent;
+ background-clip: text;
+}
+
+@keyframes holographicShift {
+ 0% {
+ background-position: 0% 50%;
+ }
+ 50% {
+ background-position: 100% 50%;
+ }
+ 100% {
+ background-position: 0% 50%;
+ }
+}
+
+/* System Status Indicators */
+.system-status {
+ display: flex;
+ align-items: center;
+ gap: 0.5rem;
+ font-family: 'JetBrains Mono', monospace;
+ font-size: 0.8rem;
+ text-transform: uppercase;
+}
+
+.status-bar {
+ width: 60px;
+ height: 4px;
+ background: #333;
+ border-radius: 2px;
+ overflow: hidden;
+ position: relative;
+}
+
+.status-bar::after {
+ content: '';
+ position: absolute;
+ top: 0;
+ left: 0;
+ height: 100%;
+ background: var(--retro-green);
+ border-radius: 2px;
+ animation: statusProgress 2s ease-in-out infinite;
+}
+
+@keyframes statusProgress {
+ 0% {
+ width: 0%;
+ }
+ 50% {
+ width: 100%;
+ }
+ 100% {
+ width: 0%;
+ }
+}
+
+/* Vintage Monitor Bezel */
+.monitor-bezel {
+ background: linear-gradient(135deg, #2a2a2a 0%, #1a1a1a 50%, #0a0a0a 100%);
+ border: 3px solid #333;
+ border-radius: 15px;
+ padding: 20px;
+ position: relative;
+ box-shadow:
+ inset 0 0 20px rgba(0, 0, 0, 0.5),
+ 0 0 30px rgba(0, 0, 0, 0.8);
+}
+
+.monitor-bezel::before {
+ content: '';
+ position: absolute;
+ top: 10px;
+ right: 10px;
+ width: 8px;
+ height: 8px;
+ border-radius: 50%;
+ background: var(--retro-red);
+ box-shadow: 0 0 8px var(--retro-red);
+ animation: powerIndicator 3s infinite;
+}
+
+@keyframes powerIndicator {
+ 0%,
+ 90%,
+ 100% {
+ opacity: 1;
+ }
+ 95% {
+ opacity: 0.3;
+ }
+}
+
+/* ASCII Art Enhancement */
+.ascii-art {
+ font-family: 'JetBrains Mono', monospace;
+ white-space: pre;
+ color: var(--retro-green);
+ text-shadow: 0 0 10px var(--glow-green);
+ animation: asciiGlow 4s ease-in-out infinite alternate;
+}
+
+@keyframes asciiGlow {
+ 0% {
+ text-shadow: 0 0 5px var(--glow-green);
+ opacity: 0.8;
+ }
+ 100% {
+ text-shadow: 0 0 20px var(--glow-green);
+ opacity: 1;
+ }
+}
+
+/* Retro Loading Animation */
+.retro-loader {
+ display: inline-block;
+ position: relative;
+ width: 40px;
+ height: 40px;
+}
+
+.retro-loader::after {
+ content: '';
+ position: absolute;
+ border: 3px solid #333;
+ border-top: 3px solid var(--retro-green);
+ border-radius: 50%;
+ width: 30px;
+ height: 30px;
+ animation: retroSpin 1s linear infinite;
+}
+
+@keyframes retroSpin {
+ 0% {
+ transform: rotate(0deg);
+ }
+ 100% {
+ transform: rotate(360deg);
+ }
+}
+
+/* Scanline Effect */
+.scanlines {
+ position: relative;
+}
+
+.scanlines::after {
+ content: '';
+ position: absolute;
+ top: 0;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ background: repeating-linear-gradient(
+ 0deg,
+ transparent,
+ transparent 2px,
+ rgba(0, 255, 65, 0.03) 2px,
+ rgba(0, 255, 65, 0.03) 4px
+ );
+ pointer-events: none;
+ animation: scanlineMove 8s linear infinite;
+}
+
+@keyframes scanlineMove {
+ 0% {
+ transform: translateY(0);
+ }
+ 100% {
+ transform: translateY(4px);
+ }
+}
+
+/* Phosphor Screen Effect */
+.phosphor-screen {
+ background: radial-gradient(ellipse at center, #001100 0%, #000000 100%);
+ color: var(--retro-green);
+ text-shadow: 0 0 2px var(--retro-green);
+}
+
+/* Terminal Window */
+.terminal-window {
+ background: #000000;
+ border: 2px solid var(--retro-green);
+ border-radius: 4px;
+ padding: 1rem;
+ font-family: 'JetBrains Mono', monospace;
+ color: var(--retro-green);
+ box-shadow:
+ 0 0 20px rgba(0, 255, 65, 0.3),
+ inset 0 0 20px rgba(0, 255, 65, 0.1);
+}
+
+.terminal-header {
+ display: flex;
+ align-items: center;
+ margin-bottom: 1rem;
+ padding-bottom: 0.5rem;
+ border-bottom: 1px solid var(--retro-green);
+}
+
+.terminal-title {
+ color: var(--retro-amber);
+ font-weight: bold;
+ text-transform: uppercase;
+}
+
+/* Retro Grid */
+.retro-grid {
+ background-image:
+ linear-gradient(rgba(0, 255, 65, 0.1) 1px, transparent 1px),
+ linear-gradient(90deg, rgba(0, 255, 65, 0.1) 1px, transparent 1px);
+ background-size: 20px 20px;
+}
+
+/* Digital Clock Display */
+.digital-clock {
+ font-family: 'JetBrains Mono', monospace;
+ color: var(--retro-green);
+ background: #000000;
+ padding: 0.5rem 1rem;
+ border: 1px solid var(--retro-green);
+ font-weight: bold;
+ text-shadow: 0 0 10px var(--retro-green);
+ letter-spacing: 0.1em;
+}
+
+/* Radar Sweep Effect */
+.radar-sweep {
+ position: relative;
+ border-radius: 50%;
+ background: radial-gradient(
+ circle,
+ transparent 30%,
+ rgba(0, 255, 65, 0.1) 100%
+ );
+ overflow: hidden;
+}
+
+.radar-sweep::before {
+ content: '';
+ position: absolute;
+ top: 50%;
+ left: 50%;
+ width: 50%;
+ height: 2px;
+ background: linear-gradient(90deg, var(--retro-green), transparent);
+ transform-origin: left center;
+ animation: radarSweep 3s linear infinite;
+}
+
+@keyframes radarSweep {
+ 0% {
+ transform: translate(-50%, -50%) rotate(0deg);
+ }
+ 100% {
+ transform: translate(-50%, -50%) rotate(360deg);
+ }
+}
+
+/* VHS Static Effect */
+.vhs-static {
+ position: relative;
+ overflow: hidden;
+}
+
+.vhs-static::before {
+ content: '';
+ position: absolute;
+ top: 0;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ background:
+ repeating-linear-gradient(
+ 90deg,
+ transparent,
+ transparent 2px,
+ rgba(255, 255, 255, 0.03) 2px,
+ rgba(255, 255, 255, 0.03) 4px
+ ),
+ repeating-linear-gradient(
+ 0deg,
+ transparent,
+ transparent 2px,
+ rgba(255, 255, 255, 0.03) 2px,
+ rgba(255, 255, 255, 0.03) 4px
+ );
+ animation: vhsStatic 0.1s infinite;
+ pointer-events: none;
+}
+
+@keyframes vhsStatic {
+ 0% {
+ opacity: 0.03;
+ }
+ 50% {
+ opacity: 0.05;
+ }
+ 100% {
+ opacity: 0.03;
+ }
+}
+
+/* Accessibility and Reduced Motion */
+@media (prefers-reduced-motion: reduce) {
+ *,
+ *::before,
+ *::after {
+ animation-duration: 0.01ms !important;
+ animation-iteration-count: 1 !important;
+ transition-duration: 0.01ms !important;
+ }
+}
+
+/* High Contrast Mode */
+@media (prefers-contrast: high) {
+ :root {
+ --retro-green: #00ff00;
+ --retro-amber: #ffff00;
+ --retro-red: #ff0000;
+ --retro-blue: #0080ff;
+ }
+
+ .crt-effect::before {
+ display: none;
+ }
+
+ .neon-glow {
+ text-shadow: none;
+ font-weight: bold;
+ }
+
+ .scanlines::after {
+ display: none;
+ }
+}
+
+/* Dark Mode Enhancements */
+@media (prefers-color-scheme: dark) {
+ .retro-button {
+ background: linear-gradient(145deg, #1a1a1a, #0a0a0a);
+ }
+
+ .monitor-bezel {
+ background: linear-gradient(135deg, #1a1a1a 0%, #0a0a0a 50%, #000000 100%);
+ }
+}
+
+/* Print Styles */
+@media print {
+ .matrix-rain,
+ .crt-effect::before,
+ .crt-effect::after,
+ .neon-glow,
+ .data-stream::before,
+ .circuit-trace::after,
+ .scanlines::after {
+ display: none !important;
+ }
+
+ .retro-button,
+ .terminal-window {
+ border: 2px solid #000 !important;
+ background: #fff !important;
+ color: #000 !important;
+ }
+}
+
+/* Mobile Optimizations */
+@media (max-width: 768px) {
+ .retro-button {
+ padding: 0.5rem 1rem;
+ font-size: 0.9rem;
+ }
+
+ .terminal-window {
+ padding: 0.75rem;
+ font-size: 0.9rem;
+ }
+
+ .digital-clock {
+ font-size: 0.8rem;
+ padding: 0.25rem 0.5rem;
+ }
+}
+
+/* Focus States for Accessibility */
+.retro-button:focus,
+.terminal-window:focus {
+ outline: 2px solid var(--retro-green);
+ outline-offset: 2px;
+}