Skip to content

FrankFMY/AURA

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

136 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

✨ AURA

Decentralized Social Messenger for the Free World

License: AGPL v3 Nostr SvelteKit TypeScript PRs Welcome


AURA Logo

AURA is a censorship-resistant social messenger built on the Nostr protocol.
It empowers people to communicate freely, without fear of surveillance or censorship.

Because freedom of speech is a human right, not a privilege.

πŸš€ Live Demo Β· πŸ“– Documentation Β· πŸ› Report Bug Β· πŸ’‘ Request Feature


🌟 Why AURA?

In a world where social platforms control what you see, who you can reach, and what you can say β€” AURA offers an alternative. Built on the Nostr protocol, AURA is:

  • πŸ”“ Truly Decentralized β€” No single company controls your data or can ban you
  • πŸ›‘οΈ Censorship Resistant β€” Your voice cannot be silenced by any authority
  • πŸ” Privacy First β€” End-to-end encrypted direct messages (NIP-17 Gift Wraps)
  • ⚑ Lightning Integrated β€” Send and receive Bitcoin payments via NWC
  • πŸ’° eCash Support β€” Anonymous payments with Cashu tokens
  • πŸ›’ Decentralized Marketplace β€” Buy and sell with Bitcoin (NIP-15)
  • πŸ€– AI Chat β€” Decentralized AI via Data Vending Machines (NIP-90)
  • 🌍 Open Source β€” Transparent, auditable, and community-driven
  • πŸ“± Mobile Ready β€” PWA + Capacitor for native Android/iOS builds

"They can't stop the signal."


✨ Features

🏠 Social Feed

  • Global and personalized feeds
  • Real-time updates via WebSocket subscriptions
  • Infinite scroll with optimistic UI updates
  • Create posts, reply, repost, and react

πŸ’¬ Private Messaging

  • End-to-end encrypted DMs with NIP-17 Gift Wraps (metadata hidden)
  • Legacy NIP-04 support for backwards compatibility
  • Conversation list with unread indicators
  • Real-time message delivery with offline queue
  • Send eCash (Cashu tokens) in messages

πŸ‘€ Profiles

  • View and edit your Nostr profile
  • Follow/unfollow users
  • Contact list management (NIP-02)
  • Verified user badges (NIP-05)

πŸ’° Lightning Wallet & eCash

  • Nostr Wallet Connect (NWC) integration
  • Cashu eCash for anonymous payments
  • Send and receive Bitcoin via Lightning
  • Swap between Lightning ⇄ eCash
  • Transaction history
  • ⚑ Zap support for posts and users (NIP-57)

πŸ›’ Marketplace (NIP-15)

  • Browse decentralized product listings
  • Filter by category, price, condition
  • Web of Trust integration for seller reputation
  • Direct messaging with sellers
  • Pay with Lightning or eCash

πŸ€– AI Chat (NIP-90)

  • Decentralized AI via Data Vending Machines
  • Pay-per-use with Lightning sats
  • Text generation, translation, summarization
  • No accounts, no tracking

πŸ” Advanced Search

  • Search notes by content
  • Find users by name or npub
  • Discover hashtags with #tag filters
  • Advanced filters (date range, author, content type)
  • Search history and saved searches
  • Trending topics

πŸ‘₯ Group Chats (NIP-28)

  • Public channels for communities
  • Real-time group messaging
  • Create and join groups
  • Member management
  • Reply threading

πŸ“ž Video/Audio Calls

  • One-on-one video calls via Jitsi
  • Voice calls support
  • Call invite via DM
  • In-call controls (mute, video toggle, screen share)
  • Call history

πŸ“– Stories (24h Ephemeral Posts)

  • Create image/text stories
  • Stories bar with avatars
  • Full-screen story viewer
  • Auto-delete after 24 hours
  • View tracking

πŸ“Š Polls

  • Create polls with 2-4 options
  • Vote on polls
  • Real-time results
  • Optional end time

πŸ”– Bookmarks (NIP-51)

  • Save posts for later
  • Private bookmark list
  • Quick access from sidebar

🎀 Voice Messages

  • Hold-to-record in DMs
  • Waveform visualization
  • Play/pause controls
  • Upload via Blossom

πŸ”” Push Notifications

  • Web Push API support
  • Notification settings (mentions, DMs, zaps)
  • Service Worker integration

πŸ“± QR Code Profile

  • Generate profile QR code
  • Share nostr:npub URI
  • Downloadable image

βš™οΈ Settings

  • Relay management
  • Theme customization (light/dark)
  • Language selection (EN, ES, RU, ZH)
  • Data export and cache management

🎨 Design

AURA features a Liquid Glass visual system β€” an advanced glassmorphism aesthetic inspired by modern UI trends. Sticky headers, sidebars, and navigation bars use tinted blur with specular highlights and spring-like transitions, creating a frosted-glass feel that adapts to both light and dark modes. Combined with a cyberpunk oklch color palette, neon glow effects, and animated gradient borders, the interface delivers a distinctive, immersive experience.


