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

399 lines
5.1 KiB
Markdown

# 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
---
### 5.5 Community Links
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