Overview
Discover what makes ybFeed powerful
`ybFeed` is a lightweight, self‑hosted micro‑feed service written in **Go** with a bundled Vue/React‑style single‑page UI. It is designed to sync small text or image snippets across multiple machines without relying on external services, making it ideal for high‑security environments such as VDIs or air‑gapped networks. From a developer’s standpoint, the project exposes a minimal yet powerful REST API for CRUD operations on feed items and authentication tokens, while keeping the entire state on a local filesystem.
Language
Front‑end
Persistence
Authentication
Overview
ybFeed is a lightweight, self‑hosted micro‑feed service written in Go with a bundled Vue/React‑style single‑page UI. It is designed to sync small text or image snippets across multiple machines without relying on external services, making it ideal for high‑security environments such as VDIs or air‑gapped networks. From a developer’s standpoint, the project exposes a minimal yet powerful REST API for CRUD operations on feed items and authentication tokens, while keeping the entire state on a local filesystem.
Technical Stack & Architecture
- Language: Go 1.22+ – the core server and API are implemented in pure Go, leveraging the standard
net/httplibrary with a few lightweight middlewares for routing and CORS handling. - Front‑end: The UI is a single‑page application built with Vite and Vue 3 (or React, depending on the branch). The build process outputs static assets that are served directly by the Go server.
- Persistence: Data is stored in a simple directory structure (
config.json+ sub‑folders per feed). Each feed contains JSON metadata and a binary blob for images, avoiding the need for a relational or NoSQL database. - Authentication: Sessions are cookie‑based; the server generates a secret link or 4‑digit PIN per feed, which is stored in clear text on disk. The cookie is set with a long expiration but browsers may truncate it, so the config file serves as a recovery fallback.
Core Capabilities
- Feed CRUD: Create, read, update, delete items via JSON payloads. Items can be plain text or base64‑encoded images up to
YBF_MAX_UPLOAD_SIZE(default 5 MB). - Sharing Mechanisms: Generate a secret URL that auto‑authenticates the user, or set a temporary PIN for manual entry. These tokens are exposed through simple API endpoints and can be integrated into scripts or custom clients.
- Rate & Capacity Controls: Currently unimplemented, but the API is designed to accept middleware hooks for throttling or quota enforcement.
- Webhook Hooks: While not built‑in, the server exposes a simple hook endpoint that can be wired to external services (e.g., Slack notifications when a new item is added).
Deployment & Infrastructure
ybFeed ships as a Docker image (ghcr.io/ybizeul/ybfeed:latest) and also supports local builds via a Makefile. The container exposes port 8080 by default and mounts a host directory for persistence (YBF_DATA_DIR). Because the application is single‑process and stateless beyond the local filesystem, it scales horizontally by running multiple instances behind a load balancer; however, each instance would need access to the same shared storage or you would have to implement a sync layer. For production, run behind an HTTPS reverse proxy (e.g., Nginx or Traefik) to satisfy the browser’s security constraints and to enforce TLS.
Integration & Extensibility
- Plugin System: No explicit plugin API exists, but the modular Go code allows developers to fork and extend the
apipackage with custom middleware or additional endpoints. - Webhooks & Automation: The simple API can be consumed by CI/CD pipelines, custom CLI tools, or browser extensions to push snippets programmatically.
- Customization: The UI is open source; developers can replace the Vite/Vue build with any front‑end framework, or tweak CSS variables for branding.
- Security Enhancements: The project is open to contributions that encrypt stored tokens, implement OAuth2 flows, or add rate limiting—features that can be merged via pull requests.
Developer Experience
- Configuration: Environment variables (
YBF_DATA_DIR,YBF_HTTP_PORT, etc.) control all runtime settings, making it easy to integrate into Docker Compose or Kubernetes manifests. - Documentation: The README covers installation, environment variables, and known caveats. While terse, it points to the source code for deeper understanding.
- Community & Support: As a hobby project, community size is small but responsive; issues can be opened on GitHub and are typically addressed promptly. The codebase is cleanly organized, with a clear separation between API logic and UI assets.
Use Cases
- VDI Sync – Users on a virtual desktop can copy snippets from their local machine by posting to
ybFeedand then retrieving them via the secret link on the VDI. - Cross‑Device Note Taking – Developers can jot quick notes on a laptop and view them instantly on a tablet without cloud services.
- Internal Tooling – A lightweight pastebin for internal tooling or automation scripts that need to store transient data without exposing it externally.
- Educational Environments – In classrooms or labs where external paste services are blocked,
ybFeedcan act as a shared whiteboard for short messages or images.
Advantages
- Zero‑External Dependencies – No database, CDN, or external auth provider; everything lives on the host filesystem.
- Performance & Simplicity – Written in Go, it compiles to a single binary with minimal runtime overhead.
- Licensing – The open‑source MIT license allows commercial use and modification without copyleft constraints.
- Security Control – Developers can audit
Open SourceReady to get started?
Join the community and start self-hosting ybFeed today
Related Apps in other
Immich
Self‑hosted photo and video manager
Syncthing
Peer‑to‑peer file sync, no central server
Strapi
Open-source headless CMS for modern developers
reveal.js
Create stunning web‑based presentations with HTML, CSS and JavaScript
Stirling-PDF
Local web PDF editor with split, merge, convert and more
MinIO
Fast, S3-compatible object storage for AI and analytics
Weekly Views
Repository Health
Information
Explore More Apps
BookBounty
Find missing Readarr books via Library Genesis
RSSMonster
Web‑based RSS aggregator with Google Reader style
Umbraco
Open, scalable CMS empowering enterprises with speed and flexibility
NocoDB
Build databases like spreadsheets, no code required
OliveTin
Secure web interface for predefined shell commands
Movim
Federated XMPP blogging and chat hub
