§ masterplan.md
Dark Hacker News Board
A dark-premium link aggregation board for a niche tech community with comments, votes and tags.
01
App overview and objectives
A link-sharing board for a specific technical community: fast, text-first, ranked by a transparent algorithm, with moderation that is visible rather than mysterious. Small and high-signal by design.
02
The problem worth solving
General news aggregators drown niche communities. A board scoped to one domain, with published ranking rules, keeps quality high and arguments about moderation short.
03
Target audience
- Primary — Practitioners in one technical niche who want a daily reading list.
- Secondary — Authors seeking a knowledgeable audience for their writing.
04
Roles and permissions
- Visitor — read-only public pages, can sign up.
- Member — owns their own records, cannot see other users' data.
05
Core features
- Submit links or text posts with tags
- Ranking by votes decayed over time, with the formula published
- Threaded comments with collapse and permalinks
- Karma with rate limits that scale with account standing
- Moderation log visible to everyone
- Keyboard-first navigation and a text-only fast mode
Deliberately later
- Personalised tag feeds
- Weekly digest email
- Full-text search over comments
06
Technical stack
Server-rendered React with heavy caching, Postgres for posts, votes and comments, Redis-style cache for hot lists.
Why: Ranking queries are the hot path; caching the computed front page for short intervals keeps the site instant under load.
Alternatives: Off-the-shelf forum software (instant, wrong shape) or a fully static aggregator (cheap, no discussion).
07
Conceptual data model
Post — author, title, url or text, tags, score, created_at
Comment — post, parent, author, body, score, depth
Vote — user, target, value
User — handle, karma, created_at, rate limit tier
ModAction — moderator, target, action, reason, public
08
Integrations
- Link metadata fetching
- Spam detection
- Email for account recovery
09
UI design principles
- Deep neutral background, one saturated accent, thin borders instead of heavy cards.
- Monospace for data and code; tight, technical spacing.
- Subtle glow and gradient only where you want the eye to land.
10
Security considerations
- Vote-ring detection and per-account rate limits.
- Sanitise all user content; render markdown through a strict allowlist.
- Public moderation log to keep moderators accountable.
11
Development phases
Phase 1 — Prove the core
- — Submit links or text posts with tags
- — Ranking by votes decayed over time, with the formula published
- — Threaded comments with collapse and permalinks
- — Static content and design system in place
- — Basic analytics
Phase 2 — Make it real
- — Karma with rate limits that scale with account standing
- — Moderation log visible to everyone
- — Keyboard-first navigation and a text-only fast mode
- — Accounts, sign-in and password reset
- — Empty, loading and error states everywhere
Phase 3 — Polish and launch
- — Performance, accessibility and SEO pass
- — Legal pages, contact route and 404 handling
- — Wire up: Link metadata fetching
- — Wire up: Spam detection
Phase 4 — Grow
- — Personalised tag feeds
- — Weekly digest email
- — Full-text search over comments
12
Challenges and solutions
Risk — Community culture decays as it grows
Solution — Invite-based growth phases, explicit norms, and a slow-mode on heated threads.
Risk — Vote manipulation by submitters
Solution — Weight votes by account age and activity; flag self-promotion patterns.
Risk — Ranking arguments
Solution — Publish the exact formula and a page showing why a given post ranks where it does.
13
Future expansion
- Job postings section
- AMA scheduling
- Federated feeds with sibling communities
14
Page list (13 pages)
- 01 PUBLIC Top — Ranked front page.
- 02 PUBLIC New — Chronological firehose for early voters.
- 03 PUBLIC Tags — Topic slices of the board.
- 04 PUBLIC Submit — Post a link or a discussion.
- 05 APP (signed in) Profile — History, karma and settings.
- 06 AUTH Sign up — Create an account with email or a social provider.
- 07 AUTH Log in — Return to the account, with error and lockout states.
- 08 AUTH Reset password — Request a reset link and set a new password.
- 09 APP (signed in) Account settings — Profile, email, password, language and delete account.
- 10 PUBLIC Contact — Contact form plus real address, phone and email.
- 11 LEGAL & SYSTEM Privacy policy — What data is collected, why, and how to remove it.
- 12 LEGAL & SYSTEM Terms of service — Rules of use, liability and account termination.
- 13 LEGAL & SYSTEM 404 not found — Friendly dead end with search and links back.
15
Page map
PUBLIC AUTH APP (signed in) LEGAL & SYSTEM ────────── ───────────────── ─────────────────── ─────────────────── ├─ Top ├─ Sign up ├─ Profile ├─ Privacy policy ├─ New ├─ Log in └─ Account settings ├─ Terms of service ├─ Tags └─ Reset password └─ 404 not found ├─ Submit └─ Contact key flows: Top ──▶ Submit New ──▶ Top Tags ──▶ Top Profile ──▶ New
