3 August 2021

Open-source development packages we released in 2021 (so far)

Here at Steadfast, we use a lot of open-source software. In fact, the core technologies we build on like Laravel, Vue.js and Tailwind CSS are all open-source projects.

We don’t just use open-source projects but we like to make our own as well. We’ve recently released a couple of fresh packages, most of them derive from an initial need we have in one of our client projects.

In this post, I round up the packages we have released over the last couple of months.

Summit

Over the years, we have found ourselves building multiple video course platforms for our clients. At their core, they are all pretty similar: multiple lessons per course, users can track their progress, lessons can have additional downloads etc.

We decided it would be a good idea to extract the core functionality for this out into a package so we can speed up the process of building up video course platforms in the future. Meaning we can spend more time fine-tuning features specific to our client’s project.

The package provides a couple of Eloquent models and migrations (which you can override if need be) and some extra helper methods for things like uploading videos and getting the user’s progress as a percentage.

composer require steadfastcollective/laravel-summit

api.video

We have started to use api.video on new projects for storing, managing and playing videos back.

We ended up building two packages for api.video.

One package is a Laravel wrapper around api.video’s existing SDK, which allows you to use a Laravel Facade to get, update and delete videos.

use SteadfastCollective\ApiVideo\Facades\ApiVideo;

return ApiVideo::getVideo($videoId);

The other package we built was for Nova.

api.video allows you to handle video uploads from the front end, rather than sending it to your backend and passing it along that way.

We use Laravel Nova in a lot of projects so we built an api.video field for Nova. You can select the video you wish to upload, it sends it to api.video (using their JavaScript SDK behind the scenes) and back from that we get the Video ID which we can pass along to our Laravel app to store.

use SteadfastCollective\NovaApiVideo;

NovaApiVideo::make('Api Video Id', 'api_video_id')
    ->rules('required')
    ->acceptedTypes('video/*');

Obviously, both of these packages are available to pull into your project via Packagist:

composer require steadfastcollective/laravel-api-video
composer require steadfastcollective/nova-api-video

Daily

Daily.co provides a service to handle video/audio calls on the web. We used it recently on a complex video-conferencing platform.

In order to create or update rooms, we needed to talk with Daily’s API, which is exactly what this package does. We initially built this as part of the project but decided it would make sense to open-source in case anyone finds it useful in the future.

composer require steadfastcollective/laravel-dailyco

 

Here at Steadfast, we recognise the value of open-source software, both for ourselves and for other developers.

We look forward to releasing further packages in the future.

Duncan McClean

Web developer at Steadfast Collective.

Share Article