Weave Code
Code Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Sheets Laravel Package

spatie/sheets

Spatie Sheets lets Laravel apps store and retrieve static content from plain text files. Markdown and front matter work out of the box, with flexible parsing, multiple content collections, indexing, and Eloquent-like casting—ideal for docs sites and blogs.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Decoupling content from databases: Ideal for lightweight, non-transactional content (e.g., documentation, marketing pages, or blog posts) where SQL overhead is unnecessary. Reduces database complexity and improves performance for read-heavy static content.
  • Developer experience (DX) for content management: Enables non-technical teams (e.g., writers, designers) to edit content directly in Markdown files (stored in version control) without requiring database migrations or admin panel access. Aligns with "Git as a CMS" workflows.
  • Multi-environment consistency: Content files can be versioned and synced across dev/staging/prod via Git, eliminating environment drift for static assets.
  • Roadmap for headless CMS alternatives: If building a custom CMS or replacing a bloated solution (e.g., Craft, Strapi), this package provides a lightweight foundation for structured content. Can later integrate with a headless API layer (e.g., via Laravel Sanctum or a custom endpoint).
  • Build vs. buy: Avoids vendor lock-in of proprietary CMS platforms while offering more flexibility than hardcoded Blade templates. Lower total cost of ownership for small-to-medium content needs.
  • Use cases:
    • Internal wikis or knowledge bases.
    • Documentation sites (e.g., API docs, product guides).
    • Personal blogs or portfolio sites.
    • Marketing landing pages with minimal dynamic content.
    • Localization support (store content in separate files per locale).

When to Consider This Package

  • Avoid if:
    • Content requires real-time collaboration (e.g., Google Docs-like editing). Sheets lacks a live-preview or concurrent-edit system.
    • You need user-generated content (e.g., comments, forums). This is a static file system, not a database.
    • Complex relationships between content entities are required (e.g., nested comments, tags with weights). Consider Eloquent or a dedicated CMS for relational data.
    • High-frequency writes or ACID transactions are needed. Filesystem operations are not atomic by default.
    • Your team lacks Markdown familiarity or needs a WYSIWYG editor. Front matter (YAML) requires basic YAML knowledge.
  • Look elsewhere if:
    • You need search functionality beyond basic file indexing. Consider Algolia or Laravel Scout for advanced search.
    • Media asset management (images, videos) is a core requirement. Pair with Laravel’s filesystem or a dedicated package like spatie/media-library.
    • You require role-based access control (RBAC) for content. Filesystem permissions are limited; consider Laravel’s built-in auth or a package like spatie/laravel-permission.
    • Performance at scale is critical (e.g., 10K+ pages). Benchmark filesystem I/O vs. database queries for your use case.

How to Pitch It (Stakeholders)

For Executives/Business Leaders

"Sheets is a lightweight, cost-effective way to manage static content—like documentation, marketing pages, or blogs—without the complexity of a full CMS. By storing content in plain text files (Markdown), we can:

  • Reduce dev overhead: No database migrations or admin panel maintenance.
  • Improve collaboration: Content editors can work directly in Git (e.g., GitHub/GitLab), with changes deployed via CI/CD.
  • Future-proof our stack: Avoid vendor lock-in while keeping content portable and version-controlled.
  • Lower costs: Eliminate licensing fees for proprietary CMS tools for simple use cases.

Perfect for internal wikis, product guides, or lightweight websites where content changes infrequently but must stay consistent across environments."

For Engineering Teams

"Sheets leverages Laravel’s filesystem to treat Markdown files (with front matter) like structured data, offering:

  • Zero-database dependency: Ideal for read-heavy, non-transactional content.
  • Flexible parsing: Supports custom formats beyond Markdown (e.g., JSON, CSV) via Laravel’s File facade.
  • Collection-based organization: Group files into logical sets (e.g., posts, docs) with independent caching.
  • Seamless integration: Works with existing Laravel apps—just inject the Sheets service and access content via $sheets->get('filename').
  • Performance: Filesystem reads are faster than database queries for static content; cache with Laravel’s cache driver for added speed.

Use case example: Replace hardcoded Blade templates for a documentation site with version-controlled Markdown files, editable by non-devs via PRs. Later, extend with a headless API layer if needed."*

For Design/Content Teams

"Sheets lets you:

  • Edit content in your favorite tools: Write in VS Code, Typora, or even Google Docs (export to Markdown).
  • Work in Git: Review changes, roll back versions, and collaborate via PRs—no more lost edits or environment mismatches.
  • Keep things simple: No logins or admin panels; just save files to a folder and deploy.
  • Stay flexible: Need to reorder pages or change layouts? Update a single file or template.

Think of it like a ‘Git-powered Notion’ for your Laravel app—without the bloat."

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
davejamesmiller/laravel-breadcrumbs
artisanry/parsedown
christhompsontldr/phpsdk
enqueue/dsn
bunny/bunny
enqueue/test
enqueue/null
enqueue/amqp-tools
milesj/emojibase
bower-asset/punycode
bower-asset/inputmask
bower-asset/jquery
bower-asset/yii2-pjax
laravel/nova
spatie/laravel-mailcoach
spatie/laravel-superseeder
laravel/liferaft
nst/json-test-suite
danielmiessler/sec-lists
jackalope/jackalope-transport