Skip to content

mroxso/zelo-news

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

131 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Zelo.news

A Decentralized Blogging Platform Built on Nostr

Zelo.news is a modern, censorship-resistant blogging platform powered by the Nostr protocol. Write, publish, and share long-form content without intermediaries or platform restrictions. Your content lives on a decentralized network, giving you true ownership and freedom of expression.

✨ Features

  • πŸ“ Long-form Publishing: Write and publish articles using NIP-23 (long-form content)
  • πŸ’¬ Comments & Engagement: Built-in comment system with threaded discussions
  • ⚑ Lightning Zaps: Support your favorite writers with instant Bitcoin payments
  • πŸ” Censorship-Resistant: Content stored across multiple Nostr relays
  • 🎨 Beautiful Design: Clean, distraction-free reading experience with light/dark themes
  • πŸ‘€ User Profiles: Follow writers and build your audience
  • 🌐 Multi-Relay Support: Connect to any Nostr relay for maximum reach
  • πŸ“± Responsive: Optimized for all devices - desktop, tablet, and mobile

οΏ½ Quick Start

# Clone the repository
git clone https://github.com/mroxso/zelo-news.git
cd zelo-news

# Install dependencies
npm install

# Start development server
npm run dev

# Build for production
npm run build

πŸ›  Technology Stack

  • React 18.x: Modern React with hooks and concurrent rendering
  • TypeScript: Full type safety for robust code
  • TailwindCSS 3.x: Utility-first styling with custom design system
  • Vite: Lightning-fast build tool and development server
  • Nostrify: Comprehensive Nostr protocol implementation
  • shadcn/ui: Beautiful, accessible UI components
  • TanStack Query: Powerful data fetching and caching
  • React Router: Seamless client-side navigation
  • Markdown Support: Full markdown rendering for articles

πŸ“– How It Works

Zelo.news leverages the Nostr protocol to create a truly decentralized blogging platform:

  1. Content Publishing: Articles are published as NIP-23 events (long-form content)
  2. Distributed Storage: Content is stored across multiple Nostr relays
  3. User Identity: Writers and readers use Nostr key pairs (npub/nsec)
  4. Comments: NIP-10 threaded comments enable discussions
  5. Monetization: NIP-57 Lightning zaps allow instant micropayments
  6. No Central Server: No single point of failure or censorship

οΏ½ Key Features for Writers

Publishing Tools

  • Rich Text Editor: Write with markdown support for formatting
  • Draft Management: Save and edit posts before publishing
  • Media Uploads: Add images and media via Blossom servers (NIP-94)
  • SEO Friendly: Articles include metadata for better discoverability
  • Version History: All edits preserved on the Nostr network

Monetization

  • Lightning Zaps: Receive instant Bitcoin tips from readers
  • Wallet Connect: Support for WebLN and NWC (NIP-47)
  • Transparent: No platform fees or middlemen

Audience Building

  • Profile Pages: Showcase your published articles
  • User Profiles: Display name, bio, avatar, and social links
  • Engagement Metrics: See comments and zaps on your content
  • Multi-Account: Manage multiple writer identities

πŸ”‘ Key Features for Readers

Discovery & Reading

  • Clean Interface: Distraction-free reading experience
  • Infinite Scroll: Seamless browsing through articles
  • Search & Filter: Find content by author, topic, or relay
  • Responsive Design: Perfect reading on any device

Engagement

  • Comments: Participate in threaded discussions (NIP-10)
  • Zap Authors: Support writers with Lightning payments
  • Save & Share: Bookmark articles and share via Nostr identifiers
  • Follow Authors: Keep track of your favorite writers

Privacy & Control

  • No Tracking: No analytics or data collection
  • Relay Choice: Choose which relays to read from
  • Key Management: Use browser extensions or your own keys
  • True Ownership: Your identity and data belong to you

🌐 Nostr Protocol Integration

Zelo.news implements several Nostr Improvement Proposals (NIPs):

  • NIP-01: Basic protocol flow and event structure
  • NIP-07: Browser extension signing (Alby, nos2x, etc.)
  • NIP-10: Threaded comment system
  • NIP-19: Identifier routing (npub, note, naddr, nevent)
  • NIP-23: Long-form content (blog posts)
  • NIP-25: Reactions and likes
  • NIP-44: Encrypted messaging
  • NIP-57: Lightning zaps and monetization
  • NIP-94: File metadata and uploads

