<?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: XAVER</title>
    <description>The latest articles on DEV Community by XAVER (@xavierperera).</description>
    <link>https://dev.to/xavierperera</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%2F4122740%2F2d356220-59d4-46d2-80b6-cd569fcd8386.jpg</url>
      <title>DEV Community: XAVER</title>
      <link>https://dev.to/xavierperera</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/xavierperera"/>
    <language>en</language>
    <item>
      <title>When WordPress breaks: a quick fix and a better option</title>
      <dc:creator>XAVER</dc:creator>
      <pubDate>Sat, 05 Sep 2026 06:42:42 +0000</pubDate>
      <link>https://dev.to/xaverconz/when-wordpress-breaks-a-quick-fix-and-a-better-option-5bmj</link>
      <guid>https://dev.to/xaverconz/when-wordpress-breaks-a-quick-fix-and-a-better-option-5bmj</guid>
      <description>&lt;p&gt;In the space of a month we had two new clients for the same reason: their WordPress site suddenly stopped working after an automated update. Both sites were inaccessible via the admin. Both came back online the same day.&lt;/p&gt;

&lt;h2&gt;
  
  
  What went wrong
&lt;/h2&gt;

&lt;p&gt;Automated core or plugin updates are handy. They also carry risk. An incompatible update can break PHP code, trigger a fatal error, or leave the site in a maintenance state. When that happens the admin can be unreachable and the regular dashboard fixes are impossible.&lt;/p&gt;

&lt;h2&gt;
  
  
  How we fixed it
&lt;/h2&gt;

&lt;p&gt;We worked the old-school way and went straight to the fileserver. Short version:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;access the server via SFTP or the host control panel&lt;/li&gt;
&lt;li&gt;rename the plugins folder in wp-content to disable all plugins&lt;/li&gt;
&lt;li&gt;move any mu-plugins or custom files out of the root temporarily&lt;/li&gt;
&lt;li&gt;restore a recent backup of core files where needed, or replace the failing update&lt;/li&gt;
&lt;li&gt;check error logs and PHP version, then re-enable plugins one at a time to find the culprit&lt;/li&gt;
&lt;li&gt;fix file permissions and clear caches&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That process let us get admin access back and bring both sites online the same day. One client chose to rebuild; the other stayed on the fixed site.&lt;/p&gt;

&lt;h2&gt;
  
  
  Options and likely cost
&lt;/h2&gt;

&lt;p&gt;We give two clear options when we arrive:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Quick restore and repair. Get the existing site running and stable. This is tipically a small and affordable job.&lt;/li&gt;
&lt;li&gt;Rebuild and migrate. Move off WordPress to a modern build we host and maintain. If you choose this path we can include the quick restore at no extra charge and use your previous site as source of content and inspiration.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Why consider moving away from WordPress
&lt;/h2&gt;

&lt;p&gt;WordPress is excellent for a simple online presence and rapid setup. It is less suited to complex, high performance or highly bespoke web apps. After a year or two many sites either grow beyond what WordPress handles well, or suffer from plugin sprawl and update fragility.  &lt;/p&gt;

&lt;p&gt;If your site is mainly marketing content, a lightweight static or headless approach can be faster, cheaper to host, and easier to maintain. If you need custom workflows or heavy integrations a purpose built web app will be more reliable.&lt;/p&gt;

&lt;h2&gt;
  
  
  What we recommend
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Work with someone that builds websites for a living. DIY and friends may get you a website that doesn't work for you.&lt;/li&gt;
&lt;li&gt;Keep your plugins under control.&lt;/li&gt;
&lt;li&gt;Once per year, get your site reviewed.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;We don’t maintain WordPress sites routinely, but we know how to restore them quickly and how to rebuild them cleanly away from WordPress when that makes sense. Both approaches save you time and reduce risk.&lt;/p&gt;

</description>
      <category>debugging</category>
      <category>php</category>
      <category>webdev</category>
      <category>wordpress</category>
    </item>
    <item>
      <title>How we used three AI models in Taranaki Business Showcase</title>
      <dc:creator>XAVER</dc:creator>
      <pubDate>Thu, 20 Aug 2026 21:42:52 +0000</pubDate>
      <link>https://dev.to/xaverconz/how-we-used-three-ai-models-in-taranaki-business-showcase-33pi</link>
      <guid>https://dev.to/xaverconz/how-we-used-three-ai-models-in-taranaki-business-showcase-33pi</guid>
      <description>&lt;p&gt;Last week we held a stand in Taranaki Business Showcase, organized by &lt;a href="https://www.taranakichamber.co.nz/" rel="noopener noreferrer"&gt;Taranaki Chamber of Commerce&lt;/a&gt; at &lt;a href="https://www.plymouth.co.nz/" rel="noopener noreferrer"&gt;Plymouth International&lt;/a&gt;.  &lt;/p&gt;

