Open-source Symfony bundles for building websites — a shared EasyAdmin back-office, database-backed configuration, composable page blocks, e-commerce and more, each bundle usable on its own but designed to plug into the others.
Maintained by Laurent Marquet · PHP 8.4 · Symfony 8 · EasyAdmin 5 · MIT
| Package | What it does | |
|---|---|---|
CoreBundle c975l/core-bundle |
The base of the ecosystem in a single package. ConfigBundle — database-backed application configuration (site_config), the shared /management dashboard, user accounts, health check, backup, sitemaps, redirects. UiBundle — composable page Blocks, media library and site graphics, admin-editable theme, cookie banner, legal documents, database-driven forms, email templates, shared CSS/JS. |
One package, two bundles: c975L\ConfigBundle\ and c975L\UiBundle\ keep their own namespaces,
services, configs, translation domains and dashboard sections — there is no c975L\CoreBundle\
namespace. They referenced each other in both directions and could never be released independently,
so they are now released together. c975l/config-bundle and c975l/ui-bundle are superseded by this
package; see CoreBundle's UPGRADE.md —
no use, no @c975LUi/… template reference and no bundles.php entry changes.
Every bundle below rests on the core, and only on the core (plus PaymentBundle where checkout is involved). None of them rests on another.
| Bundle | What it does | Also requires | |
|---|---|---|---|
SiteBundle c975l/site-bundle |
Website foundation — full layout, database-driven pages, navbar and footer menus, collections, page templates, per-page SEO and health check | — | |
ShopBundle c975l/shop-bundle |
E-commerce — product catalog with categories, media, downloadable files and affinity recommendations | Payment | |
PaymentBundle c975l/payment-bundle |
Generic basket/checkout engine and Stripe payments; any bundle plugs its own sellable items in through BasketItemProviderInterface |
— | |
CrowdfundingBundle c975l/crowdfunding-bundle |
Crowdfunding campaigns — counterparts, contributors, news and media — plus an optional lottery tied to a campaign | Payment | |
BookBundle c975l/book-bundle |
A publisher's catalog of books and series, with media, video, press and marketing collections | — | |
GalleryBundle c975l/gallery-bundle |
Photo galleries — categories, batch upload, automatic derivatives, public viewer | — | |
SocialBundle c975l/social-bundle |
Social links managed in one place and share buttons for 15 networks | — |
Installing any of them pulls the core in, so composer require c975l/site-bundle is usually all you
need to start.
A site does not need SiteBundle. The core plus a shop, a book catalogue or a gallery is a complete site on its own: it has a page shell, the theme, its favicon and share preview, the cookie banner, the legal documents, accounts, redirects and the health check. SiteBundle is what adds pages — a composable page tree, menus, collections and their own SEO — not what makes a site work.
New to the ecosystem? Read CoreBundle's README first —
it points at the configuration model and the dashboard extension points (MenuProviderInterface,
AlertProviderInterface, ShortcutProviderInterface, SitemapProviderInterface…) that every other
bundle plugs into.
Building a website? Start with SiteBundle.
Want to see it running? bundles.975l.com presents every bundle, and its block gallery shows every block kind live.
- Application configuration lives in the database, edited in EasyAdmin — never in
.env - A bundle contributes to the dashboard by implementing an interface; no compiler pass to write
- Assets are served through AssetMapper — no npm, no Node, no build step
- Admin controllers live in
Controller/Management/ - Every bundle is designed to be overridden rather than forked
- A feature belongs to the bundle owning its domain, not to the one that happens to call it
Bundles marked archived on this page are no longer maintained. Notably, ShareButtonsBundle and
ContactFormBundle have been superseded — share buttons moved to
SocialBundle, contact forms to the core's database-driven
form system. PurchaseCreditsBundle predates the current architecture and is kept for existing
sites only.