DEV Community

Ilya Beliaev
Ilya Beliaev

Posted on

Laravel WebDAV Server enters Beta - API is now stable

🚀 I’ve just released the first beta version of my Laravel WebDAV server:

👉 https://github.com/N3XT0R/laravel-webdav-server/releases/tag/1.0.0-beta.1

📖 Docs: https://laravel-webdav-server.readthedocs.io/en/1.0.0-beta.1/


⚠️ Disclaimer

This is beta, not alpha anymore.

  • ✅ Public API is now stable
  • ⚠️ Still not production-ready
  • ❗ Focus is now on:
    • stability
    • bug fixing
    • real-world compatibility

No more major breaking changes are planned before 1.0.0.


💥 The real problem (if you've ever used WebDAV…)

WebDAV is one of those things that sounds simple — until you actually use it.

Different clients behave differently:

  • WinSCP
  • macOS Finder
  • Windows Explorer
  • random third-party tools

And when something breaks?

👉 You usually have no idea why

👉 No visibility

👉 No proper debugging


🔄 What changed since alpha?

Alpha was about figuring things out:

  • architecture
  • boundaries
  • abstractions

That phase is over.

Now it's about making the system:

  • predictable
  • reliable
  • usable in real scenarios

🧱 What “stable API” means

You can now safely build on top of:

  • config structure (webdav-server.*)
  • route shape (/webdav/{space}/{path?})
  • extension points (interfaces, bindings)
  • request pipeline

This will not change anymore in breaking ways before 1.0.


🔍 New: Logging & Observability (this is the big one)

The biggest problem with WebDAV integrations is lack of visibility.

So I fixed that.

Config

'logging' => [
    'driver' => 'stack',
    'level' => 'debug',
],
Enter fullscreen mode Exit fullscreen mode

Disable completely:

'driver' => null
Enter fullscreen mode Exit fullscreen mode

What you can now actually see

  • authentication results
  • credential extraction
  • request context resolution
  • storage resolution
  • authorization decisions
  • server construction
  • SabreDAV runtime behavior

Real-world example

A WebDAV client fails to upload a file.

Before:

  • ❌ “Something didn’t work”

Now:

  • ✅ You see:
    • credentials extracted
    • user resolved
    • storage space selected
    • authorization decision
    • exact failure point

This turns WebDAV from a black box into something you can actually debug.


🎯 Who this is for

This is useful if you want to:

  • expose Laravel storage via WebDAV
  • provide file access for external tools (e.g. WinSCP, Finder)
  • map S3 / local disks into a WebDAV endpoint
  • replace legacy file access workflows

🧠 What this project is now

This is no longer a prototype.

It’s a structured WebDAV layer for Laravel with:

  • explicit request pipeline
  • no hidden magic
  • clean separation (SabreDAV / Laravel / Storage)
  • contract-based architecture
  • policy-based authorization
  • dynamic storage mapping

Still evolving — but no longer unstable.


🎯 What I’m looking for now

Not architecture feedback anymore.

I want:

  • real-world usage
  • weird client behavior
  • edge cases
  • integration scenarios
  • performance issues

❓ Why not 1.0 yet?

Because API stability ≠ production readiness.

Still missing:

  • battle-tested behavior across clients
  • edge case handling
  • production hardening

GitHub

👉 https://github.com/N3XT0R/laravel-webdav-server/releases/tag/1.0.0-beta.1

📖 Docs: https://laravel-webdav-server.readthedocs.io/en/1.0.0-beta.1/


Tags

laravel #php #webdav #opensource #backend #api #flysystem

Top comments (1)

Some comments may only be visible to logged-in visitors. Sign in to view all comments.