Files
BelgianBitcoinEmbassy/context/overview.md
Michilis 76210db03d first commit
Made-with: Cursor
2026-04-01 02:46:53 +00:00

5.1 KiB

Belgian Bitcoin Embassy Website

1. Overview

The Belgian Bitcoin Embassy (BBE) website is a community-driven, Nostr-powered platform centered around a monthly Bitcoin meetup in Belgium.

It is not a corporate site or institutional platform. It is a lightweight, curated Nostr client that:

  • showcases the next meetup
  • connects users to the community
  • displays curated Bitcoin content
  • allows users to interact via Nostr (likes, comments)

The platform combines a simple public website with a role-based admin/moderation system.


2. Core Goals

The website must:

  • clearly present the next monthly meetup
  • grow the Belgian Bitcoin community
  • aggregate and curate Nostr content
  • allow social interaction via Nostr
  • remain simple, fast, and easy to maintain

3. Tech Direction

Frontend:

  • Next.js (App Router recommended)
  • Component-based architecture
  • Tailwind CSS (based on design system)

Backend:

  • Lightweight API (Node.js / Go)
  • Nostr integration layer
  • Caching layer for events and posts

Auth:

  • Nostr extension login (NIP-07 or signer)

4. Public Website Structure

Routes

  • / → Onepage homepage
  • /blog → Blog overview
  • /blog/[slug] → Blog post page
  • /admin → Dashboard (role-based)

5. Homepage (Onepage)

5.1 Hero

  • Headline: Biggest Bitcoin community in Belgium
  • Subtext: Monthly meetup + community
  • CTA:
    • Join Meetup
    • Join Telegram
    • Follow on Nostr

5.2 Next Meetup

Critical section.

Fields:

  • title
  • date
  • time
  • city
  • venue
  • description
  • link

Actions:

  • Attend / RSVP

5.3 About

Short explanation:

  • what BBE is
  • community-driven
  • beginner friendly

5.4 Why Join

  • meet local Bitcoiners
  • learn Bitcoin
  • discover events
  • connect with community

Platforms:

  • Telegram
  • Nostr
  • X
  • YouTube
  • Discord
  • LinkedIn

Each includes:

  • icon
  • short description
  • link

5.6 Blog Preview

  • featured posts
  • latest posts
  • categories

5.7 FAQ

  • beginner friendly?
  • do I need bitcoin?
  • cost?
  • location?

5.8 Final CTA

  • join meetup
  • follow community

6. Blog System (Nostr-Based)

Source

  • Nostr longform events
  • imported manually by admins

Flow

  1. Admin inputs event id or naddr
  2. Backend fetches from relays
  3. Event is parsed and cached
  4. Admin edits metadata
  5. Post is published

Blog Page /blog

  • list of posts
  • category filters
  • featured post

Blog Post /blog/[slug]

  • title
  • content
  • categories
  • author
  • Nostr interactions:
    • likes
    • comments

7. Nostr Interaction Layer

Users can:

  • login with Nostr
  • like posts (reactions)
  • comment (replies)
  • interact with events

Backend:

  • fetch events from relays
  • cache data
  • apply local moderation

Important:

  • no deletion on Nostr
  • moderation is local only

8. Roles & Auth

Auth

  • Nostr login (extension)
  • signature verification
  • session/JWT

Roles

Defined by pubkeys.

Admins:

  • set in .env

Moderators:

  • assigned by admins

9. Admin Dashboard

Route: /admin

Admins have full control.

Tabs

9.1 Overview

  • meetup summary
  • latest posts
  • quick actions

9.2 Events

  • create/edit meetups
  • mark upcoming/past
  • manage event content
  • moderate comments

9.3 Blog

  • import Nostr posts
  • edit metadata
  • assign categories
  • publish/unpublish
  • feature posts

9.4 Moderation

  • view comments
  • filter by post/event
  • hide content
  • block pubkeys (local)

9.5 Users

  • list users (pubkeys)
  • promote to moderator
  • remove moderator
  • block users

9.6 Categories

  • create/edit/delete
  • reorder

9.7 Relays

  • add/remove relays
  • set priority
  • test connectivity

9.8 Settings

  • site title
  • tagline
  • social links
  • feature toggles

9.9 Nostr Tools

  • manual fetch
  • cache refresh
  • debug events

10. Moderator Dashboard

Moderators have content-only control.

Tabs

10.1 Moderation

  • comment stream
  • hide spam
  • filter content

10.2 Events

  • view meetups
  • moderate comments
  • minor edits

10.3 Blog

  • edit metadata
  • assign categories
  • publish/unpublish

10.4 Reports (optional)

  • flagged content
  • moderation actions

11. Data Models

Meetup

  • title
  • description
  • date
  • location
  • link
  • status

Blog Post

  • nostr_event_id
  • title
  • slug
  • content
  • excerpt
  • categories
  • featured
  • visible

Category

  • name
  • slug

User

  • pubkey
  • role

12. Component Structure

Public:

  • HeroSection
  • NextMeetupCard
  • AboutSection
  • CommunityLinks
  • BlogPreview
  • FAQSection

Admin:

  • AdminSidebar
  • MeetupEditor
  • PostManager
  • CategoryManager
  • SettingsPanel

13. Design Principles

  • dark theme
  • Bitcoin orange accent
  • large whitespace
  • no borders (use spacing)
  • layered surfaces
  • minimal animation

14. MVP Scope

Build first:

  • homepage
  • blog
  • blog post page
  • Nostr login
  • admin dashboard
  • moderator dashboard
  • meetup system
  • Nostr blog import

15. Key Principle

This is not a CMS.

This is a curated Nostr client for a Bitcoin meetup community.

Keep it simple, fast, and focused on:

  • meetup
  • community
  • content