πŸ› οΈ Tech Stack

Category Technology
Framework SvelteKit 2 + Svelte 5
Language TypeScript (strict mode)
Styling Tailwind CSS 4
Nostr NDK (Nostr Dev Kit)
Database Dexie.js (IndexedDB wrapper)
Crypto @noble libraries
Testing Vitest + Playwright
Mobile Capacitor
eCash Cashu-TS
Icons Lucide
Validation Zod

πŸš€ Quick Start

Prerequisites

  • Node.js >= 18.0.0
  • Bun (recommended) or npm/yarn/pnpm

Installation

# Clone the repository
git clone https://github.com/FrankFMY/AURA.git
cd AURA

# Install dependencies
bun install

# Start development server
bun run dev

Open http://localhost:5173 in your browser.

Build for Production

# Create production build
bun run build

# Preview production build
bun run preview

πŸ“– Documentation

Project Structure

AURA/
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ lib/
β”‚   β”‚   β”œβ”€β”€ components/     # Reusable UI components
β”‚   β”‚   β”‚   β”œβ”€β”€ bookmarks/  # Bookmark button
β”‚   β”‚   β”‚   β”œβ”€β”€ calls/      # Video/audio calls UI
β”‚   β”‚   β”‚   β”œβ”€β”€ cashu/      # eCash components
β”‚   β”‚   β”‚   β”œβ”€β”€ feed/       # Feed-related components
β”‚   β”‚   β”‚   β”œβ”€β”€ groups/     # Group chat components
β”‚   β”‚   β”‚   β”œβ”€β”€ media/      # Media upload (Blossom)
β”‚   β”‚   β”‚   β”œβ”€β”€ messages/   # Voice messages
β”‚   β”‚   β”‚   β”œβ”€β”€ notifications/
β”‚   β”‚   β”‚   β”œβ”€β”€ polls/      # Poll creation & voting
β”‚   β”‚   β”‚   β”œβ”€β”€ profile/    # Profile QR code
β”‚   β”‚   β”‚   β”œβ”€β”€ stories/    # Stories bar & viewer
β”‚   β”‚   β”‚   β”œβ”€β”€ verified/   # NIP-05 verification
β”‚   β”‚   β”‚   β”œβ”€β”€ wot/        # Web of Trust components
β”‚   β”‚   β”‚   └── ui/         # Base UI components
β”‚   β”‚   β”œβ”€β”€ core/           # Core utilities (errors, resilience)
β”‚   β”‚   β”œβ”€β”€ db/             # Dexie.js database
β”‚   β”‚   β”œβ”€β”€ i18n/           # Internationalization
β”‚   β”‚   β”œβ”€β”€ services/       # Business logic services
β”‚   β”‚   β”‚   β”œβ”€β”€ blossom/    # Decentralized file storage
β”‚   β”‚   β”‚   β”œβ”€β”€ calls/      # Jitsi video calls
β”‚   β”‚   β”‚   β”œβ”€β”€ crypto/     # Encryption (NIP-44, Gift Wrap)
β”‚   β”‚   β”‚   β”œβ”€β”€ dvm/        # Data Vending Machines (AI)
β”‚   β”‚   β”‚   β”œβ”€β”€ ndk/        # NDK service modules
β”‚   β”‚   β”‚   β”œβ”€β”€ nip05/      # NIP-05 verification
β”‚   β”‚   β”‚   └── wallet/     # NWC + Cashu eCash
β”‚   β”‚   β”œβ”€β”€ stores/         # Svelte 5 runes stores
β”‚   β”‚   β”œβ”€β”€ utils/          # Utility functions
β”‚   β”‚   └── validators/     # Zod schemas & sanitization
β”‚   β”œβ”€β”€ routes/             # SvelteKit routes
β”‚   β”‚   β”œβ”€β”€ ai/             # AI Chat page
β”‚   β”‚   β”œβ”€β”€ bookmarks/      # Saved posts
β”‚   β”‚   β”œβ”€β”€ call/           # Video/audio call page
β”‚   β”‚   β”œβ”€β”€ groups/         # Group chats
β”‚   β”‚   β”œβ”€β”€ marketplace/    # NIP-15 Marketplace
β”‚   β”‚   └── ...
β”‚   └── app.css             # Global styles
β”œβ”€β”€ static/                 # Static assets
β”œβ”€β”€ tests/                  # Test files (646+ tests)
β”‚   β”œβ”€β”€ e2e/                # Playwright E2E tests
β”‚   └── unit/               # Vitest unit tests
β”œβ”€β”€ android/                # Capacitor Android (generated)
└── ...config files

Nostr NIPs Implemented

