Packages's post
How to implement Mailchimp into Gatsby SiteGatsby

How to implement Mailchimp into Gatsby SiteGatsby
We are recently developed a site into the gatsby. basically contact us feature is common in all website. and we are implementing Mailchimp because it's a very popular platform in email market. So, I will show you how to setup a Mailchimp in the Gatsby site. ## Using gatsby-source-mailchimp Use your Mailchimp API key to download your campaigns into Gatsby’s GraphQL data layer! Install the package by running the following command: `npm i gatsby-source-mailchimp --save` ### How to configure Once the installation is complete, you can now add this plugin to your gatsby-config.js, like so: Configure mailchimp Key and add this {resolve: `gatsby-source-mailchimp`} into the plugins array. code looks like
``` module.exports = { // ... plugins: [ { resolve: 'gatsby-source-mailchimp', options: { // Avoid including your key directly in your file. // Instead, opt for adding them to .env files for extra // security ;) key: 'asd712jdas90122jdas90122jkadsd1-usXX', rootURL: 'https://usXX.api.mailchimp.com/3.0', }, }, ], // ... } ```
Above is the minimal configuration required to have it work. By default, This plugin was made out of a specific necessity, so it doesn't cover all of Mailchimp’s data sources, focusing only on campaigns. this plugin are provide few options. you can refer here. ## Using `.env` variables to hide your key If you don’t want to attach your API key to the repo, you can easily store it in .env files by doing the following:
``` // In your .env file MAILCHIMP_KEY = 'asd712jdas90122jdas90122jkadsd1-usXX'; ``` ``` // In your gatsby-config.js file require('dotenv').config({ path: `.env.${process.env.NODE_ENV}`, }); module.exports = { // ... plugins: [ { resolve: 'gatsby-source-mailchimp', options: { key: process.env.MAILCHIMP_KEY, rootURL: 'https://usXX.api.mailchimp.com/3.0', // ... }, }, ], // ... }; ```
How to use AdminLTE theme with Laravel FortifyLaravel

How to use AdminLTE theme with Laravel FortifyLaravel
Recently, the Laravel team announced a Laravel Fortify. A framework agnostic authentication backend for laravel applications. It provides registration, authentication along with two-factor authentication.
As said above, it is a framework agnostic, so it doesn't provide any blade views with it. You can implement views of your choice of the frontend. Blade, Vue, React with Bootstrap or TailwindCSS, or any other CSS framework.
Today we are going to see how we can use Laravel Fortify with one of the most popular Bootstrap 4 theme AdminLTE v3.
We can actually do that in minutes with the package that we already developed called Laravel UI AdminLTE.
This package also works with the previous laravel version to have an authentication system with Laravel UI for Laravel Frontend Scaffolding.
Let's see step by step, how we can do that.
Install Packages
Install Laravel Fortify and Laravel UI AdminLTE by the following command,
composer require laravel/fortify infyomlabs/laravel-ui-adminlte
Publish Fortify Resources
This command will publish all required actions in the app/Actions
directory along with the Fortify configuration file and migration for two-factor authentication.
php artisan vendor:publish --provider="Laravel\Fortify\FortifyServiceProvider"
Run Migrations
Then run migrations,
php artisan migrate
Add Fortify Service Provider
Next step, add published FortifyServiceProvider to config/app.php
Run AdminLTE Fortify Command
Run the following command,
php artisan ui adminlte-fortify --auth
Install Node Modules and Run a Build
As a next step, install required npm modules and run a build,
npm install && npm run dev
And we are done. Now visit the home page and you should be able to see the full authentication system working including,
- Login
- Registration
- Forgot Password
- Reset Password
- Home page
Laravel AdminLTE UI also provides a starting layout with a sidebar menu and header once you do login. so you are all set to go.
Laravel Packages we use everyday at InfyOmLaravel

Laravel Packages we use everyday at InfyOmLaravel
Lots of people ask me frequently, "Which are the laravel packages that you use in almost all projects?" when we meet in Meetup or any other events regardless of its online or physical events.
Let me describe today some of the packages that we almost use in all of the projects.
We are working in Laravel for almost 7+ years and in these years we have used lots of packages, some from the community and some of our own.
I am categorizing these into 2 categories.
- Must used packages
- Common Need/Functionality specific packages
Must used packages
These are the packages which are must be included in all of our projects. No Excuses.
barryvdh/laravel-ide-helper
Laravel exposes a lot of magic methods and properties. IDE Helper is a very good package when it comes to auto-complete those properties and methods. Even it does an amazing job while refactoring properties or methods of the model.
barryvdh/laravel-debugbar
The second one is from the same author, debugbar helps to debug the request in terms of the number of queries fired, time taken by each query, number models retrieved from db, time taken by each request, and much more.
imanghafoori/laravel-microscope
Laravel Microscope improves the readability of your code. Early returns, unnecessary else statements, and many more. so your code looks clean and efficient in terms of execution as well.
beyondcode/laravel-query-detector
One of the problems that we face is, missing eager loading. In ongoing development, sometimes we add relationships objects in the loops, and then laravel fires tons of queries to the database. Laravel Query Detector detects that and gives warning while development environment.
InfyOmLabs/laravel-generator
No application can be ever built without few CRUDs. CRUDs are essential in almost all web applications. Also, APIs of that CRUDs are essentials while building a backend for Mobile or Frontend apps. Laravel Generator is our own developed package that we use in all of the applications to make the CRUD building process faster. It can be used with two themes right now, AdminLTE and CoreUI. But it's also frontend framework agnostic.
Common Need/Functionality specific packages
These are the packages that are used when we particularly need that kind of functionality in the application.
- Single Page application without JS - Livewire
- Role Permissions - spatie/laravel-permission
- Media Management - spatie/laravel-medialibrary
- Full Text Search - Laravel Scout
- Payment - Laravel Cashier
- Frontend Scaffolding - Laravel UI AdminLTE & Laravel UI CoreUI
- APIs token management - Laravel Sanctum
- Realtime Apps - Laravel Echo with Pusher & Laravel Echo Server
- One Signal - Shailesh OneSignal
Will keep this list updating.
Laravel UPCItemDB PackageLaravel

Laravel UPCItemDB PackageLaravel
We are working on an inventory system for one of our client for a long time and recently, what we needed was to retrieve inventory item information by UPC code or ISBN or EAN. so the end customer does not need to fill a full form with all the details.
We implemented a feature where customers can just enter or scan UPC/ISBN/EAN code on the mobile app and we retrieve all the information of the product and auto-fill it with an image of the product as well.
So we started using UPCItemDB, which has a very nice database of items. You can call their API and retrieve information about the product by sending UPC code. It has a free plan that you can use for trial purposes.
But there was no proper PHP or Laravel package for that, so we decided to make our own and publish it to Github.
It's called laravel-upcitemdb
and here is the link for it: https://github.com/InfyOmLabs/laravel-upcitemdb
Here are the installation steps and how to use this package.
Installation
Install the package by the following command,
composer require infyomlabs/laravel-upcitemdb
Publish the config file
Run the following command to publish config file,
php artisan vendor:publish --provider="InfyOm\UPCItemDB\UPCItemDBServiceProvider"
Add Facade
Add the Facade to your config/app.php
into aliases
section,
'UPCItemDB' => \InfyOm\UPCItemDB\UPCItemDB::class,
Usage
Lookup
For UPC Lookup, use the lookup method by calling,
\UPCItemDB::lookup('4002293401102');
Search
For Search API, you can use the search method,
\UPCItemDB::search('iphone 6');
\UPCItemDB::search('iphone 6', [
'brand' => 'apple'
]);