<?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: Spiggle</title>
    <description>The latest articles on DEV Community by Spiggle (@spiggle).</description>
    <link>https://dev.to/spiggle</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%2F4101809%2Faac588a3-d3d9-46a3-85e8-6815640c6632.png</url>
      <title>DEV Community: Spiggle</title>
      <link>https://dev.to/spiggle</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/spiggle"/>
    <language>en</language>
    <item>
      <title>Stop Hardcoding Analytics: Build Visual Dashboards in Minutes with Laravel &amp; Filament</title>
      <dc:creator>Spiggle</dc:creator>
      <pubDate>Tue, 27 Oct 2026 20:25:44 +0000</pubDate>
      <link>https://dev.to/spiggle/stop-hardcoding-analytics-build-visual-dashboards-in-minutes-with-laravel-filament-3fd1</link>
      <guid>https://dev.to/spiggle/stop-hardcoding-analytics-build-visual-dashboards-in-minutes-with-laravel-filament-3fd1</guid>
      <description>&lt;p&gt;If you build SaaS platforms, internal tools, or client portals, you’ve probably written this code a dozen times:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;A client asks for a quick breakdown of their metrics.&lt;/li&gt;
&lt;li&gt;You write three custom aggregation queries (groupBy, count, sum).&lt;/li&gt;
&lt;li&gt;You set up a Chart.js, ApexCharts, or custom Blade view.&lt;/li&gt;
&lt;li&gt;You spend two hours styling cards, aligning grid columns, and wiring date-range filters.&lt;/li&gt;
&lt;li&gt;Two weeks later, the client asks to swap a bar chart for an area trendline and track an entirely different metric.&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fzio42s1eac4ycohfu820.jpg" 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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fzio42s1eac4ycohfu820.jpg" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Hardcoding dashboard widgets directly into your controllers and admin classes works fine for basic stats, but it quickly becomes an ongoing maintenance sink.&lt;/p&gt;

&lt;p&gt;What if you could turn the models and data records already in your application into interactive, drag-and-drop dashboards without writing custom view logic each time?&lt;/p&gt;

&lt;p&gt;Enter the Visual Dash package for Laravel and Filament.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What is Visual Dash?&lt;/strong&gt;&lt;br&gt;
Visual Dash is a modular package built for the modern Laravel and Filament ecosystem that bridges the gap between raw database models and end-user analytics.&lt;/p&gt;

&lt;p&gt;Instead of writing rigid classes for every single metric, Visual Dash gives you a visual canvas inside your panel where you can:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Select an Eloquent model.&lt;/li&gt;
&lt;li&gt;Pick your metrics, aggregations, and date bounds.&lt;/li&gt;
&lt;li&gt;Drop charts and stat counters directly onto a responsive layout canvas.&lt;/li&gt;
&lt;li&gt;Publish a clean, live dashboard view in just a few clicks.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Whether you need internal admin reporting or client-facing metric dashboards, it handles the boilerplate aggregation and layout plumbing so you can focus on building your actual core product.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Core Features at a Glance&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Canvas-Based Widget Builder&lt;/strong&gt;&lt;br&gt;
No more hand-tweaking grid column widths or hacking Tailwind classes across multiple widget files. Visual Dash provides an interactive canvas where you can place, arrange, and resize charts, stat counters, and trend summaries visually.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Zero-Boilerplate Model Aggregations&lt;/strong&gt;&lt;br&gt;
Select the Eloquent model you want to query (Order, User, Ticket, Subscription), choose your aggregate function (COUNT, SUM, AVG), define the group-by timeframe (daily, weekly, monthly), and Visual Dash builds the query pipeline under the hood.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Native Filament v5 &amp;amp; Laravel 13 Synergy&lt;/strong&gt;&lt;br&gt;
Built specifically to take advantage of Filament’s robust form and panel architecture, Visual Dash integrates seamlessly into your existing PanelProvider. It honors your current panel theme, dark mode settings, and permission gates without introducing heavy external UI dependencies.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Client-Ready &amp;amp; Internal View Sharing&lt;/strong&gt;&lt;br&gt;
You can embed these dynamic dashboards directly inside your main admin panel or expose them as dedicated reporting views for specific roles, teams, or tenants.&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F7tyr1bcqbzxgwb154tia.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F7tyr1bcqbzxgwb154tia.png" alt=" " width="800" height="470"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Quick Start: Getting Up and Running&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Installation
Pull in the package via Composer:
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;Bash
composer require spiggle/visual-dash
Run the package migrations and publish the assets:
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;Bash
php artisan visual-dash:install
php artisan migrate
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;Register the Plugin
Add the plugin to your Filament Panel Provider (usually &lt;em&gt;app/Providers/Filament/AdminPanelProvider.php):&lt;/em&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="no"&gt;PHP&lt;/span&gt;
&lt;span class="kn"&gt;namespace&lt;/span&gt; &lt;span class="nn"&gt;App\Providers\Filament&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kn"&gt;use&lt;/span&gt; &lt;span class="nc"&gt;Filament\Panel&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="kn"&gt;use&lt;/span&gt; &lt;span class="nc"&gt;Filament\PanelProvider&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="kn"&gt;use&lt;/span&gt; &lt;span class="nc"&gt;Spiggle\VisualDash\VisualDashPlugin&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;AdminPanelProvider&lt;/span&gt; &lt;span class="kd"&gt;extends&lt;/span&gt; &lt;span class="nc"&gt;PanelProvider&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="k"&gt;function&lt;/span&gt; &lt;span class="n"&gt;panel&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;Panel&lt;/span&gt; &lt;span class="nv"&gt;$panel&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt; &lt;span class="kt"&gt;Panel&lt;/span&gt;
    &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nv"&gt;$panel&lt;/span&gt;
            &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="k"&gt;default&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
            &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;id&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'admin'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
            &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;path&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'admin'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
            &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;plugins&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;
                &lt;span class="nc"&gt;VisualDashPlugin&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="nf"&gt;make&lt;/span&gt;&lt;span class="p"&gt;(),&lt;/span&gt;
            &lt;span class="p"&gt;]);&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;3. Create Your First Dashboard&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Navigate to your Filament admin panel and click Dashboards → Create New.&lt;/li&gt;
