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 (0)