<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Dinesh Wijethunga</title>
    <description>The latest articles on DEV Community by Dinesh Wijethunga (@dineshstack).</description>
    <link>https://dev.to/dineshstack</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3550573%2F24b18188-f648-4ede-864e-3b977482ced0.jpg</url>
      <title>DEV Community: Dinesh Wijethunga</title>
      <link>https://dev.to/dineshstack</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/dineshstack"/>
    <language>en</language>
    <item>
      <title>What Is CI/CD? A Laravel Developer's Plain English Guide</title>
      <dc:creator>Dinesh Wijethunga</dc:creator>
      <pubDate>Thu, 16 Jul 2026 12:41:05 +0000</pubDate>
      <link>https://dev.to/dineshstack/what-is-cicd-a-laravel-developers-plain-english-guide-274h</link>
      <guid>https://dev.to/dineshstack/what-is-cicd-a-laravel-developers-plain-english-guide-274h</guid>
      <description>&lt;p&gt;When I was a junior developer, I heard "CI/CD pipeline" and immediately pictured some DevOps wizard doing infrastructure magic I'd never understand. I nodded along in meetings and Googled it later, only to find documentation written for people who already knew what it meant.&lt;/p&gt;
&lt;p&gt;This series exists so you don't have to do that.&lt;/p&gt;
&lt;p&gt;By the end of seven posts you'll have a working GitHub Actions pipeline that runs your tests against a real MySQL database, enforces code style, does static analysis, and deploys to a VPS — the same setup I use on production Laravel projects today.&lt;/p&gt;
&lt;h2&gt;The Problem CI/CD Solves&lt;/h2&gt;
&lt;p&gt;Picture this. You're on a team of three developers. Alice pushes a feature branch. Bob merges his own branch an hour later. Neither of them ran the tests. On Friday afternoon, you merge both to main and deploy. The site is down by midnight because Alice's migration clashed with Bob's model change, and neither worked in isolation.&lt;/p&gt;
&lt;p&gt;This is the "it works on my machine" problem scaled to a team. CI/CD is the systematic answer.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;CI — Continuous Integration&lt;/strong&gt; means every push to the repository triggers an automated check. Run the tests. Check the code style. Run static analysis. If any step fails, the push is rejected before it ever reaches main.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;CD — Continuous Delivery/Deployment&lt;/strong&gt; is the second half. Once a push passes CI, automatically ship it to a staging or production server. No manual FTP. No SSH-in-and-run-artisan. The pipeline handles it.&lt;/p&gt;
&lt;h2&gt;The Mental Model That Made It Click for Me&lt;/h2&gt;
&lt;p&gt;Think of CI/CD as a factory production line.&lt;/p&gt;
&lt;p&gt;Raw material (your code) enters at one end. At each station, a robot (a GitHub Actions job) does a quality check:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Does it compile? (Composer install, npm install)&lt;/li&gt;
&lt;li&gt;Does it look right? (Pint formatting, ESLint)&lt;/li&gt;
&lt;li&gt;Does it work correctly? (Pest/PHPUnit test suite)&lt;/li&gt;
&lt;li&gt;Does it analyse cleanly? (PHPStan)&lt;/li&gt;
&lt;li&gt;Is it safe to ship? (Security audit)&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Only code that passes every station reaches the end of the line — the production server. If any station rejects it, the line stops and you get notified immediately.&lt;/p&gt;
&lt;p&gt;The alternative is doing all those checks manually, inconsistently, or not at all. I've been on projects where "deployment" meant one developer SSHing into the server, doing &lt;code&gt;git pull&lt;/code&gt;, and hoping for the best. Something breaks at 2am. No-one knows what changed. Everyone blames each other. CI/CD eliminates that class of problem entirely.&lt;/p&gt;
&lt;h2&gt;The Three Things You Need&lt;/h2&gt;
&lt;p&gt;To follow this series you need:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;A Laravel project in a GitHub repository&lt;/li&gt;
&lt;li&gt;A GitHub account (the free tier includes 2,000 CI minutes per month — enough for a small team)&lt;/li&gt;
&lt;li&gt;Eventually, a VPS (we cover this in Post 6 — DigitalOcean, Hetzner, or any Ubuntu 22.04+ server works)&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;You do not need to already know YAML. You do not need DevOps experience. You need to be able to read a Laravel controller and write a basic Pest test. That's it.&lt;/p&gt;
&lt;h2&gt;How GitHub Actions Fits In&lt;/h2&gt;
&lt;p&gt;GitHub Actions is GitHub's built-in CI/CD engine. You write workflow files in YAML inside &lt;code&gt;.github/workflows/&lt;/code&gt;. Every time you push, GitHub spins up a fresh Ubuntu virtual machine, runs your YAML instructions, and reports back pass or fail on the pull request.&lt;/p&gt;
&lt;p&gt;The key insight: that VM starts empty. It has no PHP, no Composer, no MySQL, no &lt;code&gt;.env&lt;/code&gt; file. Your workflow has to install everything from scratch on every run. This is actually a feature, not a bug — it means your pipeline is reproducible. If it passes in CI, it will pass on any fresh server too.&lt;/p&gt;
&lt;p&gt;Here's the skeleton of a workflow file:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;name: API CI

