This commit is contained in:
despiegk 2025-08-03 09:11:51 +02:00
parent ccf8175ba5
commit 9d0ea42900
13 changed files with 33 additions and 29 deletions

View File

@ -9,6 +9,7 @@ description: "Unlike corporate AI that serves shareholders, Personal Agents work
featured: false
draft: false
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.

View File

@ -9,6 +9,7 @@ description: "How HERO's zero-knowledge architecture enables trust without compr
featured: false
draft: false
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.

View File

@ -1,5 +1,6 @@
---
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.
image: /src/assets/disputeresolution.jpg
---

View File

@ -1,7 +1,8 @@
---
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.
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.

View File

@ -1,5 +1,6 @@
---
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.
image: /src/assets/freezone.jpg
---

View File

@ -1,5 +1,6 @@
---
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.
image: /src/assets/stresssfree.jpg
---

View File

@ -9,6 +9,7 @@ description: "Tracing the journey from corporate-controlled identities to blockc
featured: false
draft: false
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.

View File

@ -8,6 +8,7 @@ image: "/src/assets/heart.jpg"
featured: false
draft: false
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.

View File

@ -8,6 +8,7 @@ image: "/src/assets/balls.jpg"
featured: false
draft: false
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.

View File

@ -9,6 +9,7 @@ description: "Why paying $20/month for digital freedom is the best investment yo
featured: false
draft: false
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.

View File

@ -9,6 +9,7 @@ description: "In an era where tech giants control our digital lives, Personal Ag
featured: true
draft: false
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.

View File

@ -10,9 +10,10 @@ import { Buffer } from 'buffer'; // Explicitly import Buffer
// Import images
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
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 [posts, setPosts] = useState([]);
@ -35,8 +36,8 @@ const Blog = () => {
loadedPosts.push({
...frontmatter,
slug,
// Ensure image path is correct for Vite
image: frontmatter.image ? new URL(frontmatter.image, import.meta.url).href : '/src/assets/default.jpg'
// Ensure image path is correct for Vite, use defaultPostImage as fallback
image: frontmatter.image ? new URL(frontmatter.image, import.meta.url).href : defaultPostImage
});
}
}
@ -251,13 +252,12 @@ const Blog = () => {
</div>
<div className="grid md:grid-cols-2 lg:grid-cols-3 gap-8">
{blogPosts.map((post, index) => (
<Link to={`/blog/${post.slug}`} className="block">
{blogPosts.map((post) => (
<Link to={`/blog/${post.slug}`} className="block" key={post.slug}>
<motion.article
key={index}
initial={{ opacity: 0, y: 30 }}
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 }}
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>
<div className="p-6">
<div className="flex flex-wrap gap-2 mb-3">
{post.tags.slice(0, 2).map((tag) => (
@ -366,3 +365,4 @@ const Blog = () => {
export default Blog;

View File

@ -16,32 +16,25 @@ const BlogPost = () => {
useEffect(() => {
const loadPost = async () => {
try {
const allModules = import.meta.glob('../blogs/*.md', { as: 'raw', eager: true });
let foundContent = null;
const allModules = import.meta.glob('../blogs/*.md', { query: '?raw', import: 'default', eager: true });
let foundPost = null;
const possibleFileNames = [
`capability_${slug}.md`,
`component_${slug}.md`,
`tech_${slug}.md`,
`${slug}.md` // For general blog posts
];
for (const path in allModules) {
const content = allModules[path];
const { data: frontmatter, content: markdownContent } = matter(content);
// Generate slug from filename if not present in frontmatter
const postSlug = frontmatter.slug || path.split('/').pop().replace('.md', '');
for (const fileName of possibleFileNames) {
const filePath = `../blogs/${fileName}`;
if (allModules[filePath]) {
foundContent = allModules[filePath];
// Check if the generated slug matches the URL slug
if (postSlug === slug) {
foundPost = { frontmatter, content: markdownContent };
break;
}
}
if (foundContent) {
const content = foundContent;
const { data: frontmatter, content: markdownContent } = matter(content);
setPost({
frontmatter,
content: markdownContent
});
if (foundPost) {
setPost(foundPost);
} else {
setError('Post not found');
}