diff --git a/src/App.jsx b/src/App.jsx
index 514b53d..20dc15b 100644
--- a/src/App.jsx
+++ b/src/App.jsx
@@ -26,6 +26,7 @@ function App() {
} />
} />
} />
+ } />
diff --git a/src/assets/create.jpg b/src/assets/create.jpg
new file mode 100644
index 0000000..a3e6de8
Binary files /dev/null and b/src/assets/create.jpg differ
diff --git a/src/assets/girl.jpg b/src/assets/girl.jpg
deleted file mode 100644
index b71f3a5..0000000
Binary files a/src/assets/girl.jpg and /dev/null differ
diff --git a/src/assets/transact.jpg b/src/assets/transact.jpg
index a3e6de8..b71f3a5 100644
Binary files a/src/assets/transact.jpg and b/src/assets/transact.jpg differ
diff --git a/src/content/blog/communicate.md b/src/content/home/communicate.md
similarity index 100%
rename from src/content/blog/communicate.md
rename to src/content/home/communicate.md
diff --git a/src/content/blog/create.md b/src/content/home/create.md
similarity index 96%
rename from src/content/blog/create.md
rename to src/content/home/create.md
index d1212c2..92df504 100644
--- a/src/content/blog/create.md
+++ b/src/content/home/create.md
@@ -2,7 +2,7 @@
title: "Create"
description: "Build documents, videos, and creative assets collaboratively with AI assistance"
icon: "Zap"
-image: "heart.jpg"
+image: "create.jpg"
order: 2
slug: "create"
diff --git a/src/content/blog/develop.md b/src/content/home/develop.md
similarity index 100%
rename from src/content/blog/develop.md
rename to src/content/home/develop.md
diff --git a/src/content/blog/discover.md b/src/content/home/discover.md
similarity index 100%
rename from src/content/blog/discover.md
rename to src/content/home/discover.md
diff --git a/src/content/blog/share.md b/src/content/home/share.md
similarity index 100%
rename from src/content/blog/share.md
rename to src/content/home/share.md
diff --git a/src/content/blog/transact.md b/src/content/home/transact.md
similarity index 100%
rename from src/content/blog/transact.md
rename to src/content/home/transact.md
diff --git a/src/pages/BlogPost.jsx b/src/pages/BlogPost.jsx
index 45dc17f..dc98a18 100644
--- a/src/pages/BlogPost.jsx
+++ b/src/pages/BlogPost.jsx
@@ -44,7 +44,12 @@ const BlogPost = () => {
contentType = 'freezone';
currentSlug = pathSegments[1];
basePath = '../content/freezone/';
- } else {
+ } else if (pathSegments[0] === 'home' && pathSegments.length >= 2) {
+ contentType = 'home';
+ currentSlug = pathSegments[1];
+ basePath = '../content/home/';
+ }
+ else {
setError('Invalid URL path for content.');
setLoading(false);
return;
@@ -108,6 +113,8 @@ const BlogPost = () => {
return '/technology';
case 'freezone':
return '/freezone';
+ case 'home':
+ return '/'; // Or a more specific home content listing page if it exists
default:
return '/';
}
diff --git a/src/pages/Home.jsx b/src/pages/Home.jsx
index 8778b54..27ac75f 100644
--- a/src/pages/Home.jsx
+++ b/src/pages/Home.jsx
@@ -1,7 +1,7 @@
import React, { useEffect, useState } from 'react';
import { motion } from 'framer-motion';
import { Link } from 'react-router-dom';
-import { Shield, Brain, Users, Lock, Zap, Heart } from 'lucide-react';
+import { Shield, Brain, Users, Lock, Zap, Heart, MessageSquare, Lightbulb, Globe, Code, Share2, DollarSign } from 'lucide-react';
import HeroSection from '../components/HeroSection';
import Section from '../components/Section';
import FeatureCard from '../components/FeatureCard';
@@ -17,108 +17,51 @@ import transactImage from '../assets/transact.jpg'; // Digital transaction
import developImage from '../assets/develop.jpg'; // Development scene
import communicateImage from '../assets/communicate.jpg'; // Communication scene
-// Use Vite's import.meta.glob to import all capability markdown files
-const capabilityModules = import.meta.glob('../blogs/capability_*.md', { as: 'raw', eager: true });
+// Use Vite's import.meta.glob to import all home content markdown files and images
+const homeModules = import.meta.glob('../content/home/*.md', { as: 'raw', eager: true });
+const imageModules = import.meta.glob('../assets/*.jpg', { eager: true, import: 'default' });
+const iconComponents = {
+ Shield, Brain, Users, Lock, Zap, Heart, MessageSquare, Lightbulb, Globe, Code, Share2, DollarSign
+};
const Home = () => {
- const [capabilities, setCapabilities] = useState([]);
+ const [homeContent, setHomeContent] = useState([]);
const [loading, setLoading] = useState(true);
useEffect(() => {
- const loadCapabilities = async () => {
+ const loadHomeContent = async () => {
try {
- const loadedCapabilities = [];
+ const loadedHomeContent = [];
- for (const path in capabilityModules) {
- const content = capabilityModules[path];
+ for (const path in homeModules) {
+ const content = homeModules[path];
const { data: frontmatter } = matter(content);
- // Map icon strings to actual components
- const iconMap = {
- 'Brain': ,
- 'Zap': ,
- 'Shield': ,
- 'Users': ,
- 'Lock': ,
- 'Heart':
- };
+ const IconComponent = iconComponents[frontmatter.iconname];
+ const imagePath = `../assets/${frontmatter.image}`; // Construct full path
+ const importedImage = imageModules[imagePath];
- // Map image paths to actual imports
- const imageMap = {
- '/src/assets/communicate.jpg': communicateImage,
- '/src/assets/heart.jpg': heartTechImage,
- '/src/assets/discover.jpg': networkImage,
- '/src/assets/develop.jpg': developImage,
- '/src/assets/share.jpg': privacyImage,
- '/src/assets/transact.jpg': transactImage
- };
-
- loadedCapabilities.push({
- icon: iconMap[frontmatter.icon] || ,
+ loadedHomeContent.push({
+ icon: IconComponent ? : , // Default icon
title: frontmatter.title,
description: frontmatter.description,
- image: imageMap[frontmatter.image] || heartTechImage,
+ image: importedImage,
order: frontmatter.order || 999,
slug: frontmatter.slug || frontmatter.title.toLowerCase().replace(/\s+/g, '-')
});
}
// Sort by order
- loadedCapabilities.sort((a, b) => a.order - b.order);
- setCapabilities(loadedCapabilities);
+ loadedHomeContent.sort((a, b) => a.order - b.order);
+ setHomeContent(loadedHomeContent);
} catch (error) {
- console.error('Error loading capabilities:', error);
- // Fallback to static data if loading fails
- setCapabilities([
- {
- icon: ,
- title: "Communicate",
- description: "Secure messaging, voice, and video chat — all managed privately by your Personal Agent",
- image: communicateImage,
- slug: "communicate"
- },
- {
- icon: ,
- title: "Create",
- description: "Build documents, videos, and creative assets collaboratively with AI assistance",
- image: heartTechImage,
- slug: "create"
- },
- {
- icon: ,
- title: "Discover",
- description: "Browse and search using authentic sources and AI assistance while maintaining privacy",
- image: networkImage,
- slug: "discover"
- },
- {
- icon: ,
- title: "Develop",
- description: "Build and deploy applications faster with local AI and secure storage",
- image: developImage,
- slug: "develop"
- },
- {
- icon: ,
- title: "Share",
- description: "Distribute content without central platforms — sovereignly and securely",
- image: privacyImage,
- slug: "share"
- },
- {
- icon: ,
- title: "Transact",
- description: "Send and receive digital value safely and without intermediaries",
- image: transactImage,
- slug: "transact"
- }
- ]);
+ console.error('Error loading home content:', error);
} finally {
setLoading(false);
}
};
- loadCapabilities();
+ loadHomeContent();
}, []);
const benefits = [
@@ -289,13 +232,13 @@ const Home = () => {
))
) : (
- capabilities.map((capability, index) => (
-
+ homeContent.map((item, index) => (
+