&lt;p&gt;We were wondering what to prepare for the occasion: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Pop-up banner printed by &lt;a href="https://graphix.co.nz/" rel="noopener noreferrer"&gt;Graphix&lt;/a&gt;? Yes.&lt;/li&gt;
&lt;li&gt;Business Cards designed by &lt;a href="https://idyllic.co.nz/" rel="noopener noreferrer"&gt;Idyllic&lt;/a&gt;? Yay!&lt;/li&gt;
&lt;li&gt;Lollies? yeah nah, chocolates are better!&lt;/li&gt;
&lt;li&gt;Leaflets? Merch? Nah.&lt;/li&gt;
&lt;li&gt;AI Interactive Kiosk? Oh! That will be &lt;strong&gt;fun&lt;/strong&gt; to have!&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So &lt;strong&gt;we built it&lt;/strong&gt;! A kiosk whose purpose was to collect business card information in an efficient and memorable way by creating a WOW! moment to those that decided to "give it a try" using simple business tools: One Webcam, One screen and Three different AIs.  &lt;/p&gt;

&lt;p&gt;Our webcam was live waiting for someone to put their business card in front of it. When that happened, then our first AI (gemini-3.1-flash-lite) would receive a shot and read the card to distinguish: name, email, company, address and industry, among other details.  &lt;/p&gt;


&lt;p&gt;&lt;br&gt;
      &lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn.xaver.co.nz%2F3l55e3fnkunv5xyksft2fbrrm7us" 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%2Fcdn.xaver.co.nz%2F3l55e3fnkunv5xyksft2fbrrm7us" width="800" height="440"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;br&gt;
      Card information being scanned in real time with a regular webcam&lt;br&gt;
  


&lt;br&gt;
  

&lt;p&gt;Once the card was detected and first details were confirmed, the captured image would now be sent to two new AIs: to &lt;code&gt;gemini-3.5-flash&lt;/code&gt; to give a second deeper read to the card and get all details confirmed and extended; and to &lt;code&gt;gemini-3-pro-image-preview&lt;/code&gt; to re-stage the card into a trade-matched interior aligned with the cards' brand details and industry. Note that our logo was embedded as watermark, AI was not needed for that trick!  &lt;/p&gt;


&lt;p&gt;&lt;br&gt;
      &lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn.xaver.co.nz%2Fg0u609q0sujyeaje3cnqzca4jnz1" 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%2Fcdn.xaver.co.nz%2Fg0u609q0sujyeaje3cnqzca4jnz1" width="800" height="440"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;br&gt;
      Final result: information understood, card in a contextualized background, ready to send via email.&lt;br&gt;
  


&lt;br&gt;
  

&lt;p&gt;Surprised visitors were very keen to receive the output to their emails, and a single click did the job: Send an email to their address captured by the kiosk, with the original shot and the restaged one, closing the whole loop within a minute.  &lt;/p&gt;


&lt;p&gt;&lt;br&gt;
      &lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn.xaver.co.nz%2Fte4u1gsynm2xa9h5xndscv12er5y" 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%2Fcdn.xaver.co.nz%2Fte4u1gsynm2xa9h5xndscv12er5y" width="759" height="399"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;br&gt;
      Sample of business cards scanned and the staged results&lt;br&gt;
  


&lt;br&gt;
  

&lt;h2&gt;
  
  
  How did it go?
&lt;/h2&gt;

&lt;p&gt;Really well! During the event we scanned 35 cards and digitalized their contact details on the spot. And whilst I was busy with spectators, my 8-year-old helpers collected a card from all the other stands, which I personally scanned via our kiosk the day after at record speed, we now have 85 new quality local leads that can learn more from us.  &lt;/p&gt;


&lt;p&gt;&lt;br&gt;
      &lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn.xaver.co.nz%2F9cs26k0obqqpzov2q6psphmo3r6z" 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%2Fcdn.xaver.co.nz%2F9cs26k0obqqpzov2q6psphmo3r6z" width="759" height="399"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;br&gt;
      When curiosity kicked in, we found out that it also worked with products, magazines and Ooshies!&lt;br&gt;
  


&lt;br&gt;



&lt;h2&gt;
  
  
  Is AI relevant for your business?
&lt;/h2&gt;

&lt;p&gt;As always, it depends. If you rush me: there's likely a handful of good use cases for each business, and thousands others that will be a distraction. In this simple example we used three different AIs because they served well to the particular task we intended, but most other AI models would have been a wrong choice.  &lt;/p&gt;

