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 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.

View File

@ -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.

View File

@ -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
--- ---

View File

@ -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.

View File

@ -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
--- ---

View File

@ -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
--- ---

View File

@ -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.

View File

@ -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.

View File

@ -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.

View File

@ -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.

View File

@ -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.

View File

@ -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;

View File

@ -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');
} }