Nextcloud News is an RSS/Atom feed reader app for Nextcloud. It provides a PHP backend (MVC with controllers, services, DB mappers) and a Vue 3 + TypeScript frontend. Users can subscribe to feeds, organize them into folders, read articles with read/unread/starred states, apply keyword filters, import/export OPML, and sync with mobile/desktop clients via REST APIs. Background cron jobs handle feed updates and cleanup. The architecture follows Nextcloud's app framework with scoped dependencies to avoid conflicts. Key entry points include the web UI (Vue SPA), CLI commands (`occ news:*`), and API endpoints (v1-2, v1-3, v2). External dependencies include feed-io for parsing, Guzzle/PSR-18 for HTTP, and Readability.php for full-text extraction. The codebase is well-tested with unit, integration, and BATS tests, and uses modern tooling (Vite, PHP 8.2+).
This is a Filament PHP plugin that integrates ApexCharts into Filament's widget system. It provides a base `ApexChartWidget` class with traits for features such as defer loading, filtering (simple select and custom form schema via Filament Schemas), dark mode, header/subheading, footer, content height, loading indicator, and polling. An Artisan command (`make:filament-apex-charts`) generates widget stubs for 20+ chart types (area, bar, boxplot, bubble, candlestick, column, donut, heatmap, line, mixed, pie, polarArea, radar, radialbar, rangeArea, scatter, sunburst, timelineRangeBars, treemap, funnel). The frontend is powered by an Alpine.js component that initializes ApexCharts and listens for Livewire events to update options reactively. The package includes a build step for its JavaScript asset (compiled via esbuild) and a test suite using Pest. The architecture follows Laravel package development best practices with separation of concerns via traits and a service provider. The code is well-maintained, supports modern PHP 8.2, Laravel 11-13, Filament 4/5, and Livewire 3/4.
This Laravel package provides an Eloquent-like interface for AWS DynamoDB, allowing developers to use familiar ORM methods with DynamoDB while maintaining compatibility with Laravel's ecosystem. The package implements a sophisticated query builder that translates Eloquent-style conditions into efficient DynamoDB operations, intelligently choosing between Query and Scan operations and selecting optimal indexes when available. Key features include support for simple and composite keys, global/secondary indexes, asynchronous operations via AWS SDK promises, query scopes, and automatic attribute marshaling/unmarshaling. The architecture follows Laravel conventions with service providers, facades, and a base DynamoDbModel class. Notable components include a condition analyzer that optimizes query operations and a parser subsystem that correctly builds DynamoDB expression syntax with proper attribute name/value handling.
Mosparo is a self-hosted, open-source spam protection system that replaces CAPTCHA on web forms. It is built as a monolithic Symfony 6.4 application (PHP 8.1+) with Doctrine ORM supporting MySQL, PostgreSQL, and SQLite. The system provides a multi-tenant architecture where each project (website) can define custom spam detection rules (field rules for words, emails, domains, IPs, user agents, etc. and submission rules like random value detection) and security measures (honeypot, minimum time, proof-of-work, request delaying, IP lockout, equal submission blocking). Integration is done via a frontend JavaScript widget that communicates with a verification API. The codebase also includes an administration panel for system settings, user management, GeoIP2 integration, rule package imports, statistics, and self-update capabilities. The architecture follows standard Symfony patterns with controllers, services (helpers), repositories, and Twig templates. The rule engine is extensible via interfaces and is reasonably well-tested at the unit level. The project is actively maintained with a robust CI/CD pipeline and Docker support.
This repository provides the Docker image build infrastructure for Composer, the PHP dependency manager. It contains Dockerfiles for multiple Composer versions (1.10 LTS, 2.2 LTS, latest), a common entrypoint script, and GitHub Actions workflows that build multi-architecture images and push them to Docker Hub, Amazon ECR, and GitHub Container Registry. The Dockerfiles use multi-stage builds to produce both a full runtime image and a standalone binary image, with security best practices such as SHA checksum verification for downloaded artifacts. The entrypoint script wraps the Composer CLI with tini for proper signal handling and supports transparent command forwarding. The repository also includes a script for generating the official Docker library metadata and automated dependency updates via Dependabot and Renovate. It is a well-maintained, production-grade CI/CD pipeline for containerizing Composer.
phpVMS is a full-stack virtual airline management platform built on Laravel. It provides a comprehensive admin panel (Filament) for managing aircraft, flights, pilots, PIREPs, awards, finances, and more, alongside a public-facing frontend (Vue 3 SPA with Inertia or legacy Blade theme) for pilots to file reports, bid on flights, and view live maps. The system integrates OAuth2 authentication (Passport), SimBrief flight planning, Discord notifications, and an addon/module system for extensibility. The architecture follows Laravel conventions with a service layer, DTOs, custom Eloquent casts, event-driven cron jobs, and a modern map rendering pipeline using maplibre-gl and three.js. While the codebase is well-structured and actively maintained, there is some technical drift from dual frontend frameworks (Blade vs Vue/Preact) and a large set of data migrations that complicate upgrades.
Grocy is a self-hosted web application for household inventory and chores management. It provides a monolithic PHP backend (Slim 4, custom MVC) with a SQLite database, server-rendered Blade templates, and a JavaScript frontend (jQuery, Bootstrap 4, DataTables, FullCalendar). The system tracks stock (purchases, consumption, inventory, transfers), manages shopping lists, recipes, meal plans, chores, batteries, tasks, and equipment. It exposes a REST API for programmatic access, supports barcode scanning (including custom Grocycode format), external barcode lookup plugins, webhook-based label printing, multi-user permissions, and extensive localization via gettext. The codebase demonstrates solid engineering with a service layer, generic API controllers, feature flags, and a plugin system, but relies on an older frontend stack and a custom framework that may hinder contributor onboarding.
This repository implements a lightweight, self-hostable web service that serves SVG badges displaying GitHub profile view counts. The core logic is a single PHP entry point (`public/index.php`) that parses query parameters (username, label, color, style, base count, abbreviation flag), increments a view counter via a repository abstraction, and renders a badge image using the Poser library. The architecture follows a clean separation of concerns: value objects (`Username`, `Count`) enforce validation, a repository interface (`CounterRepositoryInterface`) abstracts storage, and a factory (`CounterRepositoryFactory`) selects between file-based or PDO-based persistence based on environment configuration. The file repository includes careful file locking to handle concurrent requests safely. The service is designed to be deployed via Docker with Nginx and PostgreSQL, but can also run with simple file storage for minimal setups. External dependencies are minimal and pinned via Composer. The code is well-structured, uses strict types, and demonstrates solid PHP engineering practices for a small service.
Spatie's Laravel Fractal package provides a fluent, Laravel-native wrapper around the League Fractal library for transforming data into API-friendly formats. It offers a global `fractal()` helper function, a Facade, and a Laravel Collection macro, allowing developers to easily serialize collections, items, and paginated results with custom transformers. The architecture is a standard Laravel package: a service provider registers the config file, binds a singleton to the container, and bootstraps the Collection macro. The core `Fractal` class extends `Spatie\Fractalistic\Fractal` and adds Laravel-specific features: automatic parsing of `include`, `exclude`, and `fields` query parameters from the request, configurable default serializers and paginators, and a `respond()` method that returns a `JsonResponse` with flexible status code, headers, and encoding options. The package also includes an Artisan command `make:transformer` to generate transformer classes. External dependencies are `league/fractal`, `spatie/fractalistic`, `illuminate/support`, `illuminate/contracts`, and `nesbot/carbon`. The codebase is clean, well-tested with Pest, and follows Spatie's typical high-quality standards, though it is a relatively thin integration layer rather than a complex standalone library.
Validating is a Laravel package that provides a trait for Eloquent models to automatically validate model attributes before saving. It integrates with Laravel's event system via an observer to trigger validation on model saving and restoring events. The package handles unique rule injection by automatically appending the model's ID to unique validation rules, supports custom validation messages, and provides methods to check validity, retrieve errors, and save with various validation behaviors (including exception throwing). The architecture is centered around the ValidatingTrait, which encapsulates validation logic, rule preparation, and validator creation, while delegating event handling to a separate observer class.
KLDNS is a production-grade, multi-tenant subdomain distribution and DNS management SaaS platform. Users register subdomains under administrator-managed parent domains, pay with an internal points economy, and create/manage DNS records that are synchronously written to external DNS providers. The backend is a layered Go application (Gin HTTP handlers → services → SQLite repositories via GORM plus raw SQL) with an embedded migration system, and the frontend is a Vue 3 + TypeScript + Element Plus SPA that gets compiled and embedded into the Go binary at release time. This is purely an application repo — no data research, pipelines, or analytics artifacts are present. The core workflows are: subdomain registration with points deduction and a pending-review approval workflow (with refunds on rejection), DNS record CRUD that writes remote provider APIs first and the local database second (with compensation deletes and a dns_write_jobs queue for failed remote operations), session/API-token authentication with hashed secrets, Cloudflare Turnstile captcha verification, and a full admin backend for users, groups, domains, provider credential configs, settings, and audit logs. DNS provider integrations use a factory-registered interface with adapters for Cloudflare, DNSPod, Aliyun, AWS Route53, Google Cloud DNS, Huawei, Baidu, and others — several implementing non-trivial signing schemes (AWS SigV4, Google JWT/OAuth2, Huawei SDK-HMAC-SHA256, Baidu BCE). Testing is a notable strength: services, repositories, utilities, and most provider adapters have unit tests using httptest servers, fake repositories, and fixed-time fixtures. The main weaknesses are internal consistency issues rather than broken functionality: duplicated domain/subdomain join SQL across repositories, a documented repository refactoring in progress, hardcoded magic values (admin group 99, default group 100), two different pagination strategies between admin (server-side) and user (client-side) frontend views, Chinese-language UI and error messages not abstracted behind localization, and a hardcoded default app secret that must be changed in production. The multi-provider DNS abstraction, crypto/validation utilities, and the embedded migration runner are genuinely reusable in other Go projects.
Firefly III is a self-hosted personal finance management application built on the Laravel PHP framework. It provides comprehensive double-entry bookkeeping with support for multiple currencies, accounts, budgets, categories, bills, piggy banks, recurring transactions, and rules. The system exposes both a full web UI using Blade templates and Alpine.js (with legacy jQuery components) and a RESTful JSON API (v1) for programmatic access. Key features include transaction splitting, budget limits, auto-budgeting, rule-based transaction processing, exchange rate management, webhook integration, multi-user with group administration, and detailed reporting with charts. The codebase follows a repository pattern with interfaces, uses events and listeners for side effects, and includes a substantial set of artisan commands for maintenance, upgrades, and data corrections.
RSS-Bridge is a PHP web application that generates RSS, Atom, and JSON feeds for websites that do not natively provide them. The core architecture is a plugin framework: each of the 447 'bridges' in bridges/ extends BridgeAbstract (or FeedExpander/XPathAbstract/CssSelectorBridge) and implements collectData() to scrape HTML, consume JSON APIs, parse embedded JSON-LD/Next.js state, or expand existing feeds into a standardized item structure. A front controller (index.php) dispatches through a middleware pipeline (security, caching, basic/token auth, exception handling) to actions such as DisplayAction, FrontpageAction, ListAction, and FindfeedAction, then renders items via pluggable output formats (Atom, MRSS, JSON Feed, HTML, Plaintext, Sfeed). Both web and CLI request paths are supported, and the Docker deployment is production-ready with nginx + PHP-FPM and curl-impersonate for anti-bot evasion. The framework itself demonstrates solid engineering: a lightweight DI container, factory classes for bridge/format/cache discovery, a well-designed HTTP client layer with retry logic and CloudFlare detection, a standalone RSS 1.0/2.0/Atom/MediaRSS feed parser, systematic SEO/JSON-LD metadata extraction, and multiple cache backends (file, SQLite WAL, memcached, null) with TTL policies. PHPUnit tests cover feed parsing, format output snapshots, cache implementations, parameter validation, and BridgeImplementationTest enforces structural conventions across all bridges. The bridge base-class conventions (PARAMETERS arrays, contexts, detectParameters, throwClientException/throwServerException) are consistent and well-documented. The dominant weakness is inherent to the scraping domain: most bridges rely on brittle CSS selectors, undocumented APIs, or hardcoded endpoints that break as upstream sites change. Known issues visible in code include hardcoded API keys (Formula1, Giphy, Instructables, TwitterClient), deprecated/duplicate bridges (VkBridge states 'Does not work anymore'; Mozilla and Kernel BugTracker bridges defer to BugzillaBridge), logic bugs (Modrinth parameter key typo, GGDeals assignment-in-condition, Steam assignment-in-condition), a PHP 7.4 compatibility floor (EOL since 2022), and bundled Parsedown 1.7.4. The anti-bot arms race adds ongoing maintenance burden, and many low-traffic bridges appear effectively unmaintained. Overall, the core framework is a strong, extensible example of plugin-style feed generation architecture with genuinely reusable components; the bridge corpus is heterogeneous in quality, mixing well-crafted adapters with fragile scrapers. The project is actively maintained with recent commits, CI workflows, and a large contributor base.
BeikeShop is a production-ready, open-source cross-border e-commerce platform built on Laravel 12 (PHP 8.2+). It provides a full-featured online store with admin panel, shop frontend, multi-language (10+ languages), multi-currency, and a plugin system for extensibility. The codebase is a Laravel monolith with separate `Beike\Admin`, `Beike\Shop`, and `Beike\AdminAPI` namespaces, using Blade templates, Vue 2 (Element UI) for admin, and jQuery for the shop frontend. Key features include product/category management, shopping cart, checkout with multiple payment gateways (Stripe, PayPal, etc.), order state machine, RMA (returns), tax calculation, a drag-and-drop page builder for home pages, and a comprehensive installer. The architecture follows repository and service patterns, with a custom hook system for plugin extensibility. While the codebase is functional and actively maintained, it shows signs of technical drift (Vue 2, older JavaScript libraries, hardcoded strings, and some poor machine translations) and the plugin system adds complexity. The highlight is a well-designed, reusable Hook system and a clean StateMachineService for order workflows.
This repository implements `spc`, a CLI tool for building fully static PHP executables with selected extensions, SAPIs, and dependency libraries. It orchestrates downloading source archives or prebuilt binaries, extracting them, compiling dependency libraries (using autoconf, CMake, or Meson), patching PHP source code, and assembling the final static binary. The architecture is modular: a Symfony Console application with a registry/plugin system that loads package definitions from YAML and PHP classes, an artifact downloader supporting multiple source types (GitHub releases, PECL, git, URL, etc.), a build executor abstraction for Unix and Windows (autoconf/CMake with static/PIC flags), a dependency resolver for topological ordering, and a doctor module for environment health checks with auto-fix. Cross-platform support covers Linux, macOS, and Windows, with toolchain abstractions for GCC, Clang, MSVC, and Zig. The project is under active development (v3 rewrite) with extensive version-specific patches for PHP source (8.0-8.6) and support for 100+ extensions. It is primarily a build system tool, not a data analysis or research project.
Chamilo LMS is a PHP-based Learning Management System built with Symfony framework and Vue.js frontend. It provides course management, assessments, gradebook, attendance tracking, and collaboration tools through a modular plugin architecture. The system features RESTful API endpoints consumed by Vue services, Doctrine ORM for data persistence, and supports over 60 languages. While actively modernizing with Vue.js 3 and Symfony 6, it maintains legacy PHP components alongside new implementations, creating some technical debt from gradual migration. The plugin system follows a standardized structure enabling extensibility, and the codebase demonstrates solid engineering practices with clear separation of concerns between CoreBundle, CourseBundle, and PluginBundle.
TasmoAdmin is a web-based application for managing Tasmota-flashed IoT devices. It provides a responsive interface for device configuration, monitoring, firmware updates, and batch operations. The application features a modular PHP backend with dependency injection, factory patterns, and reusable helper utilities. It supports MQTT-based device discovery, automatic firmware updates via GitHub, and includes a self-update mechanism. The frontend uses Bootstrap 5 and jQuery for a modern user interface, with JavaScript modules handling dynamic interactions and state management.
This repository is a PHPStan extension that detects banned code patterns in PHP projects. It provides two main rules: BannedNodesRule to forbid specific function calls and language constructs (like var_dump, exit, echo), and BannedUseTestRule to prevent the use of test namespaces in non-test files. The extension is configured via PHPStan's neon configuration and integrates seamlessly into the PHPStan analysis process. The architecture is straightforward, with each rule implemented as a separate class that processes AST nodes and reports violations. The project demonstrates good practices in PHPStan extension development, including configurable rules, proper error building with non-ignorable options, and thorough unit testing.
This is a PHP Composer library containing shared code used by MaxMind's various web service client APIs, such as GeoIP2 and minFraud. It is not a standalone application; it is an internal dependency that provides a base HTTP client, request/response handling, authentication, and typed exception mapping for MaxMind web services. The README explicitly notes that the code is for internal use and that semantic versioning does not apply.
This repository is the official Composer project template for bootstrapping new Sulu CMS applications. It is not a standalone CMS but a pre-configured Symfony 7.4 application skeleton that wires together the Sulu 3.0 bundles (admin, media, security, page, search, article, snippet, etc.) with Doctrine ORM, MySQL, Twig, Messenger, Flysystem, and a React-based admin SPA built via Webpack. The application exposes two runtime contexts through a single kernel: an admin backend under /admin with a JSON API and a website frontend serving Twig templates. Entry points are public/index.php for web requests and bin/console, bin/adminconsole, bin/websiteconsole for CLI operations. The template includes production-oriented infrastructure: HTTP cache layer via SuluHttpCache, FOSHttpCache for proxy caching, 2FA via scheb/2fa, search via CMSIG Seal with Loupe adapter, media handling, and a maintenance mode script that works without framework dependencies. The composer.json defines an extensive lint/test pipeline (PHPStan level max, PHP-CS-Fixer, Rector, Twig CS Fixer, container validation, Doctrine schema validation) and the GitHub Actions workflow tests the template across PHP 8.2-8.5, MySQL 5.7-8.4, and Node.js 20-24, including a create-project test that verifies the template can bootstrap a new project. Because this is a skeleton, the actual application code is minimal (a Kernel class, empty fixtures, and basic Twig templates). Its value lies in the configuration and integration of the Sulu ecosystem, serving as a starting point for multi-lingual, multi-portal CMS websites. The repository is actively maintained with recent commits and a comprehensive CI pipeline.