&lt;p&gt;Whereas the title of this post focuses on how we used AI, the important bit is to realize that the barrier to materialize your ideas has dropped. Two years ago it would have been impossible to build such a tool, secure and production-ready, in a couple of days. With a regular webcam we could recognize an arbitrary object, read a stranger's business card, re-stage it under a studio light, in a branded context or in front of Mount Taranaki, watermarked with our logo and sent to them on the spot.  &lt;/p&gt;

&lt;p&gt;If you have an idea that was impossible a few years ago, and it still sounds impossible today, come for a coffee and we'll work together to get rid of the im.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>buildinpublic</category>
      <category>showdev</category>
    </item>
    <item>
      <title>How we built TipJar.nz in 6 weeks: Our first Minimum Viable Product in Taranaki for Digital Payments</title>
      <dc:creator>XAVER</dc:creator>
      <pubDate>Sun, 28 Jun 2026 23:42:01 +0000</pubDate>
      <link>https://dev.to/xaverconz/how-we-built-tipjarnz-in-6-weeks-our-first-minimum-viable-product-in-taranaki-for-digital-payments-3nod</link>
      <guid>https://dev.to/xaverconz/how-we-built-tipjarnz-in-6-weeks-our-first-minimum-viable-product-in-taranaki-for-digital-payments-3nod</guid>
      <description>&lt;p&gt;TipJar.nz is a simple digital payments platform for schools, clubs and community groups across Aotearoa; think Eftpos without the terminal. You create a "Jar", generate QR codes and payment links, share them around an event, and see donations arrive on a live dashboard. We shipped a production MVP in six weeks to prove the concept, and the project was later picked by Venture Taranaki and presented at a public Showcase in May 2026.  &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What we set out to prove&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;For an Minimum Viable Product we had three clear goals:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Remove barriers to entry: no hardware, no long contracts, no complex setup.&lt;/li&gt;
&lt;li&gt;Enable multiple payment points from one fundraiser.&lt;/li&gt;
&lt;li&gt;Keep compliance and risk small so we could launch quickly and safely.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Six-week plan&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;We organised the process into weekly deliverables so we could show working software fast and iterate with real users.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Week 1: Product &amp;amp; design:&lt;/strong&gt; Define and design core functionality: create Jar, generate QR, pay, dashboard.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Week 2: Payments integration:&lt;/strong&gt; Integrate a card processor and ensure that payment flow was possible and reliable.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Week 3: Core backend:&lt;/strong&gt; Users, Jars, QR records, Payers, Payouts and Email notifications.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Week 4: Frontend &amp;amp; QR generation:&lt;/strong&gt; Public payment pages, QR code generation (SVG/PNG), printable assets and share links.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Week 5: Dashboard &amp;amp; live updates:&lt;/strong&gt; Payment status, subscriptions, basic accounting export and live updates for events.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Week 6: Testing &amp;amp; launch:&lt;/strong&gt; Staging testing, onboarding a handful of local groups, fix feedback, deploy and public launch.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Technical architecture&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;We made pragmatic choices to reduce build time, keep costs low and leave room to scale later.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Frontend:&lt;/strong&gt; Simple is better, no fancy effects and a structure that is proven to work well for mobile phones and desktop.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Backend:&lt;/strong&gt; All our projects are built in Ruby on Rails, famous for being the choice for startups that require speed and reliability.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Payments:&lt;/strong&gt; We used Stripe, a worldwide payment processor for secure card handling and payouts.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;QR codes &amp;amp; links:&lt;/strong&gt; Each Jar has a unique public URL. We generate QR codes for the jar URL and optionally append location or point‑of‑sale parameters so organisers can track which QR code was used.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Hosting &amp;amp; deployment:&lt;/strong&gt; The site is hosted in Sydney in AWS, we plan to move it to New Zealand early 2027.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;UX and product choices that mattered&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;One Jar, many QR codes:&lt;/strong&gt; A Jar represents an organisation. You can print a QR for each event, booth or activity but all payments map back to the same Jar.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fast setup:&lt;/strong&gt; Create a Jar in under a minute, no credit card for signup. Reducing friction was essential for adoption by volunteer organisers.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Transparency:&lt;/strong&gt; Live donor list and the ability to export transactions made it easier for treasurers to reconcile and for organisers to follow up.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Share options:&lt;/strong&gt; QR for print, short links for SMS/email, and copyable payment links for social channels.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Testing, launch and early validation&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The project was selected by Venture Taranaki as a promising local initiative, and we presented TipJar.nz at a public Showcase in May 2026. That public demo was useful for getting feedback from other community organisations and potential partners.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What we learned&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Start narrow:&lt;/strong&gt; Solve one problem very well. For us that meant focusing on fast QR payments before adding subscriptions, fundraising tiers, payer profiles.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Track everything:&lt;/strong&gt; Recording where payments come from (which QR) and why (payment metadata) powers follow‑up and improves collection rates.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Design simple:&lt;/strong&gt; Simple language, minimal setup and printable assets matter. Many organisers are time‑poor and tech‑light.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Iterate with real users:&lt;/strong&gt; Run a few real events before a big public launch to find edge cases in reconciling fees, refunds and disputed charges.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Next steps&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;For TipJar.nz the next phases are improving onboarding, adding better reporting for treasurers, and adding integrations with common accounting tools. We’ll keep iterating based on feedback from clubs and schools across Aotearoa. We are seeing Jars being opened all round New Zealand for different purposes.  &lt;/p&gt;