on:
  push:
    branches: [main, develop]
  pull_request:
    branches: [main, develop]

jobs:
  tests:
    name: Run Tests
    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v4
      - name: Setup PHP
        uses: shivammathur/setup-php@v2
        with:
          php-version: '8.4'
      - name: Install dependencies
        run: composer install
      - name: Run tests
        run: ./vendor/bin/pest&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;In the next post we'll build this out to a production-grade workflow. For now, just recognise the structure: trigger → jobs → steps.&lt;/p&gt;
&lt;h2&gt;What We're Building in This Series&lt;/h2&gt;
&lt;p&gt;Here's the roadmap. Each post is a standalone tutorial you can follow:&lt;/p&gt;
&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;&lt;tr&gt;
&lt;th&gt;#&lt;/th&gt;
&lt;th&gt;Post&lt;/th&gt;
&lt;th&gt;What you'll have after&lt;/th&gt;
&lt;/tr&gt;&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;This post&lt;/td&gt;
&lt;td&gt;The mental model&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;First workflow&lt;/td&gt;
&lt;td&gt;A YAML file that runs on push&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;Tests with MySQL&lt;/td&gt;
&lt;td&gt;Pest against a real DB in CI&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;Code quality gates&lt;/td&gt;
&lt;td&gt;Pint + PHPStan blocking merges&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;td&gt;Secrets and env vars&lt;/td&gt;
&lt;td&gt;Secure config management&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;6&lt;/td&gt;
&lt;td&gt;VPS deployment&lt;/td&gt;
&lt;td&gt;Zero-downtime ship via SSH&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;td&gt;Debugging CI failures&lt;/td&gt;
&lt;td&gt;Systematic failure diagnosis&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;p&gt;Let's build it.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Originally published at &lt;a href="https://dineshstack.com/en/what-is-cicd-laravel-developer-guide?utm_source=devto&amp;amp;utm_medium=crosspost" rel="noopener noreferrer"&gt;dineshstack.com&lt;/a&gt; — read the full version with code samples and updates there.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>cicd</category>
      <category>laravel</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>How to build Modern Web Apps: Laravel 12 + InertiaJS + ReactJS</title>
      <dc:creator>Dinesh Wijethunga</dc:creator>
      <pubDate>Sat, 13 Dec 2025 07:49:00 +0000</pubDate>
      <link>https://dev.to/dineshstack/how-to-build-modern-web-apps-laravel-12-inertiajs-reactjs-1c5m</link>
      <guid>https://dev.to/dineshstack/how-to-build-modern-web-apps-laravel-12-inertiajs-reactjs-1c5m</guid>
      <description>&lt;p&gt;People in the modern world need fast, innovative solutions for many things. When it comes to web application development, some apps are developed as SPAs (Single-Page Applications) while others are MPAs (Multi-Page Applications). SPAs are typically built with client-side programming languages like React, Vue, and Svelte, while MPAs are developed with server-side languages like PHP and Java.&lt;/p&gt;

&lt;p&gt;What if someone needs to combine these approaches to build an app quickly? This might seem overwhelming. However, with the new features of Laravel 12 framework and InertiaJS, it's now very easy to integrate with React, Vue, and most other client-side languages.&lt;/p&gt;

