...
This commit is contained in:
parent
ccf8175ba5
commit
9d0ea42900
@ -9,6 +9,7 @@ description: "Unlike corporate AI that serves shareholders, Personal Agents work
|
|||||||
featured: false
|
featured: false
|
||||||
draft: false
|
draft: false
|
||||||
cat: "blog"
|
cat: "blog"
|
||||||
|
slug: "ai-that-serves-you-the-personal-agent-revolution"
|
||||||
---
|
---
|
||||||
|
|
||||||
Unlike corporate AI that serves shareholders, Personal Agents work exclusively for you. Learn how this changes everything about AI interaction.
|
Unlike corporate AI that serves shareholders, Personal Agents work exclusively for you. Learn how this changes everything about AI interaction.
|
||||||
|
@ -9,6 +9,7 @@ description: "How HERO's zero-knowledge architecture enables trust without compr
|
|||||||
featured: false
|
featured: false
|
||||||
draft: false
|
draft: false
|
||||||
cat: "blog"
|
cat: "blog"
|
||||||
|
slug: "building-trust-in-a-zero-knowledge-world"
|
||||||
---
|
---
|
||||||
|
|
||||||
How HERO's zero-knowledge architecture enables trust without compromising privacy. A deep dive into the cryptographic foundations of digital sovereignty.
|
How HERO's zero-knowledge architecture enables trust without compromising privacy. A deep dive into the cryptographic foundations of digital sovereignty.
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
---
|
---
|
||||||
title: Dispute Resolution (AI & People)
|
title: Dispute Resolution (AI & People)
|
||||||
|
slug: dispute-resolution-ai-and-people
|
||||||
description: Explore the innovative dispute resolution mechanisms available within a digital freezone, combining AI efficiency with human oversight.
|
description: Explore the innovative dispute resolution mechanisms available within a digital freezone, combining AI efficiency with human oversight.
|
||||||
image: /src/assets/disputeresolution.jpg
|
image: /src/assets/disputeresolution.jpg
|
||||||
---
|
---
|
||||||
|
@ -1,7 +1,8 @@
|
|||||||
---
|
---
|
||||||
title: Keep Your Assets Safe Now and in Future
|
title: Keep Your Assets Safe Now and in Future
|
||||||
|
slug: keep-your-assets-safe-now-and-in-future
|
||||||
description: Discover how a digital freezone provides robust protection for your assets against current and future threats.
|
description: Discover how a digital freezone provides robust protection for your assets against current and future threats.
|
||||||
image: /src/assets/theworld.jpg
|
image: /src/assets/world.jpg
|
||||||
---
|
---
|
||||||
|
|
||||||
In an era of increasing digital threats and economic uncertainties, securing your assets is more critical than ever. A digital freezone offers a fortified environment designed to protect your digital wealth, ensuring its safety both today and in the years to come.
|
In an era of increasing digital threats and economic uncertainties, securing your assets is more critical than ever. A digital freezone offers a fortified environment designed to protect your digital wealth, ensuring its safety both today and in the years to come.
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
---
|
---
|
||||||
title: Legal and Financial Sovereignty
|
title: Legal and Financial Sovereignty
|
||||||
|
slug: legal-and-financial-sovereignty
|
||||||
description: Understand how a digital freezone provides unparalleled legal and financial sovereignty for your operations.
|
description: Understand how a digital freezone provides unparalleled legal and financial sovereignty for your operations.
|
||||||
image: /src/assets/freezone.jpg
|
image: /src/assets/freezone.jpg
|
||||||
---
|
---
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
---
|
---
|
||||||
title: Ultimate in Convenience and Features
|
title: Ultimate in Convenience and Features
|
||||||
|
slug: ultimate-in-convenience-and-features
|
||||||
description: Experience unparalleled convenience and a rich suite of features designed to make your business life fun again within a digital freezone.
|
description: Experience unparalleled convenience and a rich suite of features designed to make your business life fun again within a digital freezone.
|
||||||
image: /src/assets/stresssfree.jpg
|
image: /src/assets/stresssfree.jpg
|
||||||
---
|
---
|
||||||
|
@ -9,6 +9,7 @@ description: "Tracing the journey from corporate-controlled identities to blockc
|
|||||||
featured: false
|
featured: false
|
||||||
draft: false
|
draft: false
|
||||||
cat: "blog"
|
cat: "blog"
|
||||||
|
slug: "from-centralized-to-sovereign-the-evolution-of-digital-identity"
|
||||||
---
|
---
|
||||||
|
|
||||||
Tracing the journey from corporate-controlled identities to blockchain-verified, user-owned digital personas. The future is sovereign.
|
Tracing the journey from corporate-controlled identities to blockchain-verified, user-owned digital personas. The future is sovereign.
|
||||||
|
@ -8,6 +8,7 @@ image: "/src/assets/heart.jpg"
|
|||||||
featured: false
|
featured: false
|
||||||
draft: false
|
draft: false
|
||||||
cat: "blog"
|
cat: "blog"
|
||||||
|
slug: "peer-to-peer-communication-cutting-out-the-middleman"
|
||||||
---
|
---
|
||||||
|
|
||||||
How HERO enables direct communication between Personal Agents without corporate intermediaries. The future of private messaging is here.
|
How HERO enables direct communication between Personal Agents without corporate intermediaries. The future of private messaging is here.
|
||||||
|
@ -8,6 +8,7 @@ image: "/src/assets/balls.jpg"
|
|||||||
featured: false
|
featured: false
|
||||||
draft: false
|
draft: false
|
||||||
cat: "blog"
|
cat: "blog"
|
||||||
|
slug: "quantum-safe-storage-protecting-your-digital-legacy"
|
||||||
---
|
---
|
||||||
|
|
||||||
As quantum computing threatens traditional encryption, HERO's quantum-safe storage ensures your data remains secure for generations.
|
As quantum computing threatens traditional encryption, HERO's quantum-safe storage ensures your data remains secure for generations.
|
||||||
|
@ -9,6 +9,7 @@ description: "Why paying $20/month for digital freedom is the best investment yo
|
|||||||
featured: false
|
featured: false
|
||||||
draft: false
|
draft: false
|
||||||
cat: "blog"
|
cat: "blog"
|
||||||
|
slug: "the-economics-of-digital-sovereignty"
|
||||||
---
|
---
|
||||||
|
|
||||||
Why paying $20/month for digital freedom is the best investment you'll ever make. Breaking down the true cost of corporate data harvesting.
|
Why paying $20/month for digital freedom is the best investment you'll ever make. Breaking down the true cost of corporate data harvesting.
|
||||||
|
@ -9,6 +9,7 @@ description: "In an era where tech giants control our digital lives, Personal Ag
|
|||||||
featured: true
|
featured: true
|
||||||
draft: false
|
draft: false
|
||||||
cat: "blog"
|
cat: "blog"
|
||||||
|
slug: "the-future-of-digital-sovereignty-why-personal-agents-matter"
|
||||||
---
|
---
|
||||||
|
|
||||||
In an era where tech giants control our digital lives, Personal Agents represent a fundamental shift toward individual sovereignty and privacy. Discover how HERO is leading this revolution.
|
In an era where tech giants control our digital lives, Personal Agents represent a fundamental shift toward individual sovereignty and privacy. Discover how HERO is leading this revolution.
|
||||||
|
@ -10,9 +10,10 @@ import { Buffer } from 'buffer'; // Explicitly import Buffer
|
|||||||
|
|
||||||
// Import images
|
// Import images
|
||||||
import blogBackground from '../assets/myhero.jpg';
|
import blogBackground from '../assets/myhero.jpg';
|
||||||
|
import defaultPostImage from '../assets/myhero.jpg'; // Using an existing image as a fallback
|
||||||
|
|
||||||
// Use Vite's import.meta.glob to import all markdown files
|
// Use Vite's import.meta.glob to import all markdown files
|
||||||
const modules = import.meta.glob('../blogs/*.md', { as: 'raw', eager: true });
|
const modules = import.meta.glob('../blogs/*.md', { query: '?raw', import: 'default', eager: true });
|
||||||
|
|
||||||
const Blog = () => {
|
const Blog = () => {
|
||||||
const [posts, setPosts] = useState([]);
|
const [posts, setPosts] = useState([]);
|
||||||
@ -35,8 +36,8 @@ const Blog = () => {
|
|||||||
loadedPosts.push({
|
loadedPosts.push({
|
||||||
...frontmatter,
|
...frontmatter,
|
||||||
slug,
|
slug,
|
||||||
// Ensure image path is correct for Vite
|
// Ensure image path is correct for Vite, use defaultPostImage as fallback
|
||||||
image: frontmatter.image ? new URL(frontmatter.image, import.meta.url).href : '/src/assets/default.jpg'
|
image: frontmatter.image ? new URL(frontmatter.image, import.meta.url).href : defaultPostImage
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -251,13 +252,12 @@ const Blog = () => {
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div className="grid md:grid-cols-2 lg:grid-cols-3 gap-8">
|
<div className="grid md:grid-cols-2 lg:grid-cols-3 gap-8">
|
||||||
{blogPosts.map((post, index) => (
|
{blogPosts.map((post) => (
|
||||||
<Link to={`/blog/${post.slug}`} className="block">
|
<Link to={`/blog/${post.slug}`} className="block" key={post.slug}>
|
||||||
<motion.article
|
<motion.article
|
||||||
key={index}
|
|
||||||
initial={{ opacity: 0, y: 30 }}
|
initial={{ opacity: 0, y: 30 }}
|
||||||
whileInView={{ opacity: 1, y: 0 }}
|
whileInView={{ opacity: 1, y: 0 }}
|
||||||
transition={{ duration: 0.6, delay: index * 0.1 }}
|
transition={{ duration: 0.6, delay: blogPosts.indexOf(post) * 0.1 }}
|
||||||
viewport={{ once: true }}
|
viewport={{ once: true }}
|
||||||
className="glass-effect rounded-xl overflow-hidden hover:border-purple-400/30 transition-all duration-300 hover-lift group"
|
className="glass-effect rounded-xl overflow-hidden hover:border-purple-400/30 transition-all duration-300 hover-lift group"
|
||||||
>
|
>
|
||||||
@ -269,7 +269,6 @@ const Blog = () => {
|
|||||||
/>
|
/>
|
||||||
<div className="absolute inset-0"></div>
|
<div className="absolute inset-0"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div className="p-6">
|
<div className="p-6">
|
||||||
<div className="flex flex-wrap gap-2 mb-3">
|
<div className="flex flex-wrap gap-2 mb-3">
|
||||||
{post.tags.slice(0, 2).map((tag) => (
|
{post.tags.slice(0, 2).map((tag) => (
|
||||||
@ -366,3 +365,4 @@ const Blog = () => {
|
|||||||
|
|
||||||
export default Blog;
|
export default Blog;
|
||||||
|
|
||||||
|
|
||||||
|
@ -16,32 +16,25 @@ const BlogPost = () => {
|
|||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
const loadPost = async () => {
|
const loadPost = async () => {
|
||||||
try {
|
try {
|
||||||
const allModules = import.meta.glob('../blogs/*.md', { as: 'raw', eager: true });
|
const allModules = import.meta.glob('../blogs/*.md', { query: '?raw', import: 'default', eager: true });
|
||||||
let foundContent = null;
|
let foundPost = null;
|
||||||
|
|
||||||
const possibleFileNames = [
|
for (const path in allModules) {
|
||||||
`capability_${slug}.md`,
|
const content = allModules[path];
|
||||||
`component_${slug}.md`,
|
const { data: frontmatter, content: markdownContent } = matter(content);
|
||||||
`tech_${slug}.md`,
|
|
||||||
`${slug}.md` // For general blog posts
|
// Generate slug from filename if not present in frontmatter
|
||||||
];
|
const postSlug = frontmatter.slug || path.split('/').pop().replace('.md', '');
|
||||||
|
|
||||||
for (const fileName of possibleFileNames) {
|
// Check if the generated slug matches the URL slug
|
||||||
const filePath = `../blogs/${fileName}`;
|
if (postSlug === slug) {
|
||||||
if (allModules[filePath]) {
|
foundPost = { frontmatter, content: markdownContent };
|
||||||
foundContent = allModules[filePath];
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (foundContent) {
|
if (foundPost) {
|
||||||
const content = foundContent;
|
setPost(foundPost);
|
||||||
const { data: frontmatter, content: markdownContent } = matter(content);
|
|
||||||
|
|
||||||
setPost({
|
|
||||||
frontmatter,
|
|
||||||
content: markdownContent
|
|
||||||
});
|
|
||||||
} else {
|
} else {
|
||||||
setError('Post not found');
|
setError('Post not found');
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user