No description
  • TypeScript 93.3%
  • CSS 2.3%
  • JavaScript 1.8%
  • Swift 1.1%
  • Shell 0.5%
  • Other 0.9%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-06-10 22:38:42 -04:00
.claude Repo security audit (#388) 2026-03-31 22:02:11 -04:00
.github/workflows test: add post rendering performance regression tests (#449) 2026-04-30 21:30:15 -04:00
.husky chore: add commit lint git hook and update pr title check (#438) 2026-04-22 23:10:20 -04:00
.storybook Visual snapshot test (#424) 2026-04-16 21:55:41 -04:00
android chore: bump version to 1.14.0 2026-05-19 16:38:09 -04:00
assets refactor: new logo (#243) 2025-11-15 14:01:24 -05:00
docs feat: stabilize large comment trees (#435) 2026-05-07 21:21:18 -04:00
e2e feat: stabilize large comment trees (#435) 2026-05-07 21:21:18 -04:00
eslint Add local/zustand-persist-migrate ESLint rule (#418) 2026-04-13 17:28:55 -04:00
fastlane CI fix android build config for fdroid (#392) 2026-04-01 22:12:40 -04:00
icons refactor: new logo (#243) 2025-11-15 14:01:24 -05:00
ios chore: bump version to 1.14.0 2026-05-19 16:38:09 -04:00
metadata chore: update en metadata description for f droid 2025-10-27 08:50:24 -04:00
patches fix: mobile keyboard inset lag (#464) 2026-05-12 17:24:16 -04:00
public chore: update screenshot 2026-05-04 19:57:19 -04:00
scripts Visual snapshot test (#424) 2026-04-16 21:55:41 -04:00
src chore: upgrade tiptap versions with latest bugfixes 2026-06-10 22:38:42 -04:00
src-tauri chore: bump version to 1.14.0 2026-05-19 16:38:09 -04:00
test-utils test: add perf test for post card (#455) 2026-05-04 22:16:12 -04:00
visual Visual snapshot test (#424) 2026-04-16 21:55:41 -04:00
visual-snapshots fix: widen ordered list gutter so 2-3 digit numbers aren't cut off (#462) 2026-05-12 18:21:52 -04:00
.dependency-cruiser.cjs Add dependency graph GitHub Action (#399) 2026-04-04 11:04:29 -04:00
.dockerignore Replace Chromatic (#422) 2026-04-16 18:25:37 -04:00
.env.example Add content warning env var to turn on NSFW access without login (#400) 2026-04-04 13:18:27 -04:00
.git-blame-ignore-revs chore: ignore eslint fix commit 2026-05-04 21:01:42 -04:00
.gitattributes Replace Chromatic (#422) 2026-04-16 18:25:37 -04:00
.gitignore test: add post rendering performance regression tests (#449) 2026-04-30 21:30:15 -04:00
.gitleaks.toml Repo security audit (#388) 2026-03-31 22:02:11 -04:00
.prettierignore prettier 2024-11-28 23:51:51 -05:00
.prettierrc Revert "chore: add prettier tailwind plugin (#376)" 2026-03-23 22:44:28 -04:00
AGENTS.md chore: move claude md to agents md 2026-04-22 22:38:18 -04:00
capacitor.config.ts refactor: remove sqlite from capacitor 2025-08-21 23:55:30 -04:00
chromatic.config.json test: add more storybook stories 2025-01-29 20:03:25 -05:00
CLAUDE.md chore: move claude md to agents md 2026-04-22 22:38:18 -04:00
commitlint.config.js chore(git): add commitlint git hook check 2025-02-07 21:33:05 -05:00
components.json refactor: update shadcn (#286) 2026-02-05 23:36:01 -05:00
Dockerfile Add Web 1.0 Theme (#430) 2026-04-20 19:45:31 -04:00
eslint.config.mjs test: reorganize post component to make testing easier (#446) 2026-04-29 21:01:57 -04:00
Gemfile refactor: migrate from yarn to pnpm (#333) 2026-03-03 23:31:34 -05:00
Gemfile.lock refactor: migrate from yarn to pnpm (#333) 2026-03-03 23:31:34 -05:00
index.html fix: instance favicon sometimes not loading 2025-09-22 00:44:10 +02:00
ionic.config.json refactor: migration to ionic (#33) 2025-04-16 19:18:32 -04:00
LICENSE chore: fix license typo 2025-09-05 18:07:21 -04:00
netlify.toml refactor: migrate from yarn to pnpm (#333) 2026-03-03 23:31:34 -05:00
package.json chore: upgrade tiptap versions with latest bugfixes 2026-06-10 22:38:42 -04:00
playwright.config.ts refactor: migrate from yarn to pnpm (#333) 2026-03-03 23:31:34 -05:00
playwright.visual.config.ts Visual snapshot test (#424) 2026-04-16 21:55:41 -04:00
pnpm-lock.yaml chore: upgrade tiptap versions with latest bugfixes 2026-06-10 22:38:42 -04:00
pnpm-workspace.yaml refactor: update lemmy v4 endpoint support (#472) 2026-05-23 23:34:30 -04:00
README.md chore: update readme 2026-05-04 21:05:46 -04:00
RELEASE.md ci: add manual ios and android beta deployment (#336) 2026-03-05 18:34:58 -05:00
tsconfig.json refactor: migrate from yarn to pnpm (#333) 2026-03-03 23:31:34 -05:00
vite-storybook.config.ts refactor: migration to ionic (#33) 2025-04-16 19:18:32 -04:00
vite.config.ts Change slug to handle (#413) 2026-04-18 16:19:55 -04:00
vitest.config.ts test: add post rendering performance regression tests (#449) 2026-04-30 21:30:15 -04:00
vitest.perf.config.ts test: add post rendering performance regression tests (#449) 2026-04-30 21:30:15 -04:00

Blorp logo


Web App · Report Bug · Request Feature · Releases

        

matrix chat


              


🚀 Download

🧪 Beta Testing

❤️ Friends of Blorp

Url Lemmy PieFed Version
blorp.lemmy.world Version
blorp.piefed.world Version
blorp.lemmy.zip Version
blorp.piefed.zip Version
b.feddit.uk Version
blorp.europe.pub Version
b.lemmy.nz Version
b.lazysoci.al Version
blorp.blahaj.zone Version
blorp.lemmy.ca Version
blorp.piefed.ca Version
b.lemmy.pt Version
b.piefed.social Version
blorp.feddit.in Version
blorp.piefeed.com Version

🛠 Development

Prerequisites

Node.js + pnpm — Node.js 20+ recommended. pnpm is managed via corepack (bundled with Node.js):

corepack enable
pnpm install
git config blame.ignoreRevsFile .git-blame-ignore-revs

iOS (macOS only) — CocoaPods is managed via Bundler so the version is pinned:

bundle install          # installs CocoaPods + Fastlane from Gemfile
bundle exec pod install --repo-update
open ios/App/App.xcworkspace   # always open .xcworkspace, not .xcodeproj

Ruby 3.3 is required. If you have multiple Ruby versions, make sure ruby --version reports 3.3.x before running bundle install. With Homebrew: brew install ruby@3.3 and follow the PATH instructions it prints.

Common commands

Command Purpose
pnpm dev Start Vite dev server
pnpm build Production build (Vite + Capacitor sync)
pnpm test Run Vitest unit tests
pnpm test:ts TypeScript type check
pnpm lint Lint via ESLint
pnpm test:e2e Playwright E2E tests (run pnpm build first)
pnpm storybook Component Storybook

🐳 Self host via Docker

Recommended: use the Blorp deployment configuration tool

# pull the latest Blorp image
docker pull ghcr.io/blorp-labs/blorp:latest

# run it on port 8080 (host → container), passing any runtime envvars you need
docker run -d \
  --name blorp \
  -p 8080:80 \
  -e REACT_APP_NAME="Blorp" \
  -e REACT_APP_DEFAULT_INSTANCE="https://lemmy.world,https://piefed.zip" \
  -e REACT_APP_LOCK_TO_DEFAULT_INSTANCE="1" \
  -e REACT_APP_INSTANCE_SELECTION_MODE="default_first"
  ghcr.io/blorp-labs/blorp:latest

Environment variables

Variable Description
REACT_APP_NAME App name shown in the UI
REACT_APP_DEFAULT_INSTANCE Comma-separated list of default Lemmy/PieFed instances
REACT_APP_LOCK_TO_DEFAULT_INSTANCE Set to 1 to prevent users from adding other instances
REACT_APP_INSTANCE_SELECTION_MODE How to pick the default instance (default_first, default_random)
REACT_APP_CONTENT_WARNING When set, logged-out users must accept this content warning before browsing
REACT_APP_DEFAULT_LIGHT_THEME Default light theme for new users (default-light, dracula-light, web-1.0-light)
REACT_APP_DEFAULT_DARK_THEME Default dark theme for new users (default-dark, dracula-dark, web-1.0-dark)

💬 Blorp Community

Want to ask questions, share feedback, or just chat with other Blorp users? Head over to our community at
lemmy.zip/c/blorp.

❤️ Special thanks to

  • Lay for designing the logo and banner art.
  • The PieFed team for their support and quickly resolving any and all feedback I brought them.

📚 Stack

  • React The library for web and native user interfaces
  • Ionic/Capacitor An open source UI toolkit for building performant, high-quality mobile apps using web technologies
  • Tauri Create small, fast, secure, cross-platform applications
  • Vite Next Generation Frontend Tooling
  • Zustand Bear necessities for state management in React
  • TanStack Query Powerful asynchronous state management for TS/JS, React, Solid, Vue, Svelte and Angular
  • TanStack Virtual Headless UI for Virtualizing Large Element Lists

📄 License