<?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: cazim meskovic</title>
    <description>The latest articles on DEV Community by cazim meskovic (@caze).</description>
    <link>https://dev.to/caze</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%2F3881929%2F5b88c123-a48f-41d6-9f7d-5fe8f2c940f4.png</url>
      <title>DEV Community: cazim meskovic</title>
      <link>https://dev.to/caze</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/caze"/>
    <language>en</language>
    <item>
      <title>Building Ultra-Fast Booking &amp; Business Sites with Next.js 15 and Supabase (Adria Case Study)</title>
      <dc:creator>cazim meskovic</dc:creator>
      <pubDate>Tue, 16 Jun 2026 11:19:18 +0000</pubDate>
      <link>https://dev.to/caze/building-ultra-fast-booking-business-sites-with-nextjs-15-and-supabase-adria-case-study-1lh3</link>
      <guid>https://dev.to/caze/building-ultra-fast-booking-business-sites-with-nextjs-15-and-supabase-adria-case-study-1lh3</guid>
      <description>&lt;p&gt;When moving regional businesses in the Adria region away from WordPress, the biggest challenge isn't the static content—it’s handling dynamic features like live booking calendars, contact forms, and real-time availability without sacrificing those precious 100/100 Lighthouse scores.&lt;/p&gt;

&lt;p&gt;At &lt;a href="https://webizradaadria.com" rel="noopener noreferrer"&gt;webizradaadria.com&lt;/a&gt;, we recently launched a high-performance web project for a luxury booking villa (Grand Villa Bosnae) where we had to implement a live booking calendar integration. Doing this on a traditional stack usually means bloated plugins and heavy JavaScript.&lt;/p&gt;

&lt;p&gt;Here is how we solved it using Next.js 15 (App Router), Tailwind CSS, and Supabase to maintain sub-second loading times for users on slow mobile networks.&lt;/p&gt;

&lt;p&gt;🛠️ The Tech Stack Architecture&lt;br&gt;
To keep the site incredibly fast while handling dynamic booking states, we decoupled the architecture:&lt;/p&gt;

&lt;p&gt;Frontend &amp;amp; Routing: Next.js 15 (utilizing partial prerendering to keep the layout static but the booking engine dynamic).&lt;/p&gt;

&lt;p&gt;Styling: Tailwind CSS for utility-first, zero-runtime CSS.&lt;/p&gt;

&lt;p&gt;Backend &amp;amp; Database: Supabase (PostgreSQL) for real-time calendar state updates and client data.&lt;/p&gt;

&lt;p&gt;Hosting: Vercel, ensuring our serverless functions run as close to the user as possible.&lt;/p&gt;

&lt;p&gt;💡 Key Optimization Techniques We Used&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Optimizing the Live Booking Calendar&lt;br&gt;
Instead of loading a heavy third-party iframe or a massive JavaScript library that ruins Core Web Vitals, we built a custom, lightweight calendar component.&lt;br&gt;
We fetch the reserved dates from Supabase via Next.js Server Components. The initial state is rendered on the server, meaning the user sees the calendar instantly, and hydration overhead is minimal.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Static Content with Dynamic Holes (PPR)&lt;br&gt;
Pages like &lt;a href="https://webizradaadria.com/izrada-web-stranica-rijeka" rel="noopener noreferrer"&gt;izrada web stranica Rijeka&lt;/a&gt; or specific villa presentation pages are mostly static text and images. With Next.js 15, we can statically prerender 95% of the page at build time, while wrapping the live availability badge in a  boundary. Google sees a fully indexed, lightning-fast static page, while the user gets real-time data.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Image Optimization for Retina Displays&lt;br&gt;
Tourism and local business sites rely heavily on high-resolution imagery. We utilized the Next.js &lt;a href="" class="article-body-image-wrapper"&gt;&lt;img&gt;&lt;/a&gt; component coupled with modern formats (WebP/AVIF) and custom srcSets. Even on 4G mobile screens in coastal regions, images load instantly without causing layout shifts (CLS).&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;📈 The Results: 100/100 Lighthouse in Production&lt;br&gt;
By moving away from monolithic databases and heavy client-side rendering, we achieved what most local business owners thought was impossible for a site with a live booking calendar:&lt;/p&gt;

&lt;p&gt;Performance: 99-100/100&lt;/p&gt;

&lt;p&gt;Accessibility: 100/100&lt;/p&gt;

&lt;p&gt;Best Practices: 100/100&lt;/p&gt;

&lt;p&gt;SEO: 100/100&lt;/p&gt;

&lt;p&gt;More importantly, the Largest Contentful Paint (LCP) dropped under 0.8 seconds, directly boosting the client's conversion rate and search visibility in local regional queries.&lt;/p&gt;

&lt;p&gt;💬 Let's Discuss!&lt;br&gt;
How are you handling dynamic states (like bookings, real-time stock, or interactive maps) in Next.js 15 without letting third-party scripts ruin your performance scores? Do you rely on Supabase/Firebase, or do you build custom API routes?&lt;/p&gt;

