Open Source

The web development world is fully dependent on open-source software. Everyone is getting an enormous amount of value from open source, at a completely zero cost. Therefore it's only fair to give back.

Which is why we do a lot of open-source work. In fact, our entire business began with a multi-tenancy package. Open-source doesn't just provide value to its users, it also provides massive value to its creators and maintainers: it proves skill, shows credibility, builds goodwill, and distinguishes them from all other developers — for instance on job applications.

Open-source is a positive-sum game, and there's no reason not to play it.


If you're considering starting an open-source project, we highly encourage you to do so. You can join our Discord's #opensource channel.

And if you don't want to start a new project, and would like to help maintain existing projects instead, you can help with our projects! Check out our GitHub and reach out to [email protected].


Our work

Laravel

  • tenancy provides multi-tenancy in a way that doesn't require you to change your codebase. It's also the most feature-rich multi-tenancy package for Laravel.
  • airwire provides a PHP-TypeScript interface for writing frontend UI components that interact with Livewire-style PHP components.
  • gloss extends the Laravel translator with a couple of extremely powerful features that make dealing with overrides and complex languages easy.
  • jobpipeline lets you use a pipeline of multiple jobs as an event listener. Useful for creating and migrating databases in synchronous order after a tenant is created.
  • virtualcolumn adds the ability to store attributes on a model even if there aren't dedicated database columns for them. Anything that's not put into its own column gets stored in a JSON data column.
  • laravel-hasmanywithinverse lets you define the inverse relation for HasMany, which allows for huge performance improvements in a few cases.

Livewire

  • livewire-access provides an advanced layer for enforcing access to Livewire properties. Useful in cases when you need public properties in PHP while keeping them hidden from the frontend.
  • wire-replace provides a wire:replace directive for more control over the DOM diffing algorithm.

Alpine.js

  • alpine-typescript provides helpers for building class-based Alpine.js components with TypeScript. Very useful for projects that already use Alpine, but have a few complex components.
  • alpine-reactive provides a layer for object reactivity between Alpine.js and the other JavaScript code. It can also be used for sharing state between multiple Alpine components.
  • alpine-arrow-focus provides a useful abstraction for adding arrow focus-based navigation to any HTML elements.