&lt;li&gt;Give your dashboard a title (e.g., Revenue &amp;amp; Growth Overview).&lt;/li&gt;
&lt;li&gt;Click Add Widget, choose your target model (e.g., App\Models\Order), set your calculation (SUM(total_amount)), and select your visual format (Area Chart, Metric Badge, or Bar Graph).&lt;/li&gt;
&lt;li&gt;Drag and resize your widgets on the canvas.&lt;/li&gt;
&lt;li&gt;Hit Publish.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Your dashboard is immediately live, responsive, and query-optimized.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why This Architecture Wins for Builders&lt;/strong&gt;&lt;br&gt;
Eliminates Redundant Migrations and Views&lt;br&gt;
When you need to adjust how metrics are aggregated or add a secondary filter, you don't need to commit new code, rebuild assets, or trigger a deployment pipeline. You make the adjustment directly through the visual builder interface.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Keeps Your Codebase Lean&lt;/strong&gt;&lt;br&gt;
Admin codebases frequently suffer from "widget bloat"—dozens of single-use widget classes scattered across your app directory that differ by only a single SQL condition or chart type. Visual Dash condenses this into a single, clean database-driven engine.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Try It Out&lt;/strong&gt;&lt;br&gt;
If you're building with Laravel and Filament and want to cut hours of tedious dashboard scaffolding out of your workflow, check out the package and start building visual metrics today.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;GitHub / Documentation: spiggle/visual-dash&lt;/code&gt;&lt;br&gt;
&lt;code&gt;Built for: Laravel 13, Filament v5, Livewire, Tailwind CSS&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Have questions, feature suggestions, or custom widget ideas? Drop a comment below or open an issue on GitHub!&lt;/p&gt;

</description>
      <category>laravel</category>
      <category>php</category>
      <category>tutorial</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Restyling Our Filament Admin Panel with Spiggle Theme</title>
      <dc:creator>Spiggle</dc:creator>
      <pubDate>Fri, 25 Sep 2026 14:33:35 +0000</pubDate>
      <link>https://dev.to/spiggle/restyling-our-filament-admin-panel-with-spiggle-theme-5fal</link>
      <guid>https://dev.to/spiggle/restyling-our-filament-admin-panel-with-spiggle-theme-5fal</guid>
      <description>&lt;p&gt;Let's be honest: most admin panels look the same.&lt;/p&gt;

&lt;p&gt;They work, but after months of staring at the same layout, colors, and navigation, the experience starts to feel stale. Updating the look often means diving into CSS, tweaking Tailwind configs, and rebuilding assets.&lt;/p&gt;

&lt;p&gt;That's exactly why we switched to Spiggle Theme for Laravel Filament.&lt;/p&gt;

&lt;p&gt;What surprised us wasn't just how much better the panel looked. It was how quickly we could transform the entire experience without touching a single stylesheet.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;From Static Dashboard to Branded Workspace&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Before Spiggle, our admin panel looked like... well, an admin panel.&lt;br&gt;
Now, we can completely change its appearance in seconds.&lt;br&gt;
Want a clean, professional look for a corporate client? Done.&lt;br&gt;
Launching a seasonal campaign? Switch the palette.&lt;br&gt;
Need a more focused layout for data-heavy workflows? Change the sidebar style.&lt;/p&gt;

