Skip to content

About

Alternative forum to negativity and toxic positivity: subpops, fractal threads, Reframing Gate on replies. Recast before you publish. Next.js + FastAPI.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

30 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ProPopuli

License: Proprietary. Copyright © 2026 VesperRun. All rights reserved. See LICENSE.

Popular-forum layout (subpops, posts, threads) with a Reframing Gate on replies. Persistent public handles (no legal names). AI is optional: classification + challenge only when OPENAI_API_KEY is set; otherwise heuristics run locally.

Prerequisites

  • Node.js 18+
  • Python 3.10+ (3.14 supported; pinned pydantic must match a wheel for your Python version)

Setup

From the repo root:

cd backend
python -m venv venv
venv\Scripts\activate
pip install -r requirements.txt
copy .env.example .env
cd ../frontend
npm install

Copy env templates: backend/.env.example → backend/.env; optional frontend/.env.example → frontend/.env.local.

Secrets: OPENAI_API_KEY and SECRET_KEY live in backend env / host secrets only. The Next app never calls OpenAI and must not define OPENAI_* or NEXT_PUBLIC_* OpenAI vars. Without a backend key, the Gate uses local heuristics.

Optional: set OPENAI_API_KEY in backend/.env (or deploy secrets) for classifier + challenge on replies.

Run

Terminal 1 (backend):

cd backend
venv\Scripts\activate
uvicorn app.main:app --reload --host 0.0.0.0 --port 8000

Terminal 2 (frontend):

cd frontend
npm run dev

MVP flow

  1. Register → pick a handle
  2. Open s\general or s\build (/s/general, /s/build)
  3. Create a post
  4. Reply on the thread — teardown language gets 422 with a rewrite challenge; constructive replies publish

Structure

  • backend/ — FastAPI, SQLite/Postgres, JWT auth, Reframing Gate on subpops, opening posts, and replies
  • frontend/ — Next.js 14, light UI
  • docs/hierarchy.md — sample ⊂ branch ⊂ fractalpop ⊂ subpop ⊂ pop
  • docs/acceptable-use-policy.md — AUP (conduct, media, promotion, enforcement)
  • docs/remediation-plan.md — hosting, policy UX, reports, moderation (fragility close-out)

About

Alternative forum to negativity and toxic positivity: subpops, fractal threads, Reframing Gate on replies. Recast before you publish. Next.js + FastAPI.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages