Skip to content

Blorp-Labs/blorp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

798 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

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 env‑vars 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

💬 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