&lt;p&gt;This tutorial will teach you how to set up a Laravel app with InertiaJS and ReactJS for SPA or MPA web applications.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Installation Prerequisites&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;PHP 8.3 or above&lt;/li&gt;
&lt;li&gt;Laravel installer (or Composer for Laravel installation)&lt;/li&gt;
&lt;li&gt;Latest NodeJS version&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Step 1: Create a Laravel Project&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;laravel new dineshstack.blog
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;During the installation, you'll be prompted with several options. Here's what to choose:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Choose React for the Frontend&lt;/strong&gt;&lt;br&gt;
Select the React option when prompted to set up the Laravel, Inertia, and React stack:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Select Authentication System&lt;/strong&gt;&lt;br&gt;
Choose Laravel's built-in authentication for the default Starter Kit of React Laravel:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pick Testing Framework&lt;/strong&gt;&lt;br&gt;
Select either PHPUnit or Pest as your testing framework. After this selection, Laravel will install all the required dependencies for your application:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Install Frontend Dependencies&lt;/strong&gt;&lt;br&gt;
When asked whether to install npm dependencies, choose yes. This will install all the React dependencies and other frontend packages:&lt;/p&gt;

&lt;p&gt;Step 2: Verify Installation and Run the Application&lt;br&gt;
If you've completed all steps correctly, you now have a fully installed application. Navigate to your project directory:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;cd dineshstack.blog/
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Start the development server:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;php artisan serve
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You'll see output similar to this:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9znbsvzi3du481dpx916.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9znbsvzi3du481dpx916.png" alt=" " width="800" height="193"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Your application will be available at:&lt;br&gt;
&lt;code&gt;http://127.0.0.1:8000&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;🎉 And You're Done!&lt;br&gt;
You now have a fully functional Laravel application with InertiaJS and ReactJS integration. This setup provides you with:&lt;/p&gt;

&lt;p&gt;A powerful Laravel backend&lt;/p&gt;

&lt;p&gt;React frontend with InertiaJS for seamless integration&lt;/p&gt;

&lt;p&gt;Built-in authentication system&lt;/p&gt;

&lt;p&gt;Modern development tooling&lt;/p&gt;

&lt;p&gt;You can start building amazing web applications with this powerful stack. The combination gives you the best of both worlds: Laravel's robust backend capabilities with React's dynamic frontend experience.&lt;/p&gt;

&lt;p&gt;Next Steps:&lt;br&gt;
Explore the generated authentication pages&lt;/p&gt;

&lt;p&gt;Check out the React components in the resources/js/Pages directory&lt;/p&gt;

&lt;p&gt;Review the Laravel routes that connect to your React components&lt;/p&gt;

&lt;p&gt;Start building your custom features!&lt;/p&gt;

&lt;p&gt;Happy coding! 🚀&lt;/p&gt;

&lt;p&gt;Enjoyed this tutorial? Check out more Laravel content on &lt;a href="https://dineshstack.com" rel="noopener noreferrer"&gt;Dinesh Stack&lt;/a&gt; and follow me for more web development tips!&lt;/p&gt;

</description>
      <category>programming</category>
      <category>laravel</category>
      <category>react</category>
      <category>webdev</category>
    </item>
    <item>
      <title>How to Set-Up MySQL with DBngin for Laravel 12 Development</title>
      <dc:creator>Dinesh Wijethunga</dc:creator>
      <pubDate>Thu, 23 Oct 2025 19:59:03 +0000</pubDate>
      <link>https://dev.to/dineshstack/how-to-set-up-mysql-with-dbngin-for-laravel-12-development-21lb</link>
      <guid>https://dev.to/dineshstack/how-to-set-up-mysql-with-dbngin-for-laravel-12-development-21lb</guid>
      <description>&lt;h2&gt;
  
  
  Setting Up MySQL with DBngin for Laravel 12 Development
&lt;/h2&gt;

&lt;p&gt;Welcome back to our Laravel 12 setup series! In the &lt;a href="https://dineshstack.com/en/laravel-12-setup-complete-installation-guide-2025" rel="noopener noreferrer"&gt;previous post&lt;/a&gt;, we got our PHP environment set up using Herd (or MAMP) and successfully installed a fresh Laravel 12 project. In this lesson, we're going to create a dedicated home for our application data.&lt;/p&gt;

&lt;p&gt;While tools like MAMP include MySQL, they can present some workflow challenges. In this guide, we'll configure &lt;strong&gt;DBngin&lt;/strong&gt;—a streamlined and user-friendly database server manager for macOS and Windows. It enables you to run multiple versions of MySQL, PostgreSQL, and Redis simultaneously, without version conflicts.&lt;/p&gt;

&lt;p&gt;By the end of this tutorial, you'll have a clean, isolated database server configured for your Laravel 12 application. This setup will work seamlessly with any application that requires database connectivity, not just Laravel.&lt;/p&gt;

&lt;h2&gt;
  
  
  🎯 What You'll Learn
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;How to install and configure DBngin&lt;/li&gt;
&lt;li&gt;Setting up MySQL for Laravel development&lt;/li&gt;
&lt;li&gt;Creating databases and managing connections&lt;/li&gt;
&lt;li&gt;Connecting Laravel 12 to your database&lt;/li&gt;
&lt;li&gt;Testing the database connection&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  📋 Prerequisites
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Laravel 12 project set up (&lt;a href="https://dineshstack.com/en/laravel-12-setup-complete-installation-guide-2025" rel="noopener noreferrer"&gt;Part 1&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;Basic terminal knowledge&lt;/li&gt;
&lt;li&gt;macOS or Windows machine&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  🚀 Step 1: Download and Install DBngin
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1.1 Get DBngin
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Visit the official DBngin website at &lt;a href="https://dbngin.com/" rel="noopener noreferrer"&gt;dbngin.com&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Click the 'Download For Mac' button (or 'Download For Windows' if you're on Windows)&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0w7h71mr6sknszp0p1y8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0w7h71mr6sknszp0p1y8.png" alt="DBngin Download Page" width="800" height="849"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  1.2 Install the Application
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Drag the DBngin app into your Applications folder&lt;/li&gt;
&lt;li&gt;Double-click the DBngin icon in Applications to launch it&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;That's all there is to it! You've successfully installed DBngin.&lt;/p&gt;

&lt;h2&gt;
  
  
  🗄️ Step 2: Starting Your Database Server
&lt;/h2&gt;

&lt;h3&gt;
  
  
  2.1 Launch and Configure
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Open the DBngin application—you'll see a clean, intuitive interface&lt;/li&gt;
&lt;li&gt;By default, DBngin offers the latest versions of MySQL and PostgreSQL&lt;/li&gt;
&lt;li&gt;For Laravel projects, &lt;strong&gt;MySQL&lt;/strong&gt; is the popular choice&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  2.2 Create MySQL Connection
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Click the plus icon (+) at the top&lt;/li&gt;
&lt;li&gt;Select MySQL from the options&lt;/li&gt;
&lt;li&gt;Choose the version compatible with your processor&lt;/li&gt;
&lt;li&gt;Give it a memorable name (e.g., "Laravel Dev")&lt;/li&gt;
&lt;li&gt;Keep the default port (3306)&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fh214mj84j5lbldkbm2yh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fh214mj84j5lbldkbm2yh.png" alt="DBngin MySQL Setup" width="800" height="792"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  2.3 Start the Server
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Click "Create" - DBngin will download MySQL and set up the connection&lt;/li&gt;
&lt;li&gt;Click "Start" - you'll see it switch to "Stop" with a green indicator&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Congratulations! Your database server is now running!&lt;/strong&gt; But we're not done yet—let's connect to it and create our database.&lt;/p&gt;

&lt;h2&gt;
  
  
  🔌 Step 3: Connecting and Creating Your Database
&lt;/h2&gt;

&lt;p&gt;Think of DBngin as a brand-new apartment building with no individual apartments. Let's create a room (database) for our Laravel app.&lt;/p&gt;

&lt;h3&gt;
  
  
  3.1 Find MySQL Client Path
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;After starting your MySQL connection, click the right arrow (→) button&lt;/li&gt;
&lt;li&gt;Select the second option to open terminal with the correct path&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The path will look something like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;/Users/Shared/DBngin/mysql/8.0.33/bin
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  3.2 Access MySQL Shell
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# Navigate to MySQL bin directory
cd /Users/Shared/DBngin/mysql/8.0.33/bin

# Access MySQL shell
./mysql -u root -p
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;When prompted for a password, press Enter (DBngin's root user has no password by default).&lt;/p&gt;

&lt;p&gt;Your terminal prompt should change to &lt;code&gt;mysql&amp;gt;&lt;/code&gt;, indicating you're now inside the MySQL monitor.&lt;/p&gt;

&lt;h3&gt;
  
  
  3.3 Create Database for Laravel
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;-- Create database for your Laravel project
CREATE DATABASE laravel_12_app;

-- Verify the database was created
SHOW DATATBASES;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You should see your new database in the list!&lt;/p&gt;

&lt;h2&gt;
  
  
  🔗 Step 4: Connecting Laravel 12 to Your Database
&lt;/h2&gt;

&lt;h3&gt;
  
  
  4.1 Update Environment Configuration
&lt;/h3&gt;

&lt;p&gt;Navigate to your Laravel 12 project and open the .env file. Find the database configuration section:&lt;/p&gt;

&lt;p&gt;Before:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;DB_CONNECTION=sqlite
# DB_HOST=127.0.0.1
# DB_PORT=3306
# DB_DATABASE=laravel
# DB_USERNAME=root
# DB_PASSWORD=
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;After:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel_12_app
DB_USERNAME=root
DB_PASSWORD=
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;Note: DB_PASSWORD is left empty as DBngin's root user has no password by default.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  ✅ Step 5: Testing the Connection
&lt;/h2&gt;

&lt;h3&gt;
  
  
  5.1 Check Database Status
&lt;/h3&gt;

&lt;p&gt;Laravel provides Artisan commands to check database status and run migrations.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# Navigate to your project root
cd path/to/your/laravel-project

# Check database connection and info
php artisan db:show
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You should see output showing your database connection is successful!&lt;/p&gt;

&lt;h3&gt;
  
  
  Run Migrations
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# Run database migrations
php artisan migrate
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If this command runs without errors, congratulations! You've officially set up your database and connected it to Laravel 12 perfectly.&lt;/p&gt;

&lt;h2&gt;
  
  
  🎉 You're All Set!
&lt;/h2&gt;

&lt;p&gt;You've just leveled up your local development setup! 🎉 By using DBngin, you now have a clean, manageable, and powerful database server dedicated to your projects. Combined with Herd for PHP and the Laravel installer, you're all set with a professional-grade local environment for building amazing things with Laravel 12!&lt;/p&gt;

&lt;p&gt;📝 Quick Recap&lt;br&gt;
✅ Downloaded and installed DBngin&lt;/p&gt;

&lt;p&gt;✅ Started the MySQL server&lt;/p&gt;

&lt;p&gt;✅ Created a database via command line&lt;/p&gt;

&lt;p&gt;✅ Updated Laravel's .env file&lt;/p&gt;

&lt;p&gt;✅ Tested the connection with Artisan&lt;/p&gt;

&lt;p&gt;🚀 What's Next?&lt;br&gt;
In the next part of our series, we'll dive into:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Choosing and setting up a code editor&lt;/li&gt;
&lt;li&gt;Essential tools for modern Laravel development&lt;/li&gt;
&lt;li&gt;Configuring your development workflow.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;💬 Questions?&lt;br&gt;
Got stuck or have a question? Feel free to drop a comment below—I'd love to help! 😊&lt;/p&gt;

&lt;p&gt;Enjoyed this tutorial? Check out more Laravel content on &lt;a href="https://dineshstack.com" rel="noopener noreferrer"&gt;Dinesh Stack&lt;/a&gt; and follow me for more web development tips!&lt;/p&gt;

</description>
      <category>laravel</category>
      <category>webdev</category>
      <category>beginners</category>
      <category>mysql</category>
    </item>
    <item>
      <title>Coming Soon: Dinesh Stack - Practical Web Development Tutorials</title>
      <dc:creator>Dinesh Wijethunga</dc:creator>
      <pubDate>Sat, 18 Oct 2025 17:42:25 +0000</pubDate>
      <link>https://dev.to/dineshstack/coming-soon-dinesh-stack-practical-web-development-tutorials-3752</link>
      <guid>https://dev.to/dineshstack/coming-soon-dinesh-stack-practical-web-development-tutorials-3752</guid>
      <description>&lt;p&gt;Hello DEV community! 👋&lt;/p&gt;

&lt;p&gt;I'm Dinesh, a full-stack developer with 10+ years of experience, and I'm excited to announce that I'm launching Dinesh Stack next week!&lt;/p&gt;

&lt;p&gt;For years, I've noticed that many tutorials focus on toy examples rather than real-world applications. That's why I'm creating content that bridges that gap.&lt;/p&gt;

&lt;p&gt;What to expect:&lt;br&gt;
• Production-ready code examples&lt;br&gt;
• Real project walkthroughs&lt;br&gt;
• Career advice from experience&lt;br&gt;
• Open source contributions&lt;/p&gt;

&lt;p&gt;I'd love to hear from this amazing community - what topics would help you most in your development journey?&lt;/p&gt;

&lt;p&gt;Stay tuned for the launch! 🚀&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>startup</category>
      <category>dineshstack</category>
      <category>programming</category>
    </item>
  </channel>
</rss>