&lt;p&gt;Drop your thoughts and repo architectures below! 👇&lt;/p&gt;

</description>
      <category>nextjs</category>
      <category>performance</category>
      <category>showdev</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Modernizing the Adria Web: Next.js 15 &amp; Vercel Deployment for Local Businesses</title>
      <dc:creator>cazim meskovic</dc:creator>
      <pubDate>Thu, 16 Apr 2026 08:34:30 +0000</pubDate>
      <link>https://dev.to/caze/modernizing-the-adria-web-nextjs-15-vercel-deployment-for-local-businesses-20ep</link>
      <guid>https://dev.to/caze/modernizing-the-adria-web-nextjs-15-vercel-deployment-for-local-businesses-20ep</guid>
      <description>&lt;p&gt;Scaling local business websites in the Adria region requires more than just a functional UI. In 2026, performance and sub-second load times have become the primary differentiators for businesses in cities like Zagreb, Split, and Rijeka.&lt;/p&gt;

&lt;p&gt;At &lt;a href="https://webizradaadria.com" rel="noopener noreferrer"&gt;webizradaadria.com&lt;/a&gt;, we have moved away from traditional monolithic CMS solutions to a modern stack powered by &lt;strong&gt;Next.js 15&lt;/strong&gt; and &lt;strong&gt;Vercel&lt;/strong&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Why This Stack Matters for Local SEO
&lt;/h3&gt;

&lt;p&gt;For a local business, appearing on the first page of Google is crucial. By leveraging &lt;strong&gt;Lighthouse optimization&lt;/strong&gt;, we ensure that our clients hit 100/100 scores, which is a direct ranking factor. &lt;/p&gt;

&lt;p&gt;You can see our detailed breakdown of &lt;a href="https://webizradaadria.com/blog/seo-optimizacija-web-stranica-lighthouse" rel="noopener noreferrer"&gt;SEO and Lighthouse optimization&lt;/a&gt; here.&lt;/p&gt;

&lt;h3&gt;
  
  
  Key Implementation Details:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Vercel Edge Network:&lt;/strong&gt; Essential for serving content with low latency across the Mediterranean and Balkan regions.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Static Site Generation (SSG):&lt;/strong&gt; We use this for our city-specific landing pages like &lt;a href="https://webizradaadria.com/izrada-web-stranica-zagreb" rel="noopener noreferrer"&gt;Zagreb&lt;/a&gt; and &lt;a href="https://webizradaadria.com/izrada-web-stranica-split" rel="noopener noreferrer"&gt;Split&lt;/a&gt; to ensure instant navigation.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Server Actions:&lt;/strong&gt; Minimizing client-side JavaScript to keep mobile performance high.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;We recently documented our &lt;a href="https://webizradaadria.com/blog/vercel-deploy" rel="noopener noreferrer"&gt;Vercel deployment workflow&lt;/a&gt; which has significantly improved our CI/CD pipeline for regional projects.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Are you building local business sites with Next.js?&lt;/strong&gt; How are you handling the transition from WordPress for your clients? Let's discuss below!&lt;/p&gt;

</description>
      <category>nextjs</category>
      <category>webdev</category>
      <category>performance</category>
      <category>deployment</category>
    </item>
    <item>
      <title>Why Next.js 15 is the Ultimate Choice for SaaS Performance in 2026</title>
      <dc:creator>cazim meskovic</dc:creator>
      <pubDate>Thu, 16 Apr 2026 08:15:43 +0000</pubDate>
      <link>https://dev.to/caze/why-nextjs-15-is-the-ultimate-choice-for-saas-performance-in-2026-o93</link>
      <guid>https://dev.to/caze/why-nextjs-15-is-the-ultimate-choice-for-saas-performance-in-2026-o93</guid>
      <description>&lt;p&gt;The web development landscape in 2026 is no longer about just "having a website." It’s about sub-second load times and flawless Core Web Vitals. After migrating several high-traffic projects to &lt;strong&gt;Next.js 15&lt;/strong&gt;, the results are undeniable.&lt;/p&gt;

&lt;p&gt;At &lt;a href="https://webcreates.dev" rel="noopener noreferrer"&gt;webcreates.dev&lt;/a&gt;, we’ve seen that users start dropping off if a page takes more than 1.2 seconds to become interactive. Next.js 15 allows us to hit that "instant-load" feeling that was previously reserved for simple static sites.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Key Takeaways:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Server Actions:&lt;/strong&gt; Reducing the client-side footprint by moving logic to the server.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Advanced Image Optimization:&lt;/strong&gt; Automated AVIF delivery is now a must.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Lighthouse 100/100:&lt;/strong&gt; It’s a direct ranking factor for Google’s 2026 algorithm.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;What are your experiences with Next.js 15 stability in production? Let's discuss in the comments.&lt;/p&gt;

</description>
      <category>nextjs</category>
      <category>webdev</category>
      <category>performance</category>
      <category>javascript</category>
    </item>
  </channel>
</rss>
