Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

71 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Pars

A newer take on how we connect.

Pars is a social platform (posts, follows, threads, topics) built as a monorepo. The active, default stack is Express + PostgreSQL/pgvector.


Stack

Layer Technology
Backend Express · Bun · TypeScript
Database PostgreSQL + pgvector
Cache / Sessions Redis
Real-time Socket.IO + Redis adapter
Auth better-auth · Argon2
Search Typesense + LangChain (semantic search)
Messaging (infra-only, not wired into the app) Kafka + RabbitMQ + BullMQ or NATS + JetStream
Frontend React 19 · Vite · TanStack Router/Query · Tailwind v4 · Biome
Testing Vitest · Supertest · Testcontainers (real ephemeral Postgres/Redis, not mocks)

A second backend + database exist, currently paused

Pars started as a side-by-side comparison of two backend frameworks (NestJS, Express) over two databases (PostgreSQL/pgvector, MongoDB), built against the same shared business logic in packages/db-adapters/. That comparison is currently paused in favor of one actively developed path — but nothing was deleted: backend-nestjs/ and MongoDB support both still exist and work, just excluded from CI/deploy/pre-push. See CLAUDE.md's "NestJS + MongoDB (paused)" section for exactly what still works and how to reactivate it.


Monorepo structure

Pars/
├── backend-express/            Express + Drizzle → PostgreSQL/pgvector, better-auth sessions —
│                                the active backend
├── backend-nestjs/              NestJS — same shared services, thin Nest-native routing layer.
│                                Paused: not part of CI/deploy/pre-push, but still functional.
├── frontend/                  React 19 + Vite + TanStack Router, Tailwind CSS, Biome
├── packages/
│   ├── ui/                    @pars/ui — shared behavioral utilities (cn, hooks)
│   └── db-adapters/           @pars/db-adapters — shared Drizzle schema, repository
│                              interfaces/Postgres+Mongo adapters, and the framework-agnostic
│                              services both backends route requests to
├── database-postgres-pgvector/  Postgres+pgvector infra (docker-compose only) — the active DB
├── database-mongodb/            MongoDB infra (single-node replica set). Paused with backend-nestjs.
├── messaging-kafka/             Kafka (KRaft) + RabbitMQ + Redis/BullMQ — infra + demo scripts
├── messaging-nats/              NATS + JetStream — infra + demo scripts
├── search-typesense/             Typesense + LangChain semantic-search demo
├── .github/                    Workflows, issue templates
├── .husky/                     Git hooks
├── LICENSE
├── CONTRIBUTING.md
├── CODE_OF_CONDUCT.md
└── SECURITY.md

Getting started

Prerequisites

  • Bun ≥ 1.2
  • Docker (for local dev services)

Clone

git clone https://github.com/MarkAronov/Pars.git
cd Pars
bun install

Backend

cd database-postgres-pgvector && docker compose up -d && cd ..

cp backend-express/.env.example backend-express/.env   # set DATABASE_URL, SESSION_SECRET, etc.
bun run dev:backend-express       # Express on :3001

Frontend

bun run dev:frontend              # points at backend-express (:3001)

The paused NestJS + MongoDB path

Still fully functional, just not part of CI/deploy/pre-push — see CLAUDE.md's "NestJS + MongoDB (paused)" section for details:

cd database-mongodb && docker compose up -d && cd ..           # if using Mongo
cp backend-nestjs/.env.example backend-nestjs/.env
bun run dev:backend-nestjs        # NestJS on :3000
bun run dev:frontend-nestjs       # frontend pointed at :3000

See CLAUDE.md for the full command reference, environment variables (including the optional OPENAI_API_KEY for real semantic search), and coding standards.


Contributing

See CONTRIBUTING.md.

Code of conduct

See CODE_OF_CONDUCT.md.

Security

See SECURITY.md.

License

MIT © Mark Aronov

About

Pars is a privacy-first social media platform built for people who want meaningful connections without the surveillance. Open source, self-hostable, and designed to evolve.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages