<?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.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>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>
