- JavaScript 39.2%
- CSS 23.7%
- TypeScript 15.9%
- Svelte 15%
- HTML 6%
| .vscode | ||
| docs | ||
| meta | ||
| scripts | ||
| src | ||
| static | ||
| tests/integration | ||
| .gitignore | ||
| .npmrc | ||
| AGENTS.md | ||
| mise.toml | ||
| package.json | ||
| playwright.config.ts | ||
| playwright.integration.config.ts | ||
| pnpm-lock.yaml | ||
| pnpm-workspace.yaml | ||
| README.md | ||
| svelte.config.js | ||
| tsconfig.json | ||
| vite.config.ts | ||
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. It is currently mostly design prototype work; real Pleroma-backed app flows have not landed yet.
Real App Surface
/is a small coming-soon landing page that links to the mocked surfaces.- There is currently no real Pleroma API-backed app surface.
Prototype / Fake Surfaces
/mockupis the signed-in design prototype with mocked profile, timeline, composer, thread, navigation, right rail, settings placeholder, and interaction state./design-systemis a component/design showcase with mocked content.- Timeline posts, composer publishing, thread replies, follow buttons, trends, suggestions, settings, notifications, messages, bookmarks, lists, and instance status are mocked UI behavior.
- No OAuth flow, token storage, authenticated account state, real posting, real follow actions, real thread fetching, or real profile/settings writes exist yet.
- Dockerized/live Pleroma integration tests have not been added yet.
Development Principles
- TDD first: red, green, refactor.
pnpmis 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 against an ephemeral Pleroma backend will be added later and kept behind explicit mise tasks.
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/.