Grav
No database anywhere in the stack: Grav, the leading flat-file CMS, builds every page from a folder of Markdown and YAML on PHP, Symfony components, Twig templating, and Doctrine caching. That architecture is the whole argument: content is Git-versionable, rsync-able, and lock-in-free; pages render in well under 100ms without database round-trips; and backup means copying a directory. Content authors write Markdown (or plain HTML), configure with readable YAML, and define custom page structures via blueprint files that generate editing forms automatically. The optional Admin panel adds a polished editing layer: dashboard with site activity, page management with a syntax-highlighted editor and live preview, drag-and-drop media uploads, one-click plugin/theme updates, and normal/expert modes for form-based or raw YAML editing. The ecosystem runs deep - hundreds of open-source plugins and themes installed through the GPM package manager, with an event-hook architecture that gives plugins full control over the request lifecycle, and downloadable skeletons providing entire pre-built sites. Grav 2.0 modernizes the stack (PHP 8.3+, Symfony 7, Twig 3) and adds a first-party REST API, an MCP server for AI agents, and a SvelteKit single-page admin with real-time collaborative editing. Ideal for docs, blogs, and marketing sites. MIT-licensed.
PeerTube
The fediverse's answer to YouTube comes from French non-profit Framasoft: PeerTube is a TypeScript/Angular video platform where hundreds of independently operated instances federate over ActivityPub into one network. Videos you publish are discoverable across the whole video fediverse, and viewers can follow your channels from Mastodon or any ActivityPub platform - or plain RSS - without needing an account on your instance. The namesake innovation attacks video hosting's core cost problem: alongside HLS delivery, an optional WebRTC-based P2P layer lets concurrent viewers' browsers share video segments with each other, so a video going viral distributes its own bandwidth demand instead of crushing your server; instance redundancy extends this by letting friendly instances cache each other's videos. Livestreaming is first-class - stream via OBS or any RTMP software, host permanent streams, enable replays, and interact through live chat. Creators get channels, playlists, analytics, built-in video editing (trim, watermark), and an embeddable player for any website. There are no ads, no data mining, and no recommendation algorithm engineered for watch-time - the project's explicit design stance. Admins control federation policy, P2P settings, and theming; a plugin system extends the rest. AGPL-licensed, 300+ contributors, in active development since 2015.
EasyAppointments
Service businesses get a booking page without per-booking commissions or monthly SaaS fees from Easy!Appointments, the self-hosted appointment scheduler. Customers pick a service, provider, and open time slot from a clean web form; the system enforces working plans, breaks, and booking rules you define per provider, then confirms by email to both sides. The structure fits real service organizations: multiple providers with individual schedules, multiple service types with their own durations and prices, and admin/secretary roles for front-desk management. Two-way Google Calendar synchronization keeps each provider's external calendar authoritative - book in Easy!Appointments and it appears in Google Calendar, block time in Google and the slot disappears from the booking form. Version 1.6 adds SMS notifications and payment support, and a REST API opens the scheduling data to custom integrations. Built on PHP (CodeIgniter) with MySQL, it installs in a single folder and can share a database with your existing site; a WordPress plugin embeds the booking form directly in pages or posts. The interface ships in dozens of languages with time-zone handling throughout. GPL-3.0 licensed and free for commercial use - a helpdesk, clinic, salon, or consultancy runs its whole booking workflow on its own server.
Miniflux
One statically-compiled Go binary over PostgreSQL, no ORM, no framework, static assets embedded in the executable: Miniflux is the minimalist, opinionated feed reader. The opinions are the feature: page layout, fonts, and colors are tuned for reading, and everything else is treated as noise. It consumes Atom, RSS, and JSON Feed formats with OPML import/export, organizes articles with categories and bookmarks, fetches original full-text content for summary-only feeds, and provides Postgres-powered full-text search. Privacy work happens automatically: pixel trackers are stripped, tracking parameters removed from URLs, a media proxy blocks third-party tracking, referrers are never forwarded, and there is zero telemetry. Navigation is keyboard-first - j/k through items, o to open, f to star - with touch gestures on mobile. Podcast, video, and music enclosures are supported, and YouTube videos play inline. Over 25 integrations save articles onward to Wallabag, Readwise Reader, Pinboard, Linkding, Instapaper, Notion, Telegram, Matrix, Ntfy, and more, plus webhooks and a REST API with Go and Python clients; the Google Reader API endpoint supports existing mobile reader apps. Authentication spans local passwords, passkeys (WebAuthn), Google OAuth2, OpenID Connect, and reverse-proxy headers. It is Apache 2.0 licensed, translated into 20 languages, and updates feeds on an internal scheduler.
Redmine
Nearly two decades running engineering organizations: Redmine is the veteran open-source project management and issue tracker, a Ruby on Rails application (GPLv2) still in active development. Its core strength is configurability: define your own trackers (bug, feature, task, or anything else), issue statuses, and role-based workflows that control exactly which transitions each role may perform, then extend records with custom fields of every type. Issues support subtasks, relations (blocks, precedes, duplicates), watchers, categories, and full journaled history, with saved custom queries and cross-project filtering for slicing the backlog any way you need. Around the tracker sit Gantt charts and calendars, a roadmap driven by versions, per-project wikis, forums, news, and document repositories, plus time tracking with estimated versus spent hours and activity-based reporting. Multi-project support runs deep - subprojects, per-project modules, and granular role-based permissions - and repository integration (Git, Subversion, Mercurial) links commits to issues automatically. Email notifications, inbound email-to-issue creation, LDAP authentication, a REST API, and a large plugin and theme ecosystem round it out. Recent 6.x releases brought substantial query and rendering optimizations. Self-hosting keeps your entire project history in your own database, free of per-seat licensing.
Docmost
Confluence and Notion both want your team's documentation in their cloud; Docmost, an open-source collaborative wiki platform, keeps it on your server. The centerpiece is a Notion-style block editor with CRDT-based real-time collaboration: multiple people edit the same page simultaneously and changes merge without conflicts or overwrites. Content lives in spaces - per team, project, or department - with nested page trees, role-based permissions, groups, inline comments, page history with restore, and full-text search across everything. The editor covers tables, code blocks, callouts, KaTeX math, and file attachments, and diagramming is built in rather than bolted on: Mermaid, Draw.io, and Excalidraw all render inside pages, alongside embeds for Airtable, Loom, Miro, and more. Migration paths include Notion, Markdown, HTML, and ZIP archive imports (Confluence, PDF, and DOCX importers ship in the Enterprise edition, along with SSO via SAML/OIDC/LDAP and MFA). The stack is TypeScript with PostgreSQL and Redis, deploys via Docker Compose, runs in air-gapped environments with no external dependencies, and is translated into 10+ languages. The AGPL-3.0 community edition carries no per-seat fees; the project has passed 20,000 GitHub stars since its 2024 launch.
Element
Matrix's flagship client, built by the protocol's creators: Element brings the decentralized open standard for real-time communication to web, desktop, iOS, and Android. Paired with a Matrix homeserver, it delivers Slack-quality team messaging where you own every message, file, encryption key, and byte of metadata. End-to-end encryption is on by default, built on Olm and Megolm - the Double Ratchet algorithm family Signal popularized, extended for large-room scalability and publicly audited by NCC Group. Messages encrypt per-device with cross-signed device verification, so even a compromised server yields nothing readable. Federation is the defining capability: like email, users on different homeservers converse seamlessly, and 30+ bridges connect Matrix rooms to Slack, Discord, WhatsApp, and Telegram, so moving to sovereign infrastructure doesn't sever contact with anyone. Rooms support threads, reactions, file sharing, and voice and video calls via Element Call. The result is digital sovereignty chosen by governments and enterprises across Europe: your data sits on your server in your jurisdiction, portable to any other Matrix host because the protocol is an open standard. Apache-2.0 licensed, with no per-user fees at any scale.
LinkWarden
Links rot - the hard truth Linkwarden is built around, as a collaborative bookmark manager that preserves what it saves. Every page you save is fully preserved - a screenshot, a PDF, a self-contained single-file HTML archive (generated by the Monolith Rust binary), and a clean reader view - so the content survives even after the original site disappears. Think of it as a private Wayback Machine you own, with an optional one-click snapshot to archive.org on top. The reading experience matches the archival rigor: a distraction- free reader view supports text highlighting and annotation, and full-text search across everything you have saved is powered by Meilisearch. Optional AI tagging analyzes page content and auto-assigns tags - generate new ones, pick from your existing set, or constrain to predefined tags - with providers ranging from local Ollama models (fully private) to OpenAI, Anthropic, and OpenRouter. Organization is collections, sub-collections, and multiple tags per link; teams collaborate on shared collections with per-member permissions, and public collections share curated link sets (with preserved copies) to anyone. The stack is Next.js/React on TypeScript with PostgreSQL via Prisma, NextAuth supporting credentials, OAuth2, and SAML SSO, and a Playwright-driven headless Chromium worker doing the capture. Native iOS and Android apps and browser extensions feed it from anywhere.
Whiteboard
The drawing surface inside WebRTC conference tools like Meetzi and the LAMS online-learning platform is Whiteboard (by cracker0dks) - a lightweight Node.js collaborative sketchboard built to be embedded and customized, which also slots into Nextcloud via the External Sites app. Everyone opening the same whiteboardid URL parameter draws on the same board, with remote user cursors visible live, per-user undo/redo, and an indicator showing the smallest participating screen so nobody draws outside a colleague's view. Content handling goes beyond pen strokes: drag-and-drop or paste images and PDFs from any PC or browser, then resize, rotate, and draw over them on canvas or background; add text and sticky notes; hold Shift for angle-snapped lines and perfect squares. Every function has a keybinding - deliberately friendly to pen displays like Wacom and XP-Pen whose hardware buttons map to shortcuts. Boards save to image or JSON (with reload), export directly to Nextcloud via WebDAV, and persist across restarts with the file-database option. A REST API with bundled interactive docs allows full programmatic control, an optional access token locks down uploads, and YAML configuration tunes behavior and performance. MIT-licensed and reverse-proxy friendly.
Verdaccio
Private npm packages without shipping code to the public registry or paying for npm Enterprise: Verdaccio is the standard lightweight, zero-config private registry and caching proxy. It runs as a single Node.js process with its own tiny embedded database; no external database is required to start. Point npm, yarn, or pnpm at it and everything behaves as expected: install, publish, unpublish, dist-tags, and deprecation all work against the standard npm endpoints. The uplink system is where it earns its keep: packages not found locally are fetched from configured upstreams (npmjs.org, yarn, JFrog, Nexus, or another Verdaccio), cached as tarballs, and served locally thereafter - cutting CI latency and surviving registry outages. Multiple uplinks chain for failover, and per-package glob patterns in config.yaml route scopes to specific upstreams while controlling access, publish, and unpublish rights per group. You can even override a public package by publishing a patched version under the same name locally. A plugin architecture swaps in auth backends (htpasswd default, LDAP and others available), storage drivers (S3, Google Cloud Storage), middleware routes, and metadata filters. With official Docker images and a Kubernetes Helm chart, it slots into any pipeline in minutes.
Wally
Started as an ExpenseOwl-inspired project, Wally grew into a lightweight, self-hosted expense tracker more capable in every direction its author touched. The backend is Python FastAPI over SQLite, which means every deployment ships a full REST API with interactive documentation at /api/docs - automating imports or wiring in external tools requires no reverse engineering, and when the optional login page is enabled you can mint scoped API keys from the Settings page for token-based integrations. The transactions view is built on AG Grid, bringing real search, column sorting, and per-column filtering to your ledger, with a footer totaling rows, income, and expenses for whatever slice you have filtered. Dashboards go beyond the usual monthly doughnut: a Change button swaps in year-scale line graphs so you can track a single category - restaurants, say - across time. Recurring transactions edit intelligently, letting you apply changes to all instances or only future ones. CSV import and export use a simple six-column format handled from Settings, the refined dark theme is genuinely easy on the eyes, and the interface is translated into more than ten languages. The whole thing runs from one small container with a single data volume.
HumHub
Workplace and Yammer's pattern on your own server, with GDPR compliance by construction rather than contract: HumHub is an open-source enterprise social network from Germany. Built in PHP on Yii2, it organizes everything around four concepts. Users get rich profiles with follows and interactions. Spaces are the structural unit - rooms for departments, projects, events, or clubs, with per-Space permissions, notification settings, and email summaries, and operators can auto-map users into the right Spaces. Content covers posts, wiki pages, photos and video, events, and tasks, with multi-level comments, versioning, archiving, moderation reporting, and filterable full-text search across everything. Modules make it a platform: roughly 80 install-and-activate extensions including Calendar, Wiki, Polls, Tasks, Gallery, News, direct-message Mail, OnlyOffice document editing, Advanced LDAP, SAML and JWT SSO, a RESTful API, mass user import, Translation Manager, and a Theme Builder with custom pages - every one optional and toggleable at runtime. That module economy is why HumHub serves such varied deployments: corporate intranets, city governments, universities, political parties, and nonprofits all configure the same core differently. Requirements are a plain LAMP stack - PHP 8.1+ and MySQL/MariaDB - making it one of the easiest community platforms to operate long-term.
Unleash
Deployment decoupled from release: Unleash, the most popular open-source feature management platform on GitHub, is a Node.js server backed by PostgreSQL. Ship code dark, then control who sees it through activation strategies: gradual percentage rollouts, targeting by user ID, IP, hostname, or application name, custom constraints against your own context fields, and scheduled or time-limited releases. Strategies stack - a flag activates if any strategy matches - and strategy variants layer A/B versions on top of the on/off decision. Each flag carries per-environment configurations, so a feature can run at 100% in staging while canarying at 5% in production. Backend SDKs (Node.js, Java, Go, Python, Ruby, .NET, PHP, Rust, and more) fetch configuration and evaluate flags locally, so a flag check adds zero network latency to request paths; frontend SDKs for React, Vue, Svelte, iOS, Android, and Flutter evaluate through a proxy layer. Flag hygiene is built in: flags are typed (release, experiment, operational, kill-switch, permission) with expected lifetimes, and Unleash marks overdue flags as potentially stale and surfaces unknown flags your SDKs request but that don't exist. Self-hosting via Docker keeps flag data, targeting rules, and evaluation infrastructure entirely on your side.
Ties
A federated bookmark manager written in Rust: Ties (formerly linkblocks) is your own small corner of the web for saving, organizing, and sharing good pages, connected to the fediverse over ActivityPub. Instead of rigid folders, bookmarks live in arbitrarily nested lists that link together into a knowledge graph. Saved pages are fetched, converted to a readable archived version, and stored in the database, so full-text search covers titles, URLs, and the actual page text - and the content survives if the original disappears. The federation model is deliberately anti-viral: there is no global timeline and no algorithmic feed. You publish public lists for anyone, follow users whose taste you trust, and mark trusted users whose bookmarks become part of your search range - extendable to trusted-users-of-trusted-users for a wider net. Public bookmarks post to Mastodon timelines, and WebFinger lookup makes your handle discoverable across fediverse platforms. Operationally it is about as light as web software gets: a single binary with all assets baked in, integrated TLS so it can run without a reverse proxy, PostgreSQL as the only dependency, OIDC single sign-on, and a bookmarklet for one-click saves. Note the project is alpha: single-user instances only, and all data should be considered public. AGPL-3.0 licensed, built with Rust and htmx.
Bookstack
Most wikis die of flat page-and-tag sprawl; BookStack's defining decision is enforced structure - an MIT-licensed PHP/Laravel platform (over MySQL) where content lives in a hierarchy of shelves, books, chapters, and pages, the way a physical library works. A shelf maps to a department, a book to "Engineering Runbooks," a chapter to "Database Procedures," a page to the actual document. That opinionation removes the "where does this go?" friction and keeps knowledge bases tidy as they grow. Editing works both ways: a clean WYSIWYG editor for most users, a Markdown editor with live preview for those who prefer it - switchable per page. Full-text search spans all books or scopes to one, with direct links to individual paragraphs, and include tags let you embed one page's content inside another so shared blocks update everywhere at once. Every edit creates a diffable, revertible revision. Page templates standardize recurring formats, tags add cross-cutting categorization, and built-in diagrams.net integration draws architecture diagrams in place. Authentication covers email/password plus OIDC, SAML2, LDAP, and social login; a full role and permission system locks content down per shelf, book, or page. Pages and books export to PDF, HTML, plain text, and Markdown, a REST API automates content, and the whole thing runs happily on the cheapest VPS you can find.
Tautulli
Plex's own dashboard shows current streams and forgets everything else - which is why every Plex server admin eventually installs Tautulli, the analytics layer. This Python web application (descended from PlexWatch and Headphones) logs complete watch history - what was watched, who watched it, when, where, from which device and IP, and whether it played directly or transcoded - and turns it into clean Highcharts graphs of daily plays, concurrent streams, bandwidth, and platform breakdowns. The home page surfaces top statistics over configurable windows: most-watched content, most active users, stream type ratios. For running a server shared with family and friends, this is operational truth: spot the user forcing 4K transcodes on a phone, see which libraries earn their disk space, and track sync activity across users. The notification engine triggers on server events - playback starts, transcode decision changes, recently added media, server down - through dozens of agents (Discord, Telegram, Slack, email, webhooks) with fully customizable text and conditions, plus arbitrary script execution. Scheduled newsletters email your users a styled digest of recently added content. A comprehensive API exposes every statistic for dashboards like Homarr, and an official mobile app monitors activity on the go. Themed to match Plex/Web. GPL-licensed.
Open-Meteo
High-resolution weather forecasts became a free commodity because of Open-Meteo - and this deployment puts the whole open-source engine on your own infrastructure. The public open-meteo.com service aggregates national weather models (NOAA GFS, DWD ICON, ECMWF, Meteo-France, and others) into one consistent JSON interface; self-hosting gives you that same API without rate limits, third-party dependency, or usage metering. The architecture is two cooperating services: the API server exposes forecast endpoints fully compatible with Open-Meteo query parameters - latitude, longitude, hourly and daily variables like temperature, precipitation, wind, and radiation - while a background sync worker downloads fresh weather model data on a configurable interval into a shared persistent volume at /app/data, so forecasts stay current and survive restarts without re-downloading. You control which weather models to mirror, which variables to store, how much historical depth to keep, and how often to refresh - meaning a lean deployment can sync only the model and region you actually query. Responses are plain HTTP/JSON, so integration with dashboards, Home Assistant-style automations, agricultural monitoring, IoT fleets, or any application takes minutes. For anyone making thousands of forecast calls a day, replacing a metered weather API with your own instance turns a recurring bill into a flat infrastructure cost.
The Lounge
"Forget about bouncers" became a real sentence because of The Lounge: a Node.js web IRC client that holds persistent connections to your networks 24/7, logging everything while you sleep, so closing the browser tab never means missing a message or losing your place in a channel. Open it again from any device - desktop, phone, tablet - and you resume exactly where you left off, with full history synchronized. Because it combines bouncer and client in one process, the experience feels like a modern chat app rather than 1990s infrastructure: push notifications for highlights and private messages (with self-generated VAPID keys, so even Web Push needs no third-party service), automatic link previews, inline file and image uploads, and full IRCv3 protocol support. It installs as a progressive web app from any modern browser, so phones get a native-feel client without an app store. Multi-user support means one instance serves your whole team or community, each user with their own networks and history, and LDAP integration ties into existing authentication. A public mode alternatively serves as an open, registration-free web chat for events or support channels. MIT-licensed, born as a fork of Shout, and a fixture of self-hosting stacks since.