Technical Writings
Sharing my journey, tutorials, and learnings in web development, architecture, and technology.
Building Dynamic Interfaces with Vue.js and Inertia
Combining Vue.js with Inertia.js gives you the best of both worlds — server-side routing with client-side rendering. No API needed. Why Inertia.js? Inertia bridges the gap between your Laravel backend and Vue frontend. You write your controllers and routes as usual, and Inertia handles the rest. Example: A Simple Page // Pages/Users/Index.vue export default { props: { users: Array, }, } // Routes Route::get('/users', function () { return Inertia::render('Users/Index', [ 'users' => User::all(), ]); }); This approach keeps your code clean and eliminates the need for API endpoints and axios calls for simple page navigation.
Getting Started with Laravel 12
Laravel 12 brings a host of new features and improvements that make building modern web applications even more enjoyable. In this post, we'll explore what's new and how to get started. What's New in Laravel 12 Laravel 12 continues the framework's evolution with streamlined configuration, improved performance, and better developer experience. The new starter kits make it easier than ever to scaffold a fresh project. Setting Up Your First Project composer create-project laravel/laravel my-app cd my-app php artisan serve That's it! You now have a fully functional Laravel application running locally. Conclusion Laravel 12 is a great step forward for the framework. Whether you're building a simple blog or a complex enterprise application, Laravel has you covered.
Building a RESTful API with Laravel
Laravel makes it incredibly easy to build RESTful APIs. In this guide, we'll create a simple API for managing blog posts. Defining the Route Route::apiResource('posts', PostController::class); The Controller class PostController extends Controller { public function index() { return PostResource::collection( Post::latest()->paginate() ); } public function store(StorePostRequest $request) { $post = Post::create($request->validated()); return new PostResource($post); } } Adding Filters Use query parameters to filter results: Post::where('category_id', $request->category_id) ->latest() ->paginate(); Laravel handles pagination, authentication, and rate limiting out of the box.
Why I Use Filament for Admin Panels
Filament has become my go-to tool for building admin panels in Laravel projects. Here's why. Rapid Development With Filament, you can scaffold a full admin panel in minutes: php artisan filament:install --panels Resource-Based Define your admin pages as resources: class PostResource extends Resource { protected static ?string $model = Post::class; public static function form(Form $form): Form { return $form->schema([ Forms\Components\TextInput::make('title'), Forms\Components\RichEditor::make('content'), Forms\Components\Select::make('category_id') ->relationship('category', 'name'), ]); } } What Makes It Special Built-in table sorting, filtering, and search Beautiful UI with Tailwind CSS Active community and frequent updates Extensible with plugins Filament saves me hours of work on every project.
My Developer Toolkit for 2026
Every developer has their preferred set of tools. Here's what I use daily. Code Editor VS Code with these extensions: Laravel Intellisense PHPStan Tailwind CSS IntelliSense GitLens Terminal I use Windows Terminal with PowerShell. Combined with Laravel Herd, local development is seamless. Design Figma for UI mockups Tailwind CSS for all styling needs Version Control Git with GitHub Conventional commits for clean history API Testing Postman for API development and testing. What's in Your Toolkit? Share your favorite dev tools with me on social media!