&lt;p&gt;If you want to try it, visit &lt;a href="https://tipjar.nz" rel="noopener noreferrer"&gt;tipjar.nz&lt;/a&gt; or get in touch for a 15‑minute walkthrough. If you’re a developer or organisation planning a similar MVP and want the technical notes or schema we used, get in touch.&lt;/p&gt;

</description>
      <category>product</category>
      <category>saas</category>
      <category>software</category>
      <category>startup</category>
    </item>
    <item>
      <title>Why Ruby on Rails is Still a Great Choice in 2026</title>
      <dc:creator>XAVER</dc:creator>
      <pubDate>Fri, 05 Jun 2026 18:55:29 +0000</pubDate>
      <link>https://dev.to/xaverconz/why-ruby-on-rails-is-still-a-great-choice-in-2026-588k</link>
      <guid>https://dev.to/xaverconz/why-ruby-on-rails-is-still-a-great-choice-in-2026-588k</guid>
      <description>&lt;p&gt;&lt;strong&gt;Why we still choose Rails at XAVER&lt;/strong&gt;  &lt;/p&gt;

&lt;p&gt;Ruby on Rails remains one of the fastest ways to move from idea to a reliable product. At XAVER we’ve built dozens of apps with Rails and keep coming back to it because its conventions reduce boilerplate, its testing culture keeps code maintainable, and its ecosystem covers a huge range of real-world needs.  &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How XAVER uses Rails&lt;/strong&gt;  &lt;/p&gt;

&lt;p&gt;We use Rails across the project lifecycle: rapid prototypes and MVPs to validate ideas, API backends for single-page and mobile clients, and full-featured platforms that need robust admin interfaces, background processing, and storage. Typical patterns we rely on:  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Service objects and clear boundaries&lt;/strong&gt; to keep controllers thin and make AI or external integrations replaceable.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Background jobs&lt;/strong&gt; for long-running tasks such as model inference, batch processing, and async webhooks.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;ActionCable and streaming&lt;/strong&gt; to surface partial or streaming responses to users while AI tasks run.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;ActiveStorage and attachment handling&lt;/strong&gt; for media pipelines that feed models or store results.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Test suites and CI&lt;/strong&gt; to keep fast iteration safe as features and models evolve.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Rails and AI: practical fit, not hype&lt;/strong&gt;    &lt;/p&gt;

&lt;p&gt;Rails is a good match for AI-enabled products because it manages the plumbing so teams can focus on modelling and UX. In practice at XAVER we integrate AI like this:  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Call external model APIs (OpenAI, Anthropic, private model endpoints) from well-tested service classes and push heavy work into background jobs so requests remain snappy.&lt;/li&gt;
&lt;li&gt;Cache model outputs and embeddings where appropriate to control costs and latency, and use job batching for bulk embedding or retraining tasks.&lt;/li&gt;
&lt;li&gt;Stream partial results to the client with ActionCable or server-sent events for better user experience when inferences take time.&lt;/li&gt;
&lt;li&gt;Store embeddings or use external vector stores to power semantic search and retrieval-augmented generation, keeping the retrieval layer separate from core business logic.&lt;/li&gt;
&lt;li&gt;Use Rails’ security, logging and testing tools to ensure model calls, data handling and user-facing outputs are auditable and controllable.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Recent Rails improvements (better performance, improved developer ergonomics and deployment tooling) make these patterns easier to run in production. For clients who need to move fast while keeping operational discipline, Rails remains a practical, reliable choice.  &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Bottom line:&lt;/strong&gt; at XAVER we pick Rails because it gets teams shipping quickly, integrates smoothly with modern AI workflows, and scales from prototypes to production without forcing architectural rewrites.&lt;/p&gt;

</description>
      <category>backend</category>
      <category>programming</category>
      <category>ruby</category>
      <category>webdev</category>
    </item>
  </channel>
</rss>
