Coracle is a web client for the Nostr protocol focused on pushing the boundaries of what's unique about nostr, including relay selection and management, web-of-trust based moderation and content recommendations, and privacy protection. Check it out at coracle.social.
If you like Coracle and want to support its development, you can donate sats via Geyser.
- Threads/social
 - Profile search using NIP-50
 - Login via extension, nsecbunker, and pubkey
 - Profile sharing via QR codes
 - NIP 05 verification
 - NIP 65 relay selection and NIP 32 relay reviews
 - NIP 89 app recommendations
 - NIP 32 labeling and recommendations
 - NIP 99 classifieds
 - NIP 52 calendar events
 - NIP 87 closed groups
 - NIP 72 communities
 - NIP 89 client tag support
 - NIP 32 labeling and collections
 - Private group calendars and listings
 - Cross-posting between communities and main feed
 - Bech32 entity search and scan
 - Mention, reply, and reaction notifications
 - Direct messages - NIP 04 and NIP 24
 - Note composition with mentions and topics
 - Content warnings, mute, and keyword mute
 - Profile pages, follow/unfollow, follow/follower count
 - Thread muting, collapse thread
 - Invoice, quote, mention, link, image, and video rendering
 - Installable as a progressive web app
 - Integrated media uploads via NIP 96
 - Lightning zaps and reactions
 - Feeds customizable by person, relay, and topic using NIP-51
 - AUTH (NIP-42) support for closed relays
 - Multiplextr support for reducing bandwidth
 - Profile and note metadata
 - White-labeling support
 - NIP 51 person lists
 - Exports/imports of user events
 - User profile editing
 - NIP XX encrypted read receipts for notifications
 - Topic and relay feeds
 - Onboarding workflow
 - Multi-account support
 - Notifications view
 
You can find a more complete changelog here.
- Clone the project repository: 
git clone https://github.com/coracle-social/coracle.git - Navigate to the project directory: 
cd coracle - Install dependencies: 
yarn - Customize configuration in 
.env(optional, see below) - Start the development server: 
yarn dev 
Coracle is intended to be fully white-labeled by groups of various kinds. The following environment variables can be set in .env.local to customize Coracle's appearance and behavior:
VITE_DARK_THEMEandVITE_LIGHT_THEMEare comma-separate lists of key/value pairs defining theme colors.VITE_DVM_RELAYSis a comma-separated list of relays to use when making requests against DVMs.VITE_SEARCH_RELAYSis a comma-separated list of relays to use when using NIP 50 search.VITE_DEFAULT_RELAYSis a comma-separated list of relays to use as defaults/fallbacks.VITE_DEFAULT_FOLLOWSis a comma-separated list of hex pubkeys to fetch content from when the user isn't following anyone.VITE_ONBOARDING_LISTSis a comma-separated list ofkind:30003person lists to populate onboarding with.VITE_NIP96_URLSis a comma-separated list of default upload providers.VITE_IMGPROXY_URLis an imgproxy instance url for protecting user privacy and reducing bandwidth use.VITE_DUFFLEPUD_URLis a Dufflepud instance url, which helps Coracle with things like link previews and image uploads.VITE_PLATFORM_ZAP_SPLITis a decimal between 0 and 1 defining the default zap split percent.VITE_PLATFORM_PUBKEYis the pubkey of the platform owner. This gets zapped when using the platform zap split.VITE_FORCE_GROUPis an optionalkind:34550orkind:35834address. If provided, the home page of Coracle will be the home page for the group, and most views will be filtered down to the group's scope.VITE_PLATFORM_RELAYSis an optional comma-separated list of relay urls to use for feeds. If provided, most UI components related to relay selection will be hidden from the user.VITE_ENABLE_ZAPScan be set tofalseto disable zaps.VITE_APP_NAMEis the app's name.VITE_APP_URLis the app's url. Used to generate open graph meta tags.VITE_APP_LOGOis the path for the app's logo relative to thepublicdirectory, starting with a leading slash. Used to generate favicons and manifest.VITE_APP_WORDMARK_DARKandVITE_APP_WORDMARK_LIGHTare paths for the app's wordmark relative to thepublicdirectory, starting with a leading slash.VITE_APP_DESCRIPTIONis the app's description.VITE_CLIENT_NAMEis the client's name. Only change this if you have forked Coracle.VITE_CLIENT_IDis the client's NIP 89 handler id. Only change this if you have forked Coracle.VITE_BUGSNAG_API_KEYis your bugsnag api key.VITE_BUILD_HASHcan be set during build to indicate the software version on the about page.VITE_LOG_LEVELcan be set toinfo,warn, orerror. This controls how much shows up in the console.VITE_ENABLE_MARKETcan be set tofalseto disable the marketplace tab.
See .env for default values.