NIP Description Status
NIP-01 Basic protocol βœ…
NIP-02 Contact List βœ…
NIP-04 Encrypted DMs (legacy) βœ…
NIP-05 DNS Verification βœ…
NIP-07 Browser Extension βœ…
NIP-10 Replies & Threading βœ…
NIP-15 Marketplace Listings βœ…
NIP-17 Gift Wraps (Private DMs) βœ…
NIP-18 Reposts βœ…
NIP-25 Reactions βœ…
NIP-44 Versioned Encryption βœ…
NIP-47 Nostr Wallet Connect βœ…
NIP-57 Lightning Zaps βœ…
NIP-59 Gift Wrap Protocol βœ…
NIP-90 Data Vending Machines (AI) βœ…
NIP-98 HTTP Auth (Blossom) βœ…
NIP-28 Public Channels (Groups) βœ…
NIP-51 Lists (Bookmarks) βœ…

Available Scripts

bun run dev          # Start development server
bun run build        # Build for production
bun run preview      # Preview production build
bun run check        # Type-check with svelte-check
bun run test         # Run unit tests
bun run test:e2e     # Run E2E tests
bun run test:coverage # Run tests with coverage

🌐 Deployment

Vercel (Recommended)

AURA is optimized for deployment on Vercel:

Deploy with Vercel

GitHub Pages

AURA can also be deployed to GitHub Pages using the included workflow.

IPFS (Censorship Resistant)

For maximum censorship resistance, deploy AURA to IPFS:

# Using Pinata (set PINATA_API_KEY and PINATA_API_SECRET first)
bun run deploy:ipfs --provider pinata

# Using local IPFS node
bun run deploy:ipfs --provider local

Once deployed, access AURA via any IPFS gateway:

  • https://ipfs.io/ipfs/<CID>
  • https://dweb.link/ipfs/<CID>
  • https://cloudflare-ipfs.com/ipfs/<CID>

πŸ“± Mobile Build (Android/iOS)

AURA uses Capacitor for native mobile builds:

# Build web assets
bun run build

# Add Android platform (first time only)
bunx cap add android

# Sync web assets to native
bunx cap sync android

# Open in Android Studio
bunx cap open android

Build APK in Android Studio:

  1. Open Android Studio
  2. Build > Build Bundle(s) / APK(s) > Build APK(s)
  3. APK location: android/app/build/outputs/apk/

Requirements:

  • Android Studio with Android SDK
  • For release builds: signing key

🀝 Contributing

Contributions are what make the open source community amazing! Any contributions you make are greatly appreciated.

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

See CONTRIBUTING.md for detailed guidelines.


πŸ”’ Security

AURA takes security seriously. If you discover a security vulnerability, please report it responsibly:

Please do not create public issues for security vulnerabilities.

See SECURITY.md for our security policy.


πŸ“œ License

This project is licensed under the GNU Affero General Public License v3.0 β€” see the LICENSE file for details.

AURA is built on the belief that freedom, once given, should never be taken away. The AGPL v3 ensures that every fork, every deployment, every version of this code remains open and free β€” not just for developers, but for every user who connects to it.

If you build on AURA, you share the same freedom forward. That's not a restriction β€” that's a promise.

  • βœ… Use, modify, and distribute freely
  • βœ… Deploy on your own servers
  • βœ… Build commercial services on top
  • πŸ”— Keep derivative works open-source under the same license
  • πŸ”— Provide source access to users interacting over a network

βš–οΈ Legal Disclaimer

AURA is a client-side interface for the Nostr protocol. We do not host, store, or control any user content. All cryptographic keys are stored locally on the user's device. Content displayed in AURA is fetched from decentralized relays operated by independent third parties.

The developers of AURA:

  • Do not have access to user private keys or messages
  • Cannot modify or delete content published by users
  • Are not responsible for content published on the Nostr network
  • Cannot comply with takedown requests as we do not host content

For concerns about specific content, please contact the relay operators directly.


πŸ’œ Support the Project

If AURA has helped you, consider supporting its development:

⚑ Bitcoin (Lightning Network)

classywallaby932694@getalby.com

🟣 Solana

DANryD6MxNr3BQcYZN3rao9qM4VzS2sx7sHy944emPH2

πŸ”· Ethereum / EVM

0xC2335f06ab8Ef2512375bB8Cd2c07A7Bd1589A6e

🌟 Other Ways to Help

  • ⭐ Star this repository
  • πŸ› Report bugs and suggest features
  • πŸ“ Improve documentation
  • 🌍 Help with translations
  • πŸ“’ Spread the word about Nostr and AURA

πŸ‘¨β€πŸ’» Author

Artem Pryanishnikov

Creator & Lead Developer

GitHub Telegram Email


πŸ™ Acknowledgments

  • Nostr Protocol β€” For creating a truly decentralized protocol
  • NDK β€” For the excellent Nostr development kit
  • Svelte β€” For the amazing framework
  • All Contributors β€” Who help make this project better

"Information wants to be free"


Built with πŸ’œ for a free and open internet


If you believe in freedom of speech and decentralization,
please consider starring ⭐ this repository and sharing AURA with others.


Together, we can build a better, freer world.