No description
  • JavaScript 35.4%
  • CSS 22.2%
  • TypeScript 19.8%
  • Svelte 17.1%
  • HTML 5.4%
Find a file
2026-07-21 12:20:39 +04:00
.github/workflows ci: run all test suites 2026-07-21 12:20:39 +04:00
.vscode chore: scaffold sveltekit spa 2026-05-12 12:22:24 +04:00
docs feat: add dockerized Pleroma integration workflow 2026-05-13 11:41:41 +04:00
meta ci: run all test suites 2026-07-21 12:20:39 +04:00
scripts ci: run all test suites 2026-07-21 12:20:39 +04:00
src feat: add thread mute controls 2026-07-21 11:59:33 +04:00
static feat: port attachments, composer, and lightbox sections to design-system page 2026-05-14 18:02:36 +04:00
tests/integration feat: add dockerized Pleroma integration workflow 2026-05-13 11:41:41 +04:00
.gitignore chore: scaffold sveltekit spa 2026-05-12 12:22:24 +04:00
.npmrc chore: scaffold sveltekit spa 2026-05-12 12:22:24 +04:00
AGENTS.md docs: require review commit and push 2026-07-18 17:55:09 +04:00
DEVLOG.md ci: run all test suites 2026-07-21 12:20:39 +04:00
mise.toml chore: add opencode mise task 2026-05-15 14:23:41 +04:00
package.json ci: run all test suites 2026-07-21 12:20:39 +04:00
playwright.config.ts ci: run all test suites 2026-07-21 12:20:39 +04:00
playwright.integration.config.ts ci: run all test suites 2026-07-21 12:20:39 +04:00
pnpm-lock.yaml chore: scaffold sveltekit spa 2026-05-12 12:22:24 +04:00
pnpm-workspace.yaml chore: scaffold sveltekit spa 2026-05-12 12:22:24 +04:00
README.md chore: retire legacy mockup prototype remnants 2026-07-02 08:44:43 +04:00
svelte.config.js feat: deploy client to GitHub Pages 2026-07-17 12:08:24 +04:00
tsconfig.json chore: scaffold sveltekit spa 2026-05-12 12:22:24 +04:00
vite.config.ts feat: add thread mute controls 2026-07-21 11:59:33 +04:00

PleromaNet

PleromaNet is a new frontend for Pleroma focused on a reduced, refined interface. The visual design source file is now represented by the implementation plan in meta/issues.md.

Status

This repository contains a SvelteKit TypeScript SPA/static frontend without SSR, backed by the real Pleroma API.

Real App Surface

  • / is the signed-out landing with the OAuth sign-in and create-account flows.
  • /app/... is the authenticated app: home/local/federated timelines with streaming and pagination, thread detail with inline replies, profiles with follow/unfollow, search (header dropdown and full page), notifications with streaming and badge counts, and profile settings backed by update_credentials.
  • The composer supports media uploads (browse, drag-and-drop, paste), content warnings, polls, mention and custom emoji autocomplete, and the full emoji picker. Posts render emoji reaction rows with reaction toggling.
  • /app/profiles/... is also viewable signed out against PUBLIC_PLEROMA_INSTANCE_URL, with sign-in prompts on authenticated actions.
  • /public shows anonymous local/federated public timelines.

Design Reference Surfaces

  • /design-system is the component/design showcase with mocked content, ported section by section from the canonical handoff in meta/design/claude-handoff/.

Development Principles

  • TDD first: red, green, refactor.
  • pnpm is the package manager, with tool versions managed by mise.
  • TypeScript is the application language.
  • SvelteKit is the application framework, configured as an SPA/static frontend without SSR.
  • Svelte 5 only, using current patterns and no legacy usage.
  • Functional TypeScript style: arrow functions, no application classes.
  • Small, topical commits. Large features are split into smaller commits.
  • Detailed contributor and agent rules live in AGENTS.md.

Developing

Install dependencies:

pnpm install

Start a development server:

pnpm dev

# or start the server and open the app in a new browser tab
pnpm dev -- --open

Testing

Default tests are Playwright headless browser tests with mocked/local data only. They do not require Docker or a live Pleroma instance.

pnpm test

Run type checks:

pnpm check

Equivalent mise tasks are available:

mise run test
mise run check
mise run build

Dockerized integration tests are opt-in:

mise run test:integration

See docs/integration.md for backend version, debugging, and cleanup details.

Building

To create a production version of your app:

pnpm build

Preview the production build:

pnpm preview

API Reference

PleromaNet targets Pleroma directly and can rely on Pleroma-specific features being present. Pleroma API documentation is available at https://api.pleroma.social/.