&lt;p&gt;Everything happens directly inside the panel.&lt;br&gt;
No custom CSS.&lt;br&gt;
No Tailwind builds.&lt;br&gt;
No deployment headaches.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Customize Your Panel in Seconds&lt;/strong&gt;&lt;br&gt;
Spiggle includes:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;6 Color Palettes&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Blue&lt;/li&gt;
&lt;li&gt;Slate&lt;/li&gt;
&lt;li&gt;Forest&lt;/li&gt;
&lt;li&gt;Sunset&lt;/li&gt;
&lt;li&gt;Sassy&lt;/li&gt;
&lt;li&gt;Greyish&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Whether you prefer bold and vibrant or calm and minimal, there's a style that fits your brand.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4 Sidebar Layouts&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Standard – Familiar and clean&lt;/li&gt;
&lt;li&gt;Canvas – Minimal and distraction-free&lt;/li&gt;
&lt;li&gt;Dossier – Structured for larger applications&lt;/li&gt;
&lt;li&gt;Solid – High-density navigation for power users&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Changing the sidebar isn't just cosmetic. It changes how users move through your application and interact with data.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Light &amp;amp; Dark Mode&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Every palette includes matching light and dark modes, making the experience comfortable in any environment.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Fine-Tune the Details&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Adjust:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Branding&lt;/li&gt;
&lt;li&gt;Typography&lt;/li&gt;
&lt;li&gt;Icons&lt;/li&gt;
&lt;li&gt;UI density&lt;/li&gt;
&lt;li&gt;Spacing&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Small changes can make an admin panel feel like a completely custom product.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Feature We Love Most: No Asset Rebuilds&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This is where Spiggle really stands out.&lt;/p&gt;

&lt;p&gt;Normally, changing a Filament theme means touching configuration files, updating styles, and rebuilding assets.&lt;/p&gt;

&lt;p&gt;With Spiggle, you simply choose your settings and save.&lt;/p&gt;

&lt;p&gt;The panel updates instantly.&lt;/p&gt;

&lt;p&gt;For teams managing multiple clients, tenants, or brands, this alone can save hours of maintenance.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Built for Modern Filament Projects&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Spiggle was designed for modern Laravel and Filament applications, including:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Multi-tenant platforms&lt;/li&gt;
&lt;li&gt;Customer portals&lt;/li&gt;
&lt;li&gt;Internal business tools&lt;/li&gt;
&lt;li&gt;SaaS dashboards&lt;/li&gt;
&lt;li&gt;Custom admin panels&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It works naturally alongside other Filament plugins and extensions, making it easy to fit into existing projects.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Final Thoughts&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Spiggle Theme helped us turn a generic admin panel into something that actually feels like part of our product.&lt;/p&gt;

&lt;p&gt;If you're using Filament and want more control over branding, layout, and user experience without maintaining custom CSS, it's worth checking out.&lt;/p&gt;

&lt;p&gt;Sometimes the fastest way to improve an admin panel isn't adding another feature.&lt;/p&gt;

&lt;p&gt;It's making the workspace people use every day feel better.&lt;/p&gt;

&lt;p&gt;👉 If your Filament panel still looks the same as the day you installed it, Spiggle might be the upgrade you're looking for.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Hosted demo:&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://skillbobby.com/larafill/public/admin/login" rel="noopener noreferrer"&gt;https://skillbobby.com/larafill/public/admin/login&lt;/a&gt;&lt;br&gt;
&lt;a href="mailto:demo@user.net"&gt;demo@user.net&lt;/a&gt; | password&lt;/p&gt;

</description>
    </item>
    <item>
      <title>When the SRD Changes: Why We Built Spiggle Dynamic Fields</title>
      <dc:creator>Spiggle</dc:creator>
      <pubDate>Mon, 31 Aug 2026 00:03:12 +0000</pubDate>
      <link>https://dev.to/spiggle/when-the-srd-changes-why-we-built-spiggle-dynamic-fields-3m5i</link>
      <guid>https://dev.to/spiggle/when-the-srd-changes-why-we-built-spiggle-dynamic-fields-3m5i</guid>
      <description>&lt;p&gt;Building custom web apps for clients always comes with that one plot twist.&lt;/p&gt;

&lt;p&gt;Deliverable signed off, everyone's happy, and then reality hits. A few weeks later, the client reaches out: “Hey, our logistics pipeline just completely changed. We need to track and record a whole bunch of custom metadata across our core models... but none of this was in the original SRD.”&lt;/p&gt;

&lt;p&gt;We’ve all been there. Usually, that means diving back into migrations, rewriting backend schemas, updating forms, and a whole cycle of redeployment.&lt;/p&gt;

&lt;p&gt;Instead of doing all that heavy lifting manually, we turned the problem into a solution. We built the Spiggle Dynamic Fields Core plugin for Filament.&lt;/p&gt;

&lt;p&gt;We handed it over to the client so they could add new fields into their workflow completely on the fly—no code required on their end. They loved how fast and seamless it was, and the new fields just clicked right into their existing Filament admin panel without breaking a sweat.&lt;/p&gt;

&lt;p&gt;If you are dealing with rigid schemas or clients who need real-time flexibility, check out the package and see how it handles dynamic workflows: &lt;a href="https://skillbobby.github.io/Spiggle-Dynamic-Fields-Core" rel="noopener noreferrer"&gt;https://skillbobby.github.io/Spiggle-Dynamic-Fields-Core&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
