System Online // Architecture Guide

Hear What the Internet Says.
On Your Own Box.

Sociomancy (“Socio”) monitors brand keywords and product mentions across open developer platforms like Hacker News and Reddit. Built by Spellytics with a local-first SQLite core, deterministic lexicon NLP, and seamless Supabase PostgreSQL scalability.

💰 100% Free & Open

Legacy SaaS tools charge $150+/month per seat. Sociomancy runs on your box with zero subscription cost.

🔒 Privacy & Local-First

Your monitored keywords, community mentions, and user feedback never leave your private machine.

⚡ Zero Credentials

Query public APIs with zero API keys, OAuth consent screens, or credit card signups required.

End-to-End Processing Architecture

Step 1 • Open APIs

Ingestion

Queries Algolia HN API and Reddit public JSON for monitored terms.
HN + Reddit Search
Step 2 • Normalizer

Deduplication

Normalizes into unified schema and deduplicates by composite key.
source + externalId
Step 3 • Lexicon NLP

Sentiment

VADER/AFINN valences, negations, boosters, and emojis score tone from -100 to +100.
Score (-100..+100)
Step 4 • Clusters

Themes

Clusters mentions into topics: Pricing, DX, Bugs, Performance.
TF & Taxonomic Tags
Step 5 • Prisma ORM

Persistence

Saves to SQLite (dev.db) with instant Supabase migration.
SQLite / Supabase

Interactive Sentiment Tester

[Live In-Memory Engine]
Type or paste any user comment, bug report, or product feedback below to test the lexicon analyzer in real time:
Score
+92/ 100
-100 to +100
Classification
POSITIVE
Mag: 12.5
Positives (4)
🚀 (x1)awesomefastclean
Negatives (1)
annoying

Subsystem Analysis

1. Open API Ingestion

Queries open public endpoints without brittle HTML scraping:
  • Hacker News: Algolia Search API (https://hn.algolia.com/api/v1/search).
  • Reddit: Public search JSON (https://www.reddit.com/search.json) with compliant User-Agent headers and graceful rate-limiting fallbacks.

2. Deterministic Sentiment

Zero external model latency or subscription cost:
  • Negation Handling: Words like not or never invert subsequent word valences.
  • Hyperbolic Normalization: Scores bound smoothly via (v / sqrt(v² + 15)) × 100 into -100 to +100.

3. Thematic Clustering

Categorizes discussions to reveal underlying sentiment drivers:
  • Taxonomy: Clusters into Self-hosted, Pricing & SaaS, Developer Experience, Performance, and Bugs.
  • Quote Extraction: Preserves representative snippets from actual posts.

4. SQLite & Supabase Portability

Built with Prisma for zero-friction migration:
  • Default Local SQLite: Stores mentions in prisma/dev.db.
  • Supabase Ready: Update DATABASE_URL and run npx prisma db push.

User Walkthrough: Quickstart

1

Add a Keyword to Track

Click “Keywords” in the header and input any brand, term, or competitor (e.g. Harken, Supabase, Next.js). An initial scan runs automatically.
2

Scan Latest Discussions

Click “Scan” anytime to ingest newly published mentions from Hacker News and Reddit.
3

Inspect Themes & Timeline

Analyze the Volume Chart and click any topic in the Thematic Topic Clusters panel to isolate relevant conversations.
4

Group Keywords into Projects (like Harken)

Click “Projects” to organize tracked keywords into named projects (e.g. Product Suite or Competitors). Switch between combined project rollups and individual members, or batch scan entire projects with one click.

Frequently Asked Questions (FAQ)

Do I need an LLM API key?

No! Sociomancy features a local deterministic lexicon engine that runs directly in Node.js with zero token fees.

How do Projects work (like Harken)?

Projects let you group multiple keywords for combined sentiment, timeline, and mention rollups. Standalone keywords live in the protected Default project, and deleting a project preserves all tracked mentions.

Can I monitor multiple keywords?

Yes. Track unlimited keywords with combined rollups or isolated keyword filters.

How is Net Sentiment calculated?

Standard industry formula: ((Positive - Negative) / Total) × 100, ranging from -100 to +100.

How do I seed sample data?

Click “Demo” in the header or run npx prisma db seed in terminal.
Return to Sociomancy Dashboard