<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>ueb.al</title><link>https://ueb.al/</link><description>Web agency for design and development — modern, fast, and SEO-friendly websites.</description><language>en</language><copyright>2026 ueb.al</copyright><lastBuildDate>Thu, 30 Apr 2026 13:55:24 +0000</lastBuildDate><atom:link href="https://ueb.al/en/" rel="self" type="application/rss+xml"/><item><title>How We Built a White-Label SaaS Platform</title><link>https://ueb.al/en/blog/how-we-built-a-white-label-saas-platform/</link><guid isPermaLink="true">https://ueb.al/en/blog/how-we-built-a-white-label-saas-platform/</guid><pubDate>Sat, 28 Mar 2026 00:00:00 +0000</pubDate><author>ueb.al</author><category>Case Study</category><category>SaaS</category><category>Technology</category><description>&lt;p&gt;Building a website is one thing. Building a platform that manages contacts, inventory, agents, and operations — and can be resold under different brands — is another level entirely. Here&amp;rsquo;s how we approached it.&lt;/p&gt;
&lt;h2 id="the-challenge"&gt;The Challenge&lt;/h2&gt;
&lt;p&gt;A client needed a unified system to handle:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Contact management&lt;/strong&gt; — thousands of entries with segmentation&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Inventory tracking&lt;/strong&gt; — products, parts, stock levels across warehouses&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Agent/recruiter management&lt;/strong&gt; — field teams with territory assignments&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Communication&lt;/strong&gt; — WhatsApp integration for bulk messaging&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Administration&lt;/strong&gt; — audit logs, role-based permissions, SMTP configuration&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;And critically: it needed to work &lt;strong&gt;offline&lt;/strong&gt; in areas with unreliable connectivity.&lt;/p&gt;</description><content:encoded>&lt;p&gt;Building a website is one thing. Building a platform that manages contacts, inventory, agents, and operations — and can be resold under different brands — is another level entirely. Here&amp;rsquo;s how we approached it.&lt;/p&gt;
&lt;h2 id="the-challenge"&gt;The Challenge&lt;/h2&gt;
&lt;p&gt;A client needed a unified system to handle:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Contact management&lt;/strong&gt; — thousands of entries with segmentation&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Inventory tracking&lt;/strong&gt; — products, parts, stock levels across warehouses&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Agent/recruiter management&lt;/strong&gt; — field teams with territory assignments&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Communication&lt;/strong&gt; — WhatsApp integration for bulk messaging&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Administration&lt;/strong&gt; — audit logs, role-based permissions, SMTP configuration&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;And critically: it needed to work &lt;strong&gt;offline&lt;/strong&gt; in areas with unreliable connectivity.&lt;/p&gt;
&lt;h2 id="architecture-decisions"&gt;Architecture Decisions&lt;/h2&gt;
&lt;h3 id="why-a-pwa"&gt;Why a PWA?&lt;/h3&gt;
&lt;p&gt;Progressive Web Apps gave us the best of both worlds:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Feature&lt;/th&gt;
&lt;th&gt;Native App&lt;/th&gt;
&lt;th&gt;PWA&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Offline support&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Yes (Service Worker)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Push notifications&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;App store required&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Update distribution&lt;/td&gt;
&lt;td&gt;Store review&lt;/td&gt;
&lt;td&gt;Instant&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Development cost&lt;/td&gt;
&lt;td&gt;2x (iOS + Android)&lt;/td&gt;
&lt;td&gt;1x&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;QR code scanning&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Yes (Camera API)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;For a platform targeting field agents who might be in areas with spotty internet, offline-first wasn&amp;rsquo;t optional — it was the core requirement.&lt;/p&gt;
&lt;h3 id="service-worker-strategy"&gt;Service Worker Strategy&lt;/h3&gt;
&lt;p&gt;We implemented a &lt;strong&gt;cache-first&lt;/strong&gt; strategy for static assets and a &lt;strong&gt;network-first with offline fallback&lt;/strong&gt; strategy for API data:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;Static assets → Cache first, update in background
API responses → Network first, serve cached if offline
Form submissions → Queue offline, sync when connected
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;This means agents can scan QR codes, update inventory, and log contacts even without internet. Everything syncs when connectivity returns.&lt;/p&gt;
&lt;h3 id="modular-design-for-white-labeling"&gt;Modular Design for White-Labeling&lt;/h3&gt;
&lt;p&gt;The platform was designed from day one to be reskinnable:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Theme system&lt;/strong&gt; — Colors, logos, and typography configurable per tenant&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Feature flags&lt;/strong&gt; — Enable/disable modules per deployment&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Multi-tenant data&lt;/strong&gt; — Isolated data with shared infrastructure&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Custom domains&lt;/strong&gt; — Each deployment gets its own URL&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This makes it possible to deploy the same codebase for completely different businesses — from logistics companies to real estate agencies.&lt;/p&gt;
&lt;h2 id="key-technical-challenges"&gt;Key Technical Challenges&lt;/h2&gt;
&lt;h3 id="1-offline-conflict-resolution"&gt;1. Offline Conflict Resolution&lt;/h3&gt;
&lt;p&gt;When two agents edit the same contact offline, what happens when both sync?&lt;/p&gt;
&lt;p&gt;We implemented a &lt;strong&gt;last-write-wins with audit trail&lt;/strong&gt; approach. Every change is timestamped and logged, and the admin dashboard shows conflicts that may need manual review.&lt;/p&gt;
&lt;h3 id="2-qr-code-scanning-in-a-browser"&gt;2. QR Code Scanning in a Browser&lt;/h3&gt;
&lt;p&gt;Using the device camera for QR scanning in a PWA required careful handling:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Camera permissions management&lt;/li&gt;
&lt;li&gt;Handling multiple camera devices (front/back)&lt;/li&gt;
&lt;li&gt;Efficient barcode parsing without native libraries&lt;/li&gt;
&lt;li&gt;Fallback for devices without camera support&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="3-bulk-whatsapp-messaging"&gt;3. Bulk WhatsApp Messaging&lt;/h3&gt;
&lt;p&gt;Integrating WhatsApp for group communication meant building:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Contact group management&lt;/li&gt;
&lt;li&gt;Message template system&lt;/li&gt;
&lt;li&gt;Rate limiting to comply with WhatsApp policies&lt;/li&gt;
&lt;li&gt;Delivery status tracking&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="4-role-based-access-control"&gt;4. Role-Based Access Control&lt;/h3&gt;
&lt;p&gt;With multiple user types (admin, agent, recruiter, viewer), we built a permission system that controls:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Which modules each role can access&lt;/li&gt;
&lt;li&gt;Read vs. write permissions per section&lt;/li&gt;
&lt;li&gt;Data visibility scoping (agents see only their territory)&lt;/li&gt;
&lt;li&gt;Audit logging for all permission-sensitive actions&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="results"&gt;Results&lt;/h2&gt;
&lt;p&gt;The platform now handles:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Tens of thousands of contacts with instant search&lt;/li&gt;
&lt;li&gt;Hundreds of products with stock tracking&lt;/li&gt;
&lt;li&gt;Multiple agent teams across territories&lt;/li&gt;
&lt;li&gt;Complete audit trails for compliance&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="lessons-learned"&gt;Lessons Learned&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Offline-first is hard but worth it.&lt;/strong&gt; Plan your data model around eventual consistency from day one.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;White-labeling needs early planning.&lt;/strong&gt; Retrofitting multi-tenancy is painful. Bake it in from the start.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Field testing is non-negotiable.&lt;/strong&gt; Lab conditions never match real-world connectivity.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Audit everything.&lt;/strong&gt; When multiple users modify data offline, you need a clear history.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="is-this-approach-right-for-you"&gt;Is This Approach Right for You?&lt;/h2&gt;
&lt;p&gt;If your business needs:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;A custom platform that goes beyond what off-the-shelf SaaS offers&lt;/li&gt;
&lt;li&gt;Offline capability for field teams&lt;/li&gt;
&lt;li&gt;The ability to rebrand and resell the solution&lt;/li&gt;
&lt;li&gt;Full control over your data and infrastructure&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Then a custom-built platform might be the right investment.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://ueb.al/en/contact/" class="content-link"&gt;Contact us&lt;/a&gt;
to discuss whether a custom platform makes sense for your use case, or &lt;a href="https://ueb.al/en/portfolio/" class="content-link"&gt;view our portfolio&lt;/a&gt;
to see more of our work.&lt;/p&gt;</content:encoded></item><item><title>Why Your Business Needs a PWA</title><link>https://ueb.al/en/blog/why-your-business-needs-a-pwa/</link><guid isPermaLink="true">https://ueb.al/en/blog/why-your-business-needs-a-pwa/</guid><pubDate>Sat, 21 Mar 2026 00:00:00 +0000</pubDate><author>ueb.al</author><category>Development</category><category>PWA</category><category>Performance</category><category>Technology</category><description>&lt;p&gt;Your customers expect app-like experiences. They expect your site to load instantly, work offline, and send notifications. A few years ago, that meant building separate iOS and Android apps. Today, there&amp;rsquo;s a better way.&lt;/p&gt;
&lt;h2 id="what-is-a-pwa"&gt;What Is a PWA?&lt;/h2&gt;
&lt;p&gt;A Progressive Web App is a website that behaves like a native app. Users can:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Install it&lt;/strong&gt; on their home screen (no app store needed)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Use it offline&lt;/strong&gt; or with poor connectivity&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Receive push notifications&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Access device features&lt;/strong&gt; like camera, GPS, and contacts&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;All from a single codebase that runs in the browser.&lt;/p&gt;</description><content:encoded>&lt;p&gt;Your customers expect app-like experiences. They expect your site to load instantly, work offline, and send notifications. A few years ago, that meant building separate iOS and Android apps. Today, there&amp;rsquo;s a better way.&lt;/p&gt;
&lt;h2 id="what-is-a-pwa"&gt;What Is a PWA?&lt;/h2&gt;
&lt;p&gt;A Progressive Web App is a website that behaves like a native app. Users can:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Install it&lt;/strong&gt; on their home screen (no app store needed)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Use it offline&lt;/strong&gt; or with poor connectivity&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Receive push notifications&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Access device features&lt;/strong&gt; like camera, GPS, and contacts&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;All from a single codebase that runs in the browser.&lt;/p&gt;
&lt;h2 id="the-business-case"&gt;The Business Case&lt;/h2&gt;
&lt;h3 id="1-one-codebase-every-platform"&gt;1. One Codebase, Every Platform&lt;/h3&gt;
&lt;p&gt;Traditional app development means building and maintaining:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;An iOS app (Swift/Objective-C)&lt;/li&gt;
&lt;li&gt;An Android app (Kotlin/Java)&lt;/li&gt;
&lt;li&gt;A website (HTML/CSS/JS)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;That&amp;rsquo;s three teams, three codebases, three deployment pipelines. A PWA reduces this to one.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Approach&lt;/th&gt;
&lt;th&gt;Codebases&lt;/th&gt;
&lt;th&gt;Teams Needed&lt;/th&gt;
&lt;th&gt;Time to Market&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Native + Web&lt;/td&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;6-12 months&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Cross-platform (React Native)&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;4-8 months&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;PWA&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;2-4 months&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="2-no-app-store-friction"&gt;2. No App Store Friction&lt;/h3&gt;
&lt;p&gt;App store submissions involve:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Review processes (days to weeks)&lt;/li&gt;
&lt;li&gt;Revenue sharing (15-30% commission)&lt;/li&gt;
&lt;li&gt;Content restrictions and policy compliance&lt;/li&gt;
&lt;li&gt;Update approval delays&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;PWAs deploy instantly. Push an update, and users get it on next visit. No review, no commission, no delay.&lt;/p&gt;
&lt;h3 id="3-instant-loading"&gt;3. Instant Loading&lt;/h3&gt;
&lt;p&gt;PWAs use Service Workers to cache assets intelligently:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;First visit&lt;/strong&gt;: Downloads and caches core assets&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Return visits&lt;/strong&gt;: Loads from cache instantly (&amp;lt; 100ms)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Updates&lt;/strong&gt;: Downloads changes in the background&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This means return visitors experience near-instant load times regardless of network speed.&lt;/p&gt;
&lt;h3 id="4-offline-capability"&gt;4. Offline Capability&lt;/h3&gt;
&lt;p&gt;For businesses where users might have spotty connectivity — field workers, retail in basements, events with overloaded WiFi — offline support is transformative.&lt;/p&gt;
&lt;p&gt;A PWA can:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Display cached content when offline&lt;/li&gt;
&lt;li&gt;Queue form submissions for later sync&lt;/li&gt;
&lt;li&gt;Show a meaningful offline page instead of Chrome&amp;rsquo;s dinosaur&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="5-lower-development-and-maintenance-cost"&gt;5. Lower Development and Maintenance Cost&lt;/h3&gt;
&lt;p&gt;Maintaining one codebase instead of three means:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Fewer developers needed&lt;/li&gt;
&lt;li&gt;Faster bug fixes (fix once, deployed everywhere)&lt;/li&gt;
&lt;li&gt;Consistent experience across platforms&lt;/li&gt;
&lt;li&gt;Simpler testing matrix&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="real-world-pwa-success-stories"&gt;Real-World PWA Success Stories&lt;/h2&gt;
&lt;p&gt;Major companies have seen measurable results after adopting PWAs:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Starbucks&lt;/strong&gt; — 2x daily active users on their PWA vs. native app&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Pinterest&lt;/strong&gt; — 60% increase in engagement, 44% increase in ad revenue&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Trivago&lt;/strong&gt; — 150% increase in engagement for users who added PWA to home screen&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Uber&lt;/strong&gt; — PWA loads in 3 seconds on 2G networks&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="when-a-pwa-isnt-enough"&gt;When a PWA Isn&amp;rsquo;t Enough&lt;/h2&gt;
&lt;p&gt;PWAs have limitations. You might still need a native app if you require:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Advanced hardware access&lt;/strong&gt; — Bluetooth LE, NFC writing, specific sensors&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Background processing&lt;/strong&gt; — Heavy computation when app isn&amp;rsquo;t open&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;App store presence&lt;/strong&gt; — Some businesses need the discoverability&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;iOS-specific features&lt;/strong&gt; — Apple&amp;rsquo;s PWA support, while improving, still lags behind Android&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For most business use cases, however, a PWA covers 90%+ of what you&amp;rsquo;d build natively.&lt;/p&gt;
&lt;h2 id="how-we-build-pwas"&gt;How We Build PWAs&lt;/h2&gt;
&lt;p&gt;Our approach to PWA development:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Audit&lt;/strong&gt; — Assess which features benefit from PWA capabilities&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Architecture&lt;/strong&gt; — Design the caching strategy and offline experience&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Build&lt;/strong&gt; — Develop with progressive enhancement (works without JS, better with it)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Test&lt;/strong&gt; — Validate on real devices with throttled connections&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Deploy&lt;/strong&gt; — Ship with a Service Worker and Web App Manifest&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Monitor&lt;/strong&gt; — Track install rates, offline usage, and performance metrics&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="the-technology-behind-pwas"&gt;The Technology Behind PWAs&lt;/h2&gt;
&lt;p&gt;Three core technologies make PWAs possible:&lt;/p&gt;
&lt;h3 id="service-workers"&gt;Service Workers&lt;/h3&gt;
&lt;p&gt;JavaScript files that run separately from the main browser thread. They intercept network requests and can serve cached responses, enabling offline functionality.&lt;/p&gt;
&lt;h3 id="web-app-manifest"&gt;Web App Manifest&lt;/h3&gt;
&lt;p&gt;A JSON file that tells the browser how your app should behave when installed — icon, name, orientation, theme color, and splash screen.&lt;/p&gt;
&lt;h3 id="https"&gt;HTTPS&lt;/h3&gt;
&lt;p&gt;PWAs require HTTPS. This isn&amp;rsquo;t optional — Service Workers can intercept any request, so the connection must be encrypted to prevent man-in-the-middle attacks.&lt;/p&gt;
&lt;h2 id="getting-started"&gt;Getting Started&lt;/h2&gt;
&lt;p&gt;If you&amp;rsquo;re considering a PWA for your business:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Start with your existing website&lt;/strong&gt; — PWA features can be added incrementally&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Identify the key offline scenario&lt;/strong&gt; — What should users see without internet?&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Define your caching strategy&lt;/strong&gt; — Which pages/assets are critical?&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Add a Web App Manifest&lt;/strong&gt; — Enable the &amp;ldquo;Add to Home Screen&amp;rdquo; prompt&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Implement a Service Worker&lt;/strong&gt; — Start simple, iterate based on analytics&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="is-a-pwa-right-for-you"&gt;Is a PWA Right for You?&lt;/h2&gt;
&lt;p&gt;A PWA makes sense if:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Your users access your service on mobile devices&lt;/li&gt;
&lt;li&gt;Offline or poor-connectivity scenarios are common&lt;/li&gt;
&lt;li&gt;You want app-like engagement without app store complexity&lt;/li&gt;
&lt;li&gt;Speed and performance are competitive advantages&lt;/li&gt;
&lt;li&gt;Budget constraints make native development impractical&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a href="https://ueb.al/en/contact/" class="content-link"&gt;Contact us&lt;/a&gt;
to discuss whether a PWA fits your business needs, or &lt;a href="https://ueb.al/en/quiz/" class="content-link"&gt;take our quiz&lt;/a&gt;
to assess your project requirements.&lt;/p&gt;</content:encoded></item><item><title>Website Security Basics for Small Businesses</title><link>https://ueb.al/en/blog/website-security-basics-for-small-businesses/</link><guid isPermaLink="true">https://ueb.al/en/blog/website-security-basics-for-small-businesses/</guid><pubDate>Sun, 15 Mar 2026 00:00:00 +0000</pubDate><author>ueb.al</author><category>Security</category><category>Security</category><category>Technology</category><description>&lt;p&gt;You don&amp;rsquo;t need to be a Fortune 500 company to be a target. Small business websites are attacked precisely because they&amp;rsquo;re often unprotected. Here&amp;rsquo;s what you need to know and what you can do today.&lt;/p&gt;
&lt;h2 id="why-small-businesses-get-hacked"&gt;Why Small Businesses Get Hacked&lt;/h2&gt;
&lt;p&gt;The uncomfortable truth: most attacks aren&amp;rsquo;t personal. Bots scan millions of websites looking for common vulnerabilities. If your site has one, it gets exploited automatically.&lt;/p&gt;
&lt;p&gt;Common reasons small business sites get compromised:&lt;/p&gt;</description><content:encoded>&lt;p&gt;You don&amp;rsquo;t need to be a Fortune 500 company to be a target. Small business websites are attacked precisely because they&amp;rsquo;re often unprotected. Here&amp;rsquo;s what you need to know and what you can do today.&lt;/p&gt;
&lt;h2 id="why-small-businesses-get-hacked"&gt;Why Small Businesses Get Hacked&lt;/h2&gt;
&lt;p&gt;The uncomfortable truth: most attacks aren&amp;rsquo;t personal. Bots scan millions of websites looking for common vulnerabilities. If your site has one, it gets exploited automatically.&lt;/p&gt;
&lt;p&gt;Common reasons small business sites get compromised:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Outdated CMS or plugins&lt;/strong&gt; — WordPress plugins with known vulnerabilities&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Weak passwords&lt;/strong&gt; — &amp;ldquo;admin/admin123&amp;rdquo; is still disturbingly common&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;No HTTPS&lt;/strong&gt; — Data transmitted in plain text&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Shared hosting vulnerabilities&lt;/strong&gt; — One compromised site affects neighbors&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;No backups&lt;/strong&gt; — Making ransomware attacks devastating&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="the-essentials-checklist"&gt;The Essentials Checklist&lt;/h2&gt;
&lt;h3 id="1-https-everywhere"&gt;1. HTTPS Everywhere&lt;/h3&gt;
&lt;p&gt;If your site doesn&amp;rsquo;t have the padlock icon, fix this first. HTTPS encrypts data between your visitor&amp;rsquo;s browser and your server.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Most hosts offer free SSL via Let&amp;rsquo;s Encrypt&lt;/li&gt;
&lt;li&gt;Search engines penalize non-HTTPS sites&lt;/li&gt;
&lt;li&gt;Browsers now warn visitors about &amp;ldquo;Not Secure&amp;rdquo; sites&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Cost: Free. Time: 30 minutes.&lt;/strong&gt;&lt;/p&gt;
&lt;h3 id="2-keep-everything-updated"&gt;2. Keep Everything Updated&lt;/h3&gt;
&lt;p&gt;If you&amp;rsquo;re running WordPress or any CMS:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Update the core software as soon as patches release&lt;/li&gt;
&lt;li&gt;Update all plugins and themes&lt;/li&gt;
&lt;li&gt;Remove plugins you&amp;rsquo;re not using&lt;/li&gt;
&lt;li&gt;Use plugins from reputable developers only&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Automated updates are available for WordPress — enable them.&lt;/p&gt;
&lt;h3 id="3-strong-authentication"&gt;3. Strong Authentication&lt;/h3&gt;
&lt;p&gt;At minimum:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Unique passwords&lt;/strong&gt; for every account (use a password manager)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Two-factor authentication&lt;/strong&gt; on your CMS admin panel&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Limit login attempts&lt;/strong&gt; to prevent brute force attacks&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Change default admin usernames&lt;/strong&gt; — don&amp;rsquo;t use &amp;ldquo;admin&amp;rdquo;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="4-regular-backups"&gt;4. Regular Backups&lt;/h3&gt;
&lt;p&gt;Follow the 3-2-1 rule:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;3&lt;/strong&gt; copies of your data&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;2&lt;/strong&gt; different storage types&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;1&lt;/strong&gt; offsite (cloud backup)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Test your backups. A backup you can&amp;rsquo;t restore is not a backup.&lt;/p&gt;
&lt;h3 id="5-web-application-firewall-waf"&gt;5. Web Application Firewall (WAF)&lt;/h3&gt;
&lt;p&gt;Services like Cloudflare offer a free tier that blocks common attacks:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;SQL injection attempts&lt;/li&gt;
&lt;li&gt;Cross-site scripting (XSS)&lt;/li&gt;
&lt;li&gt;DDoS protection&lt;/li&gt;
&lt;li&gt;Bot filtering&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Cost: Free tier available. Time: 1 hour to set up.&lt;/strong&gt;&lt;/p&gt;
&lt;h2 id="the-static-site-advantage"&gt;The Static Site Advantage&lt;/h2&gt;
&lt;p&gt;This is where our approach with Hugo and static sites really shines. A static site has:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Vulnerability&lt;/th&gt;
&lt;th&gt;WordPress&lt;/th&gt;
&lt;th&gt;Static Site&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;SQL injection&lt;/td&gt;
&lt;td&gt;Possible&lt;/td&gt;
&lt;td&gt;Impossible (no database)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Plugin exploits&lt;/td&gt;
&lt;td&gt;Common&lt;/td&gt;
&lt;td&gt;N/A (no plugins)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Brute force login&lt;/td&gt;
&lt;td&gt;Possible&lt;/td&gt;
&lt;td&gt;Impossible (no login)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Server-side code injection&lt;/td&gt;
&lt;td&gt;Possible&lt;/td&gt;
&lt;td&gt;Impossible (no server code)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Zero-day PHP exploits&lt;/td&gt;
&lt;td&gt;Possible&lt;/td&gt;
&lt;td&gt;Impossible (no PHP)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;The most secure website is one with the smallest attack surface.&lt;/strong&gt; Static sites eliminate entire categories of vulnerabilities by not having the components that get exploited.&lt;/p&gt;
&lt;h2 id="what-to-do-if-youve-been-hacked"&gt;What to Do If You&amp;rsquo;ve Been Hacked&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Don&amp;rsquo;t panic&lt;/strong&gt; — but act quickly&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Take the site offline&lt;/strong&gt; — prevent further damage&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Contact your host&lt;/strong&gt; — they may have backups and logs&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Identify the breach&lt;/strong&gt; — check access logs, modified files, new admin accounts&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Restore from a clean backup&lt;/strong&gt; — don&amp;rsquo;t just patch the current site&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Change all passwords&lt;/strong&gt; — every account, every service&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Update everything&lt;/strong&gt; — close the vulnerability that was exploited&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Monitor&lt;/strong&gt; — watch for signs of re-compromise&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="security-headers-you-should-set"&gt;Security Headers You Should Set&lt;/h2&gt;
&lt;p&gt;These HTTP headers add extra protection layers:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;Content-Security-Policy: default-src &amp;#39;self&amp;#39;
X-Content-Type-Options: nosniff
X-Frame-Options: SAMEORIGIN
Referrer-Policy: strict-origin-when-cross-origin
Permissions-Policy: camera=(), microphone=(), geolocation=()
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;If you&amp;rsquo;re on Cloudflare or Netlify, these can be set in configuration files without touching server config.&lt;/p&gt;
&lt;h2 id="monthly-security-routine"&gt;Monthly Security Routine&lt;/h2&gt;
&lt;p&gt;Spend 30 minutes per month:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Check for CMS/plugin updates and apply them&lt;/li&gt;
&lt;li&gt;Review admin accounts — remove any you don&amp;rsquo;t recognize&lt;/li&gt;
&lt;li&gt;Check Google Search Console for security warnings&lt;/li&gt;
&lt;li&gt;Verify your backups are running and restorable&lt;/li&gt;
&lt;li&gt;Review your site for unexpected content or redirects&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="when-to-call-a-professional"&gt;When to Call a Professional&lt;/h2&gt;
&lt;p&gt;If you notice:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Unexpected redirects to other websites&lt;/li&gt;
&lt;li&gt;New pages or content you didn&amp;rsquo;t create&lt;/li&gt;
&lt;li&gt;Google showing &amp;ldquo;This site may be hacked&amp;rdquo; warnings&lt;/li&gt;
&lt;li&gt;Significant drop in search rankings overnight&lt;/li&gt;
&lt;li&gt;Customers reporting spam from your domain&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;These are signs of compromise that need professional attention.&lt;/p&gt;
&lt;h2 id="next-steps"&gt;Next Steps&lt;/h2&gt;
&lt;p&gt;Your website is your digital storefront. Protecting it doesn&amp;rsquo;t require a big budget — just consistent attention.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://ueb.al/en/contact/" class="content-link"&gt;Contact us&lt;/a&gt;
for a security audit of your current site&lt;/li&gt;
&lt;li&gt;&lt;a href="https://ueb.al/en/portfolio/" class="content-link"&gt;View our portfolio&lt;/a&gt;
to see how we build secure sites&lt;/li&gt;
&lt;li&gt;Consider &lt;a href="https://ueb.al/en/blog/why-we-use-hugo/" class="content-link"&gt;migrating to a static site&lt;/a&gt;
for maximum security&lt;/li&gt;
&lt;/ul&gt;</content:encoded></item><item><title>Why Website Speed Matters More Than Ever</title><link>https://ueb.al/en/blog/why-website-speed-matters/</link><guid isPermaLink="true">https://ueb.al/en/blog/why-website-speed-matters/</guid><pubDate>Sat, 10 Jan 2026 00:00:00 +0000</pubDate><author>ueb.al</author><category>Performance</category><category>Performance</category><category>SEO</category><description>&lt;p&gt;Website speed has become a critical factor for success online. With attention spans shorter than ever and Google using Core Web Vitals as a ranking factor, a slow website can cost you visitors, customers, and revenue.&lt;/p&gt;
&lt;h2 id="the-impact-of-speed-on-user-experience"&gt;The Impact of Speed on User Experience&lt;/h2&gt;
&lt;p&gt;Research shows that users expect websites to load in under 3 seconds. When a page takes longer:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;53% of mobile visitors&lt;/strong&gt; leave if a page takes more than 3 seconds to load&lt;/li&gt;
&lt;li&gt;Each additional second of load time can &lt;strong&gt;reduce conversions by 7%&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Slow sites see &lt;strong&gt;higher bounce rates&lt;/strong&gt; and lower engagement&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;Speed is the ultimate feature. If your site is slow, nothing else matters.&amp;rdquo;&lt;/p&gt;</description><content:encoded>&lt;p&gt;Website speed has become a critical factor for success online. With attention spans shorter than ever and Google using Core Web Vitals as a ranking factor, a slow website can cost you visitors, customers, and revenue.&lt;/p&gt;
&lt;h2 id="the-impact-of-speed-on-user-experience"&gt;The Impact of Speed on User Experience&lt;/h2&gt;
&lt;p&gt;Research shows that users expect websites to load in under 3 seconds. When a page takes longer:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;53% of mobile visitors&lt;/strong&gt; leave if a page takes more than 3 seconds to load&lt;/li&gt;
&lt;li&gt;Each additional second of load time can &lt;strong&gt;reduce conversions by 7%&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Slow sites see &lt;strong&gt;higher bounce rates&lt;/strong&gt; and lower engagement&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;Speed is the ultimate feature. If your site is slow, nothing else matters.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="speed-and-seo"&gt;Speed and SEO&lt;/h2&gt;
&lt;p&gt;Google has made it clear: page speed is a ranking factor. Their Core Web Vitals metrics — Largest Contentful Paint (LCP), First Input Delay (FID), and Cumulative Layout Shift (CLS) — directly influence search rankings.&lt;/p&gt;
&lt;h3 id="what-good-scores-look-like"&gt;What Good Scores Look Like&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Metric&lt;/th&gt;
&lt;th&gt;Good&lt;/th&gt;
&lt;th&gt;Needs Improvement&lt;/th&gt;
&lt;th&gt;Poor&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;LCP&lt;/td&gt;
&lt;td&gt;≤2.5s&lt;/td&gt;
&lt;td&gt;2.5s–4s&lt;/td&gt;
&lt;td&gt;&amp;gt;4s&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;FID&lt;/td&gt;
&lt;td&gt;≤100ms&lt;/td&gt;
&lt;td&gt;100–300ms&lt;/td&gt;
&lt;td&gt;&amp;gt;300ms&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;CLS&lt;/td&gt;
&lt;td&gt;≤0.1&lt;/td&gt;
&lt;td&gt;0.1–0.25&lt;/td&gt;
&lt;td&gt;&amp;gt;0.25&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="why-these-metrics-matter"&gt;Why These Metrics Matter&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;LCP (Largest Contentful Paint)&lt;/strong&gt; measures how quickly the main content loads&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;FID (First Input Delay)&lt;/strong&gt; measures how responsive your site is to user interaction&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;CLS (Cumulative Layout Shift)&lt;/strong&gt; measures visual stability as elements load&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="how-we-optimize-for-speed"&gt;How We Optimize for Speed&lt;/h2&gt;
&lt;p&gt;At ueb.al, performance is built into every project from day one:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Modern frameworks&lt;/strong&gt; — We use static site generators like Hugo that deliver pre-built HTML&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Optimized images&lt;/strong&gt; — Proper sizing, modern formats (WebP, AVIF), and lazy loading&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Minimal JavaScript&lt;/strong&gt; — Progressive enhancement instead of JavaScript-first approaches&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Smart caching&lt;/strong&gt; — Browser caching and CDN distribution for fast repeat visits&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Performance budgets&lt;/strong&gt; — We set and enforce limits on page weight and load times&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="real-results"&gt;Real Results&lt;/h3&gt;
&lt;p&gt;Our clients typically see:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;90+ Lighthouse scores&lt;/strong&gt; across all metrics&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Sub-second load times&lt;/strong&gt; on fast connections&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Improved search rankings&lt;/strong&gt; within weeks of launch&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="quick-wins-you-can-implement-today"&gt;Quick Wins You Can Implement Today&lt;/h2&gt;
&lt;p&gt;Even without a full rebuild, you can improve speed:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Compress images&lt;/strong&gt; — Use tools like Squoosh or ImageOptim&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Enable caching&lt;/strong&gt; — Set proper cache headers&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Remove unused code&lt;/strong&gt; — Audit your CSS and JavaScript&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Use a CDN&lt;/strong&gt; — Cloudflare offers a free tier&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="the-bottom-line"&gt;The Bottom Line&lt;/h2&gt;
&lt;p&gt;A fast website isn&amp;rsquo;t just nice to have — it&amp;rsquo;s essential for competing online. Whether you&amp;rsquo;re looking to improve SEO, increase conversions, or simply provide a better user experience, speed optimization should be a priority.&lt;/p&gt;
&lt;p&gt;Ready to make your website faster? &lt;a href="https://ueb.al/en/contact/" class="content-link"&gt;Contact us&lt;/a&gt;
for a performance audit, or &lt;a href="https://ueb.al/en/calculator/" class="content-link"&gt;try our calculator&lt;/a&gt;
to estimate your project.&lt;/p&gt;</content:encoded></item><item><title>SEO Basics Every Small Business Should Know</title><link>https://ueb.al/en/blog/seo-basics-for-small-businesses/</link><guid isPermaLink="true">https://ueb.al/en/blog/seo-basics-for-small-businesses/</guid><pubDate>Thu, 08 Jan 2026 00:00:00 +0000</pubDate><author>ueb.al</author><category>SEO</category><category>SEO</category><category>Performance</category><description>&lt;p&gt;Search Engine Optimization (SEO) can feel overwhelming, but it doesn&amp;rsquo;t have to be. At its core, SEO is about making your website easy for both users and search engines to understand. Here&amp;rsquo;s what actually matters.&lt;/p&gt;
&lt;h2 id="the-foundation-technical-seo"&gt;The Foundation: Technical SEO&lt;/h2&gt;
&lt;p&gt;Before worrying about keywords, make sure your site is technically sound:&lt;/p&gt;
&lt;h3 id="speed-matters"&gt;Speed Matters&lt;/h3&gt;
&lt;p&gt;Google uses page speed as a ranking factor. A slow site hurts both rankings and user experience.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Aim for under 3 seconds load time&lt;/li&gt;
&lt;li&gt;Compress images before uploading&lt;/li&gt;
&lt;li&gt;Use a content delivery network (CDN)&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="mobile-first"&gt;Mobile-First&lt;/h3&gt;
&lt;p&gt;Google indexes the mobile version of your site first. Make sure:&lt;/p&gt;</description><content:encoded>&lt;p&gt;Search Engine Optimization (SEO) can feel overwhelming, but it doesn&amp;rsquo;t have to be. At its core, SEO is about making your website easy for both users and search engines to understand. Here&amp;rsquo;s what actually matters.&lt;/p&gt;
&lt;h2 id="the-foundation-technical-seo"&gt;The Foundation: Technical SEO&lt;/h2&gt;
&lt;p&gt;Before worrying about keywords, make sure your site is technically sound:&lt;/p&gt;
&lt;h3 id="speed-matters"&gt;Speed Matters&lt;/h3&gt;
&lt;p&gt;Google uses page speed as a ranking factor. A slow site hurts both rankings and user experience.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Aim for under 3 seconds load time&lt;/li&gt;
&lt;li&gt;Compress images before uploading&lt;/li&gt;
&lt;li&gt;Use a content delivery network (CDN)&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="mobile-first"&gt;Mobile-First&lt;/h3&gt;
&lt;p&gt;Google indexes the mobile version of your site first. Make sure:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Text is readable without zooming&lt;/li&gt;
&lt;li&gt;Buttons are easy to tap&lt;/li&gt;
&lt;li&gt;No horizontal scrolling required&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="security-https"&gt;Security (HTTPS)&lt;/h3&gt;
&lt;p&gt;An SSL certificate is non-negotiable. Sites without HTTPS:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Get marked as &amp;ldquo;Not Secure&amp;rdquo; in browsers&lt;/li&gt;
&lt;li&gt;May rank lower in search results&lt;/li&gt;
&lt;li&gt;Lose user trust&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="content-that-ranks"&gt;Content That Ranks&lt;/h2&gt;
&lt;h3 id="write-for-humans-first"&gt;Write for Humans First&lt;/h3&gt;
&lt;p&gt;The best SEO content answers real questions your customers have. Don&amp;rsquo;t write for search engines — write helpful content, then optimize it.&lt;/p&gt;
&lt;h3 id="structure-matters"&gt;Structure Matters&lt;/h3&gt;
&lt;p&gt;Use proper heading hierarchy:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-markdown" data-lang="markdown"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;# Page Title (H1) - only one per page
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;## Main Sections (H2)
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;### Subsections (H3)
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;This helps both users and search engines understand your content.&lt;/p&gt;
&lt;h3 id="the-basics-of-on-page-seo"&gt;The Basics of On-Page SEO&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Element&lt;/th&gt;
&lt;th&gt;Best Practice&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Title Tag&lt;/td&gt;
&lt;td&gt;50-60 characters, include main keyword&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Meta Description&lt;/td&gt;
&lt;td&gt;150-160 characters, compelling summary&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;URL&lt;/td&gt;
&lt;td&gt;Short, descriptive, includes keyword&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;H1&lt;/td&gt;
&lt;td&gt;Clear, matches search intent&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Images&lt;/td&gt;
&lt;td&gt;Descriptive alt text, compressed&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="local-seo-for-albanian-businesses"&gt;Local SEO for Albanian Businesses&lt;/h2&gt;
&lt;p&gt;If you serve customers in a specific area, local SEO is crucial:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Google Business Profile&lt;/strong&gt; — Claim and optimize your listing&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;NAP Consistency&lt;/strong&gt; — Same Name, Address, Phone everywhere&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Local Keywords&lt;/strong&gt; — Include &amp;ldquo;Tiranë&amp;rdquo; or your city in content&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Reviews&lt;/strong&gt; — Encourage happy customers to leave reviews&lt;/li&gt;
&lt;/ol&gt;
&lt;blockquote&gt;
&lt;p&gt;46% of Google searches have local intent. If you&amp;rsquo;re not showing up locally, you&amp;rsquo;re invisible to nearly half your potential customers.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="common-seo-mistakes-to-avoid"&gt;Common SEO Mistakes to Avoid&lt;/h2&gt;
&lt;p&gt;🚫 &lt;strong&gt;Keyword stuffing&lt;/strong&gt; — Repeating keywords unnaturally&lt;br&gt;
🚫 &lt;strong&gt;Duplicate content&lt;/strong&gt; — Same content on multiple pages&lt;br&gt;
🚫 &lt;strong&gt;Ignoring mobile&lt;/strong&gt; — Desktop-only optimization&lt;br&gt;
🚫 &lt;strong&gt;Slow images&lt;/strong&gt; — Uploading uncompressed photos&lt;br&gt;
🚫 &lt;strong&gt;No internal linking&lt;/strong&gt; — Pages that don&amp;rsquo;t link to each other&lt;/p&gt;
&lt;h2 id="what-we-do-differently"&gt;What We Do Differently&lt;/h2&gt;
&lt;p&gt;At ueb.al, SEO is built into every project:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Semantic HTML&lt;/strong&gt; — Proper heading structure and landmarks&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Schema markup&lt;/strong&gt; — Rich snippets for better visibility&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Performance optimization&lt;/strong&gt; — Fast sites rank better&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Clean URLs&lt;/strong&gt; — Human-readable, keyword-friendly&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="quick-wins-you-can-do-today"&gt;Quick Wins You Can Do Today&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;Check your site on &lt;a href="https://pagespeed.web.dev/" class="content-link" target="_blank" rel="noopener noreferrer"&gt;PageSpeed Insights&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Make sure every page has a unique title and description&lt;/li&gt;
&lt;li&gt;Add alt text to all images&lt;/li&gt;
&lt;li&gt;Verify your Google Business Profile is complete&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="need-help"&gt;Need Help?&lt;/h2&gt;
&lt;p&gt;SEO is a marathon, not a sprint. If you want professional help:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://ueb.al/en/contact/" class="content-link"&gt;Contact us&lt;/a&gt;
for an SEO audit&lt;/li&gt;
&lt;li&gt;&lt;a href="https://ueb.al/en/portfolio/" class="content-link"&gt;View our portfolio&lt;/a&gt;
to see our results&lt;/li&gt;
&lt;li&gt;&lt;a href="https://ueb.al/en/services/" class="content-link"&gt;Read more about our services&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;</content:encoded></item><item><title>Choosing the Right Tech Stack for Your Project</title><link>https://ueb.al/en/blog/choosing-the-right-tech-stack/</link><guid isPermaLink="true">https://ueb.al/en/blog/choosing-the-right-tech-stack/</guid><pubDate>Mon, 05 Jan 2026 00:00:00 +0000</pubDate><author>ueb.al</author><category>Development</category><category>Technology</category><category>Performance</category><description>&lt;p&gt;One of the most important decisions when building a website or web application is choosing the right technology stack. The wrong choice can lead to maintenance headaches, performance issues, and unnecessary costs. The right choice sets you up for long-term success.&lt;/p&gt;
&lt;h2 id="what-is-a-tech-stack"&gt;What is a Tech Stack?&lt;/h2&gt;
&lt;p&gt;A tech stack is the combination of technologies used to build your digital product. It typically includes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Frontend&lt;/strong&gt; — What users see and interact with (HTML, CSS, JavaScript frameworks)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Backend&lt;/strong&gt; — Server-side logic and data processing&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Database&lt;/strong&gt; — Where your data lives&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Infrastructure&lt;/strong&gt; — Hosting, CDN, and deployment&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="key-factors-to-consider"&gt;Key Factors to Consider&lt;/h2&gt;
&lt;h3 id="1-project-requirements"&gt;1. Project Requirements&lt;/h3&gt;
&lt;p&gt;Start by understanding what you&amp;rsquo;re actually building:&lt;/p&gt;</description><content:encoded>&lt;p&gt;One of the most important decisions when building a website or web application is choosing the right technology stack. The wrong choice can lead to maintenance headaches, performance issues, and unnecessary costs. The right choice sets you up for long-term success.&lt;/p&gt;
&lt;h2 id="what-is-a-tech-stack"&gt;What is a Tech Stack?&lt;/h2&gt;
&lt;p&gt;A tech stack is the combination of technologies used to build your digital product. It typically includes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Frontend&lt;/strong&gt; — What users see and interact with (HTML, CSS, JavaScript frameworks)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Backend&lt;/strong&gt; — Server-side logic and data processing&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Database&lt;/strong&gt; — Where your data lives&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Infrastructure&lt;/strong&gt; — Hosting, CDN, and deployment&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="key-factors-to-consider"&gt;Key Factors to Consider&lt;/h2&gt;
&lt;h3 id="1-project-requirements"&gt;1. Project Requirements&lt;/h3&gt;
&lt;p&gt;Start by understanding what you&amp;rsquo;re actually building:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Project Type&lt;/th&gt;
&lt;th&gt;Recommended Stack&lt;/th&gt;
&lt;th&gt;Why&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Blog / Portfolio&lt;/td&gt;
&lt;td&gt;Hugo, Astro&lt;/td&gt;
&lt;td&gt;Fast, simple, cheap hosting&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Business Website&lt;/td&gt;
&lt;td&gt;Hugo + CMS&lt;/td&gt;
&lt;td&gt;Easy updates, great SEO&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Web Application&lt;/td&gt;
&lt;td&gt;Next.js, SvelteKit&lt;/td&gt;
&lt;td&gt;Dynamic features, user auth&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;E-commerce&lt;/td&gt;
&lt;td&gt;Shopify, Medusa&lt;/td&gt;
&lt;td&gt;Built-in cart, payments&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Mobile App&lt;/td&gt;
&lt;td&gt;React Native, Flutter&lt;/td&gt;
&lt;td&gt;Cross-platform efficiency&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="2-maintenance-and-updates"&gt;2. Maintenance and Updates&lt;/h3&gt;
&lt;p&gt;Consider the long-term:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Who will maintain the site?&lt;/li&gt;
&lt;li&gt;How often will content change?&lt;/li&gt;
&lt;li&gt;What&amp;rsquo;s your technical expertise level?&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;For clients without technical teams, we often recommend static sites with headless CMS — simple to maintain, no security patches to worry about.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id="3-performance-needs"&gt;3. Performance Needs&lt;/h3&gt;
&lt;p&gt;Different approaches have different performance profiles:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Approach&lt;/th&gt;
&lt;th&gt;Initial Load&lt;/th&gt;
&lt;th&gt;Interactivity&lt;/th&gt;
&lt;th&gt;SEO&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Static HTML&lt;/td&gt;
&lt;td&gt;Excellent&lt;/td&gt;
&lt;td&gt;Limited&lt;/td&gt;
&lt;td&gt;Excellent&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SSR (Server-side)&lt;/td&gt;
&lt;td&gt;Good&lt;/td&gt;
&lt;td&gt;Good&lt;/td&gt;
&lt;td&gt;Excellent&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SPA (Client-side)&lt;/td&gt;
&lt;td&gt;Slower&lt;/td&gt;
&lt;td&gt;Excellent&lt;/td&gt;
&lt;td&gt;Needs work&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="4-budget-constraints"&gt;4. Budget Constraints&lt;/h3&gt;
&lt;p&gt;More complex stacks cost more to:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Develop initially&lt;/li&gt;
&lt;li&gt;Host and maintain&lt;/li&gt;
&lt;li&gt;Debug when things go wrong&lt;/li&gt;
&lt;li&gt;Migrate away from&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Start with the simplest solution that meets your needs.&lt;/strong&gt;&lt;/p&gt;
&lt;h2 id="our-recommended-approaches"&gt;Our Recommended Approaches&lt;/h2&gt;
&lt;h3 id="for-content-heavy-sites"&gt;For Content-Heavy Sites&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Hugo + Decap CMS + Cloudflare Pages&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Lightning fast performance&lt;/li&gt;
&lt;li&gt;No server to maintain&lt;/li&gt;
&lt;li&gt;Easy content editing&lt;/li&gt;
&lt;li&gt;Free or very low hosting costs&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This is what we use for most client websites, including this one.&lt;/p&gt;
&lt;h3 id="for-dynamic-applications"&gt;For Dynamic Applications&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Next.js + PostgreSQL + Vercel&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Great developer experience&lt;/li&gt;
&lt;li&gt;Excellent performance with smart caching&lt;/li&gt;
&lt;li&gt;Scales automatically&lt;/li&gt;
&lt;li&gt;Reasonable hosting costs&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="for-e-commerce"&gt;For E-commerce&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Shopify (hosted) or Medusa (headless)&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Shopify: Simple, all-in-one, higher transaction fees&lt;/li&gt;
&lt;li&gt;Medusa: More control, requires more setup&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="red-flags-to-watch-for"&gt;Red Flags to Watch For&lt;/h2&gt;
&lt;p&gt;🚩 &lt;strong&gt;Over-engineering&lt;/strong&gt; — Building for scale you don&amp;rsquo;t have&lt;br&gt;
🚩 &lt;strong&gt;Trendy tech&lt;/strong&gt; — Choosing what&amp;rsquo;s popular, not what fits&lt;br&gt;
🚩 &lt;strong&gt;Vendor lock-in&lt;/strong&gt; — Can&amp;rsquo;t easily migrate away&lt;br&gt;
🚩 &lt;strong&gt;No local expertise&lt;/strong&gt; — Can&amp;rsquo;t find developers to maintain it&lt;/p&gt;
&lt;h2 id="questions-to-ask"&gt;Questions to Ask&lt;/h2&gt;
&lt;p&gt;Before committing to a stack, ask:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Can we hire developers for this technology?&lt;/li&gt;
&lt;li&gt;What happens if the framework is abandoned?&lt;/li&gt;
&lt;li&gt;How much will hosting cost at scale?&lt;/li&gt;
&lt;li&gt;Is there vendor lock-in?&lt;/li&gt;
&lt;li&gt;Does it match our team&amp;rsquo;s expertise?&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="get-help-choosing"&gt;Get Help Choosing&lt;/h2&gt;
&lt;p&gt;Not sure what&amp;rsquo;s right for your project? We offer free consultations to help you make the right choice.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://ueb.al/en/quiz/" class="content-link"&gt;Take our quiz&lt;/a&gt;
for personalized recommendations&lt;/li&gt;
&lt;li&gt;&lt;a href="https://ueb.al/en/calculator/" class="content-link"&gt;Use our calculator&lt;/a&gt;
to estimate costs&lt;/li&gt;
&lt;li&gt;&lt;a href="https://ueb.al/en/contact/" class="content-link"&gt;Contact us&lt;/a&gt;
to discuss your project&lt;/li&gt;
&lt;/ul&gt;</content:encoded></item><item><title>Why We Build Websites with Hugo</title><link>https://ueb.al/en/blog/why-we-use-hugo/</link><guid isPermaLink="true">https://ueb.al/en/blog/why-we-use-hugo/</guid><pubDate>Sat, 03 Jan 2026 00:00:00 +0000</pubDate><author>ueb.al</author><category>Development</category><category>Hugo</category><category>Performance</category><category>Technology</category><description>&lt;p&gt;When clients ask what technology we use, &amp;ldquo;Hugo&amp;rdquo; often isn&amp;rsquo;t the answer they expect. They&amp;rsquo;ve heard of WordPress, Wix, or Squarespace. So why do we choose a static site generator for most projects?&lt;/p&gt;
&lt;h2 id="what-is-hugo"&gt;What is Hugo?&lt;/h2&gt;
&lt;p&gt;Hugo is a static site generator. Instead of building pages on-the-fly when someone visits (like WordPress), Hugo pre-builds every page during development. The result is a folder of HTML, CSS, and JavaScript files that can be served from anywhere.&lt;/p&gt;</description><content:encoded>&lt;p&gt;When clients ask what technology we use, &amp;ldquo;Hugo&amp;rdquo; often isn&amp;rsquo;t the answer they expect. They&amp;rsquo;ve heard of WordPress, Wix, or Squarespace. So why do we choose a static site generator for most projects?&lt;/p&gt;
&lt;h2 id="what-is-hugo"&gt;What is Hugo?&lt;/h2&gt;
&lt;p&gt;Hugo is a static site generator. Instead of building pages on-the-fly when someone visits (like WordPress), Hugo pre-builds every page during development. The result is a folder of HTML, CSS, and JavaScript files that can be served from anywhere.&lt;/p&gt;
&lt;h2 id="the-case-for-static-sites"&gt;The Case for Static Sites&lt;/h2&gt;
&lt;h3 id="1-speed-thats-hard-to-beat"&gt;1. Speed That&amp;rsquo;s Hard to Beat&lt;/h3&gt;
&lt;p&gt;When there&amp;rsquo;s no database to query, no PHP to execute, and no server-side processing, pages load incredibly fast.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Metric&lt;/th&gt;
&lt;th&gt;WordPress (typical)&lt;/th&gt;
&lt;th&gt;Hugo&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Time to First Byte&lt;/td&gt;
&lt;td&gt;200-800ms&lt;/td&gt;
&lt;td&gt;20-50ms&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Full Page Load&lt;/td&gt;
&lt;td&gt;3-8 seconds&lt;/td&gt;
&lt;td&gt;0.5-1.5 seconds&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Lighthouse Score&lt;/td&gt;
&lt;td&gt;40-70&lt;/td&gt;
&lt;td&gt;95-100&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="2-security-by-simplicity"&gt;2. Security by Simplicity&lt;/h3&gt;
&lt;p&gt;Most website hacks exploit vulnerabilities in:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Database connections&lt;/li&gt;
&lt;li&gt;Plugin code&lt;/li&gt;
&lt;li&gt;User authentication&lt;/li&gt;
&lt;li&gt;Admin panels&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Static sites have none of these. There&amp;rsquo;s no database to inject, no plugins to exploit, no admin panel to brute force. The attack surface is dramatically smaller.&lt;/p&gt;
&lt;h3 id="3-hosting-is-almost-free"&gt;3. Hosting is (Almost) Free&lt;/h3&gt;
&lt;p&gt;Static files can be hosted on:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Cloudflare Pages&lt;/strong&gt; — Free&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;GitHub Pages&lt;/strong&gt; — Free&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Netlify&lt;/strong&gt; — Free tier available&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Vercel&lt;/strong&gt; — Free tier available&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;No servers to maintain. No PHP versions to update. No databases to back up.&lt;/p&gt;
&lt;h3 id="4-version-control-everything"&gt;4. Version Control Everything&lt;/h3&gt;
&lt;p&gt;With Hugo, your entire website lives in Git. This means:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Complete history of every change&lt;/li&gt;
&lt;li&gt;Easy rollback if something breaks&lt;/li&gt;
&lt;li&gt;Multiple people can work simultaneously&lt;/li&gt;
&lt;li&gt;Automatic deployments from commits&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="when-hugo-isnt-the-answer"&gt;When Hugo Isn&amp;rsquo;t the Answer&lt;/h2&gt;
&lt;p&gt;Static sites aren&amp;rsquo;t for everything. You need a different approach if:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Users need to log in and have accounts&lt;/li&gt;
&lt;li&gt;Content updates in real-time (chat, live data)&lt;/li&gt;
&lt;li&gt;Complex e-commerce with inventory management&lt;/li&gt;
&lt;li&gt;User-generated content that updates frequently&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For these cases, we recommend &lt;a href="https://ueb.al/en/blog/choosing-the-right-tech-stack/" class="content-link"&gt;Next.js or similar full-stack frameworks&lt;/a&gt;
.&lt;/p&gt;
&lt;h2 id="the-hugo--cms-combo"&gt;The Hugo + CMS Combo&lt;/h2&gt;
&lt;p&gt;&amp;ldquo;But my client needs to edit content!&amp;rdquo;&lt;/p&gt;
&lt;p&gt;This is where headless CMS tools shine:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Decap CMS&lt;/strong&gt; — Git-based, no server needed&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Sanity&lt;/strong&gt; — Real-time collaboration&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Contentful&lt;/strong&gt; — Enterprise-ready&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The client gets a familiar editing interface. You get the benefits of static output.&lt;/p&gt;
&lt;h2 id="real-results-from-our-projects"&gt;Real Results from Our Projects&lt;/h2&gt;
&lt;p&gt;Sites we&amp;rsquo;ve built with Hugo consistently achieve:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;⚡ &lt;strong&gt;100 Lighthouse Performance&lt;/strong&gt; scores&lt;/li&gt;
&lt;li&gt;🔒 &lt;strong&gt;Zero security incidents&lt;/strong&gt; (there&amp;rsquo;s nothing to hack)&lt;/li&gt;
&lt;li&gt;💰 &lt;strong&gt;€0/month hosting&lt;/strong&gt; on Cloudflare Pages&lt;/li&gt;
&lt;li&gt;📈 &lt;strong&gt;Improved search rankings&lt;/strong&gt; from speed gains&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="our-development-workflow"&gt;Our Development Workflow&lt;/h2&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;1. Client provides content/requirements
2. We build in Hugo with live preview
3. Client reviews on staging URL
4. Approved changes deploy automatically
5. Site goes live on CDN globally
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;The entire process, from start to launch, typically takes 2-4 weeks for a business website.&lt;/p&gt;
&lt;h2 id="try-it-yourself"&gt;Try It Yourself&lt;/h2&gt;
&lt;p&gt;Curious about Hugo? Here are some resources:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://gohugo.io/documentation/" class="content-link" target="_blank" rel="noopener noreferrer"&gt;Hugo Documentation&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://themes.gohugo.io/" class="content-link" target="_blank" rel="noopener noreferrer"&gt;Hugo Themes&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Our open-source starter templates (coming soon)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="ready-to-build"&gt;Ready to Build?&lt;/h2&gt;
&lt;p&gt;If you want a website that&amp;rsquo;s fast, secure, and affordable to maintain:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://ueb.al/en/contact/" class="content-link"&gt;Contact us&lt;/a&gt;
to discuss your project&lt;/li&gt;
&lt;li&gt;&lt;a href="https://ueb.al/en/quiz/" class="content-link"&gt;Take our quiz&lt;/a&gt;
to see what you need&lt;/li&gt;
&lt;li&gt;&lt;a href="https://ueb.al/en/portfolio/" class="content-link"&gt;View our portfolio&lt;/a&gt;
for examples&lt;/li&gt;
&lt;/ul&gt;</content:encoded></item><item><title>Web Accessibility: Why It Matters and How to Get Started</title><link>https://ueb.al/en/blog/web-accessibility-basics/</link><guid isPermaLink="true">https://ueb.al/en/blog/web-accessibility-basics/</guid><pubDate>Sun, 28 Dec 2025 00:00:00 +0000</pubDate><author>ueb.al</author><category>Accessibility</category><category>Accessibility</category><category>SEO</category><description>&lt;p&gt;One in five people has some form of disability. If your website isn&amp;rsquo;t accessible, you&amp;rsquo;re excluding 20% of potential customers. But accessibility isn&amp;rsquo;t just about disability — it improves the experience for everyone.&lt;/p&gt;
&lt;h2 id="what-is-web-accessibility"&gt;What is Web Accessibility?&lt;/h2&gt;
&lt;p&gt;Web accessibility means designing and developing websites that people with disabilities can use. This includes people who:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Are blind or have low vision&lt;/li&gt;
&lt;li&gt;Are deaf or hard of hearing&lt;/li&gt;
&lt;li&gt;Have motor impairments&lt;/li&gt;
&lt;li&gt;Have cognitive disabilities&lt;/li&gt;
&lt;li&gt;Use assistive technologies&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="why-accessibility-matters"&gt;Why Accessibility Matters&lt;/h2&gt;
&lt;h3 id="1-its-the-right-thing-to-do"&gt;1. It&amp;rsquo;s the Right Thing to Do&lt;/h3&gt;
&lt;p&gt;Everyone deserves equal access to information and services online. Full stop.&lt;/p&gt;</description><content:encoded>&lt;p&gt;One in five people has some form of disability. If your website isn&amp;rsquo;t accessible, you&amp;rsquo;re excluding 20% of potential customers. But accessibility isn&amp;rsquo;t just about disability — it improves the experience for everyone.&lt;/p&gt;
&lt;h2 id="what-is-web-accessibility"&gt;What is Web Accessibility?&lt;/h2&gt;
&lt;p&gt;Web accessibility means designing and developing websites that people with disabilities can use. This includes people who:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Are blind or have low vision&lt;/li&gt;
&lt;li&gt;Are deaf or hard of hearing&lt;/li&gt;
&lt;li&gt;Have motor impairments&lt;/li&gt;
&lt;li&gt;Have cognitive disabilities&lt;/li&gt;
&lt;li&gt;Use assistive technologies&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="why-accessibility-matters"&gt;Why Accessibility Matters&lt;/h2&gt;
&lt;h3 id="1-its-the-right-thing-to-do"&gt;1. It&amp;rsquo;s the Right Thing to Do&lt;/h3&gt;
&lt;p&gt;Everyone deserves equal access to information and services online. Full stop.&lt;/p&gt;
&lt;h3 id="2-its-good-for-business"&gt;2. It&amp;rsquo;s Good for Business&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Larger audience&lt;/strong&gt; — 15-20% of people have disabilities&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Better SEO&lt;/strong&gt; — Accessible sites rank better&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Legal protection&lt;/strong&gt; — Many countries require accessibility&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Improved UX&lt;/strong&gt; — Accessibility improvements help everyone&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="3-its-often-required-by-law"&gt;3. It&amp;rsquo;s Often Required by Law&lt;/h3&gt;
&lt;p&gt;In the EU, public sector websites must meet accessibility standards. Many private sector requirements are coming too.&lt;/p&gt;
&lt;h2 id="the-wcag-guidelines"&gt;The WCAG Guidelines&lt;/h2&gt;
&lt;p&gt;The Web Content Accessibility Guidelines (WCAG) define accessibility standards. There are three levels:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Level&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;th&gt;Who Needs It&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;A&lt;/td&gt;
&lt;td&gt;Minimum accessibility&lt;/td&gt;
&lt;td&gt;Everyone&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;AA&lt;/td&gt;
&lt;td&gt;Standard compliance&lt;/td&gt;
&lt;td&gt;Most businesses&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;AAA&lt;/td&gt;
&lt;td&gt;Highest accessibility&lt;/td&gt;
&lt;td&gt;Specialized sites&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Most organizations aim for &lt;strong&gt;WCAG 2.1 AA&lt;/strong&gt; compliance.&lt;/p&gt;
&lt;h2 id="quick-wins-for-accessibility"&gt;Quick Wins for Accessibility&lt;/h2&gt;
&lt;h3 id="1-add-alt-text-to-images"&gt;1. Add Alt Text to Images&lt;/h3&gt;
&lt;p&gt;Screen readers can&amp;rsquo;t see images. Alt text describes what&amp;rsquo;s in the image.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-html" data-lang="html"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;&amp;lt;!-- Bad --&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&amp;lt;&lt;span style="color:#f92672"&gt;img&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;src&lt;/span&gt;&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;team.jpg&amp;#34;&lt;/span&gt;&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;&amp;lt;!-- Good --&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&amp;lt;&lt;span style="color:#f92672"&gt;img&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;src&lt;/span&gt;&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;team.jpg&amp;#34;&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;alt&lt;/span&gt;&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;Our team meeting in the Tirana office&amp;#34;&lt;/span&gt;&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="2-use-proper-heading-structure"&gt;2. Use Proper Heading Structure&lt;/h3&gt;
&lt;p&gt;Headings create a document outline. Screen reader users navigate by headings.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-html" data-lang="html"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;&amp;lt;!-- Bad: Skipping levels --&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&amp;lt;&lt;span style="color:#f92672"&gt;h1&lt;/span&gt;&amp;gt;Page Title&amp;lt;/&lt;span style="color:#f92672"&gt;h1&lt;/span&gt;&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&amp;lt;&lt;span style="color:#f92672"&gt;h3&lt;/span&gt;&amp;gt;Section&amp;lt;/&lt;span style="color:#f92672"&gt;h3&lt;/span&gt;&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;&amp;lt;!-- Good: Proper hierarchy --&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&amp;lt;&lt;span style="color:#f92672"&gt;h1&lt;/span&gt;&amp;gt;Page Title&amp;lt;/&lt;span style="color:#f92672"&gt;h1&lt;/span&gt;&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&amp;lt;&lt;span style="color:#f92672"&gt;h2&lt;/span&gt;&amp;gt;Section&amp;lt;/&lt;span style="color:#f92672"&gt;h2&lt;/span&gt;&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&amp;lt;&lt;span style="color:#f92672"&gt;h3&lt;/span&gt;&amp;gt;Subsection&amp;lt;/&lt;span style="color:#f92672"&gt;h3&lt;/span&gt;&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="3-ensure-sufficient-color-contrast"&gt;3. Ensure Sufficient Color Contrast&lt;/h3&gt;
&lt;p&gt;Text needs enough contrast against its background. The minimum ratios are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;4.5:1&lt;/strong&gt; for normal text&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;3:1&lt;/strong&gt; for large text (18pt+ or 14pt bold)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Use tools like &lt;a href="https://webaim.org/resources/contrastchecker/" class="content-link" target="_blank" rel="noopener noreferrer"&gt;WebAIM Contrast Checker&lt;/a&gt;
.&lt;/p&gt;
&lt;h3 id="4-make-everything-keyboard-accessible"&gt;4. Make Everything Keyboard Accessible&lt;/h3&gt;
&lt;p&gt;Many users can&amp;rsquo;t use a mouse. Ensure:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;All interactive elements are focusable&lt;/li&gt;
&lt;li&gt;Focus order is logical&lt;/li&gt;
&lt;li&gt;Focus is visible (don&amp;rsquo;t remove outlines!)&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="5-add-proper-form-labels"&gt;5. Add Proper Form Labels&lt;/h3&gt;
&lt;p&gt;Every form input needs a label that&amp;rsquo;s programmatically associated.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-html" data-lang="html"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;&amp;lt;!-- Bad --&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&amp;lt;&lt;span style="color:#f92672"&gt;input&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;type&lt;/span&gt;&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;email&amp;#34;&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;placeholder&lt;/span&gt;&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;Email&amp;#34;&lt;/span&gt;&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;&amp;lt;!-- Good --&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&amp;lt;&lt;span style="color:#f92672"&gt;label&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;for&lt;/span&gt;&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;email&amp;#34;&lt;/span&gt;&amp;gt;Email&amp;lt;/&lt;span style="color:#f92672"&gt;label&lt;/span&gt;&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&amp;lt;&lt;span style="color:#f92672"&gt;input&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;type&lt;/span&gt;&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;email&amp;#34;&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;id&lt;/span&gt;&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;email&amp;#34;&lt;/span&gt;&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="testing-your-site"&gt;Testing Your Site&lt;/h2&gt;
&lt;h3 id="automated-tools"&gt;Automated Tools&lt;/h3&gt;
&lt;p&gt;Start with these free tools:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;WAVE&lt;/strong&gt; — Browser extension for quick checks&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Lighthouse&lt;/strong&gt; — Built into Chrome DevTools&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;axe DevTools&lt;/strong&gt; — Comprehensive browser extension&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="manual-testing"&gt;Manual Testing&lt;/h3&gt;
&lt;p&gt;Automated tools catch about 30% of issues. Also test:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Navigate with keyboard only&lt;/li&gt;
&lt;li&gt;Use a screen reader (VoiceOver, NVDA)&lt;/li&gt;
&lt;li&gt;Zoom to 200% and check layout&lt;/li&gt;
&lt;li&gt;Disable images and check comprehension&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="what-we-do-differently"&gt;What We Do Differently&lt;/h2&gt;
&lt;p&gt;At ueb.al, accessibility is built in from the start:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;✅ Semantic HTML structure&lt;/li&gt;
&lt;li&gt;✅ ARIA labels where needed&lt;/li&gt;
&lt;li&gt;✅ Skip links for keyboard users&lt;/li&gt;
&lt;li&gt;✅ Sufficient color contrast&lt;/li&gt;
&lt;li&gt;✅ Focus management&lt;/li&gt;
&lt;li&gt;✅ Screen reader testing&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Every site we build is tested with real assistive technologies.&lt;/p&gt;
&lt;h2 id="common-accessibility-mistakes"&gt;Common Accessibility Mistakes&lt;/h2&gt;
&lt;p&gt;🚫 &lt;strong&gt;Images without alt text&lt;/strong&gt;&lt;br&gt;
🚫 &lt;strong&gt;Low color contrast&lt;/strong&gt;&lt;br&gt;
🚫 &lt;strong&gt;Missing form labels&lt;/strong&gt;&lt;br&gt;
🚫 &lt;strong&gt;Keyboard traps&lt;/strong&gt; (can&amp;rsquo;t escape modals)&lt;br&gt;
🚫 &lt;strong&gt;Auto-playing media&lt;/strong&gt;&lt;br&gt;
🚫 &lt;strong&gt;Removing focus outlines&lt;/strong&gt;&lt;/p&gt;
&lt;h2 id="resources-to-learn-more"&gt;Resources to Learn More&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://webaim.org/" class="content-link" target="_blank" rel="noopener noreferrer"&gt;WebAIM&lt;/a&gt;
— Practical accessibility resources&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.a11yproject.com/" class="content-link" target="_blank" rel="noopener noreferrer"&gt;A11y Project&lt;/a&gt;
— Community-driven guides&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.w3.org/WAI/WCAG21/quickref/" class="content-link" target="_blank" rel="noopener noreferrer"&gt;WCAG Quick Reference&lt;/a&gt;
— Official guidelines&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="need-an-accessibility-audit"&gt;Need an Accessibility Audit?&lt;/h2&gt;
&lt;p&gt;We can review your existing site and provide:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Detailed report of accessibility issues&lt;/li&gt;
&lt;li&gt;Prioritized fixes by impact&lt;/li&gt;
&lt;li&gt;Implementation guidance&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a href="https://ueb.al/en/contact/" class="content-link"&gt;Contact us&lt;/a&gt;
to discuss your accessibility needs.&lt;/p&gt;</content:encoded></item></channel></rss>