πŸ” Privacy & Security

  • Self-Sovereign Identity: You control your keys, you control your content
  • No Account Creation: Use existing Nostr keys or browser extensions
  • Encrypted Options: Support for private content via NIP-44
  • Open Source: Fully transparent codebase for security audits
  • Multi-Relay: Content distributed across multiple relays for redundancy

πŸ“ Project Structure

src/
β”œβ”€β”€ components/          
β”‚   β”œβ”€β”€ ui/              # 48+ shadcn/ui components
β”‚   β”œβ”€β”€ auth/            # Login and account management
β”‚   β”œβ”€β”€ comments/        # Comment system
β”‚   β”œβ”€β”€ BlogHeader.tsx   # Site header with navigation
β”‚   β”œβ”€β”€ BlogPostForm.tsx # Article editor
β”‚   └── MarkdownContent.tsx # Markdown renderer
β”œβ”€β”€ hooks/               
β”‚   β”œβ”€β”€ useNostr.ts      # Nostr protocol integration
β”‚   β”œβ”€β”€ useBlogPosts.ts  # Fetch articles
β”‚   β”œβ”€β”€ useAuthor.ts     # User profile data
β”‚   β”œβ”€β”€ useComments.ts   # Comment functionality
β”‚   └── useZaps.ts       # Lightning payments
β”œβ”€β”€ pages/               
β”‚   β”œβ”€β”€ BlogHomePage.tsx # Homepage with article feed
β”‚   β”œβ”€β”€ ArticlePage.tsx # Individual article view
β”‚   β”œβ”€β”€ CreatePostPage.tsx # Article editor
β”‚   └── EditPostPage.tsx # Edit existing articles
β”œβ”€β”€ contexts/            # React context providers
└── lib/                 # Utility functions

πŸ’» Development

Prerequisites

  • Node.js 18+ and npm
  • A Nostr browser extension for testing (optional but recommended)

Local Development

# Install dependencies
npm install

# Start development server
npm run dev

# Run tests
npm run test

# Build for production
npm run build

# Preview production build
npm run preview

Environment Variables

Create a .env file for custom configuration:

# Optional: Default relay URL
VITE_DEFAULT_RELAY=wss://relay.nostr.band

# Optional: App name
VITE_APP_NAME=zelo.news

πŸš€ Deployment

Deploy to Netlify/Vercel

# Build the project
npm run build

# The dist/ folder contains your static site

Deploy to NostrDeploy

npm run deploy

The app is a static site and can be hosted anywhere that supports single-page applications.

🀝 Contributing

Zelo.news is open source and welcomes contributions! Whether you're fixing bugs, adding features, or improving documentation, we'd love your help.

How to Contribute

  1. Fork the repository
  2. Create a feature branch: git checkout -b feature/amazing-feature
  3. Make your changes and test thoroughly
  4. Run tests: npm run test
  5. Commit your changes: git commit -m 'Add amazing feature'
  6. Push to your branch: git push origin feature/amazing-feature
  7. Open a Pull Request

Development Guidelines

  • Write TypeScript with proper types (no any)
  • Follow the existing code style
  • Add tests for new features
  • Update documentation as needed
  • Test on multiple relays

πŸ“š Resources

πŸ› Bug Reports & Feature Requests

Found a bug or have an idea? Open an issue on GitHub!

  • Bug Reports: Include steps to reproduce, expected behavior, and actual behavior
  • Feature Requests: Describe the feature and why it would be useful
  • Questions: Join the Nostr community or open a discussion

🌟 Acknowledgments

Built with:

  • MKStack - Nostr development framework
  • Nostrify - Nostr protocol implementation
  • shadcn/ui - UI component library
  • The entire Nostr community

πŸ’¬ Connect


Made with ⚑ and πŸ’œ for the decentralized web

Write freely. Publish independently. Own your content forever.

About

A nostr blogging platform

Topics

Resources

Stars

Watchers

Forks

Contributors

Languages