<?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: Nayim Imrit</title>
    <description>The latest articles on DEV Community by Nayim Imrit (@naim_im_d327582a887633a6e).</description>
    <link>https://dev.to/naim_im_d327582a887633a6e</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%2F4047758%2F51104c1d-3fb5-4765-82b9-6fe0ba07bf0b.jpg</url>
      <title>DEV Community: Nayim Imrit</title>
      <link>https://dev.to/naim_im_d327582a887633a6e</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/naim_im_d327582a887633a6e"/>
    <language>en</language>
    <item>
      <title>Building a PHP Wedding Planner with Omniroute: My First Experience</title>
      <dc:creator>Nayim Imrit</dc:creator>
      <pubDate>Sun, 26 Jul 2026 10:16:36 +0000</pubDate>
      <link>https://dev.to/naim_im_d327582a887633a6e/building-a-php-wedding-planner-with-omniroute-my-first-experience-jjp</link>
      <guid>https://dev.to/naim_im_d327582a887633a6e/building-a-php-wedding-planner-with-omniroute-my-first-experience-jjp</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;I tested an AI coding agent with a real university project spec — here's exactly what happened, token by token.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Artificial Intelligence is rapidly changing how we build software. Instead of spending hours scaffolding projects or writing repetitive boilerplate code, AI coding agents are now capable of planning, generating, and even refining applications with minimal input.&lt;/p&gt;

&lt;p&gt;Recently, I had the opportunity to test &lt;strong&gt;Omniroute&lt;/strong&gt; while helping a friend with her final-year university project. She already had a detailed project specification and needed a working PHP template to kick-start her development. Since I had never worked with Twig templating before, I decided this would be the perfect opportunity to see how far an AI-assisted development workflow could go.&lt;/p&gt;

&lt;p&gt;This article shares my experience — from setting up Omniroute to generating a complete project and evaluating the results.&lt;/p&gt;




&lt;h2&gt;
  
  
  🛠️ Setting Up Omniroute
&lt;/h2&gt;

&lt;p&gt;I already had an old Claude API key with approximately &lt;strong&gt;$0.20&lt;/strong&gt; of credit remaining, so I decided to use it for this experiment.&lt;/p&gt;

&lt;p&gt;To install and configure Omniroute, I followed this setup tutorial:&lt;/p&gt;

&lt;p&gt;  &lt;iframe src="https://www.youtube.com/embed/CMzyOiUyEVc?start=92"&gt;
  &lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;After following the installation steps, my directory structure looked like this:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fqrquz0civ4ejx1dp8fmd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fqrquz0civ4ejx1dp8fmd.png" alt="Initial Omniroute directory" width="800" height="161"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  ⚙️ Improving the AI's Coding Standards
&lt;/h2&gt;

&lt;p&gt;One feature I particularly liked was Omniroute's ability to customise the AI's behaviour through the &lt;code&gt;.agent&lt;/code&gt; configuration file.&lt;/p&gt;

&lt;p&gt;I configured Claude with modern development guidance so that it would generate code following current best practices instead of relying on outdated programming patterns.&lt;/p&gt;

&lt;p&gt;I used the following guide as inspiration:&lt;/p&gt;

&lt;p&gt;🔗 &lt;a href="https://share.google/oRK9QBgjXKQogYPYA" rel="noopener noreferrer"&gt;How to Stop Your AI Coding Agent from Writing Outdated Code with Modern Web Guidance&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Tip:&lt;/strong&gt; Although this step is optional, I would highly recommend it. Small improvements to the agent's instructions can significantly improve the quality and consistency of the generated code.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  📋 Preparing the Project
&lt;/h2&gt;

&lt;p&gt;My friend had already written all of the project requirements, including both the functional and non-functional specifications.&lt;/p&gt;

&lt;p&gt;I created a new project folder called &lt;code&gt;wedmauritius&lt;/code&gt; inside my XAMPP &lt;code&gt;htdocs&lt;/code&gt; directory and copied her requirements into a file named:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;newProjectRequirement.txt
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Once everything was ready, I simply asked Claude whether it could access and understand the requirements document.&lt;/p&gt;

&lt;p&gt;Instead of immediately generating code, Omniroute &lt;strong&gt;analysed the project and asked whether I wanted it to create a development plan&lt;/strong&gt; before executing the implementation.&lt;/p&gt;

&lt;p&gt;I found this particularly impressive because it approached the project much like an experienced software developer would — understanding the requirements first before writing any code.&lt;/p&gt;




&lt;h2&gt;
  
  
  🚀 Generating the Application
&lt;/h2&gt;

&lt;p&gt;After confirming the execution plan, Omniroute began building the project automatically.&lt;/p&gt;

&lt;p&gt;The development process required very little manual intervention. It generated the project structure, organised the files appropriately, and implemented the requested functionality based on the specification document.&lt;/p&gt;

&lt;p&gt;The final project directory looked like this:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fj2ukt3hmtnvbf5vy9sod.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fj2ukt3hmtnvbf5vy9sod.png" alt="Final project directory" width="800" height="368"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  📊 Omniroute Dashboard
&lt;/h2&gt;

&lt;p&gt;When Omniroute starts, it automatically launches its web dashboard. From here you can:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Monitor development sessions&lt;/li&gt;
&lt;li&gt;Configure quotas&lt;/li&gt;
&lt;li&gt;Review usage statistics&lt;/li&gt;
&lt;li&gt;Manage other application settings&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;⚠️ Security note:&lt;/strong&gt; The default login password is &lt;code&gt;CHANGEME&lt;/code&gt;. If you're installing Omniroute for the first time, remember to change this before using it regularly.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F66y2x4670085qptz9usc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F66y2x4670085qptz9usc.png" alt="Omniroute dashboard" width="696" height="406"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fwqik775928zq8iw99w5g.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fwqik775928zq8iw99w5g.png" alt="Omniroute dashboard settings" width="753" height="383"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F4rabdut6267kco8ibwt3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F4rabdut6267kco8ibwt3.png" alt="Omniroute quota config" width="691" height="351"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  ✅ The Results
&lt;/h2&gt;

&lt;p&gt;Overall, I was pleasantly surprised by the quality of the generated application.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Metric&lt;/th&gt;
&lt;th&gt;Value&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Total tokens consumed&lt;/td&gt;
&lt;td&gt;~250,800&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Additional API cost&lt;/td&gt;
&lt;td&gt;~$0.50&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Manual interventions needed&lt;/td&gt;
&lt;td&gt;1 (CSS fix)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Output quality&lt;/td&gt;
&lt;td&gt;Production-ready starting point&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Rather than producing a rough prototype, Omniroute generated a &lt;strong&gt;solid starting point&lt;/strong&gt; that my friend could immediately continue developing. For anyone beginning a university project or building an internal prototype, this can save many hours of initial setup work.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fl6f724d6wl9ia799eplo.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fl6f724d6wl9ia799eplo.png" alt="Generated application result" width="586" height="268"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Flgtjfp5x4o2wjofmm593.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Flgtjfp5x4o2wjofmm593.png" alt="Application pages" width="588" height="314"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ft7l13vwz0ozjiyyjjch8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ft7l13vwz0ozjiyyjjch8.png" alt="Application pages continued" width="594" height="319"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  🔢 Token Usage
&lt;/h2&gt;

&lt;p&gt;One of the more interesting parts of this experiment was the token consumption.&lt;/p&gt;

&lt;p&gt;Although my Claude account had virtually no remaining credit, Omniroute continued the development using available free-tier endpoints to complete the project.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F2xavhkvphgg87qbkldja.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F2xavhkvphgg87qbkldja.png" alt="Token consumption summary" width="641" height="360"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;An additional &lt;strong&gt;$0.50&lt;/strong&gt; worth of tokens was consumed during the process — remarkably cost-effective for what was generated.&lt;/p&gt;




&lt;h2&gt;
  
  
  🧪 Testing the Generated Website
&lt;/h2&gt;

&lt;p&gt;Once the project had been generated, I tested the application manually. Overall, everything worked remarkably well.&lt;/p&gt;

&lt;p&gt;The only issue I noticed was a small CSS problem — &lt;strong&gt;the navigation bar was not remaining sticky while scrolling&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Rather than fixing it manually, I simply opened another Omniroute session and asked Claude to correct the issue. It did so without any fuss, which demonstrates one of the biggest advantages of AI-assisted development: &lt;strong&gt;rapid iteration&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Flvapl4onpomg9rtq9zqz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Flvapl4onpomg9rtq9zqz.png" alt="Generated website preview" width="718" height="416"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F3awkyolt4hnz35ulr56q.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F3awkyolt4hnz35ulr56q.png" alt="Website pages" width="715" height="416"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  💭 Final Thoughts
&lt;/h2&gt;

&lt;p&gt;This was my first real project using Omniroute, and I came away genuinely impressed.&lt;/p&gt;

&lt;p&gt;What stood out most wasn't just its ability to generate code — it was &lt;strong&gt;the workflow&lt;/strong&gt;. Omniroute analysed the requirements, proposed a development plan, and then executed that plan with very little guidance. That makes it feel less like an autocomplete tool and more like collaborating with a junior developer who can rapidly scaffold an application.&lt;/p&gt;

&lt;p&gt;Of course, AI-generated applications still require testing, code review, and refinement. Minor issues — such as the CSS bug I encountered — are to be expected. However, those are small trade-offs considering the amount of time saved during the initial development phase.&lt;/p&gt;

&lt;p&gt;If you're looking for a way to bootstrap small PHP applications, university projects, proof-of-concepts, or internal tools, &lt;strong&gt;Omniroute is worth exploring&lt;/strong&gt;.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;I don't see it replacing software developers anytime soon — but it certainly makes them significantly more productive.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;p&gt;&lt;em&gt;Have you tried Omniroute or a similar AI coding agent? I'd love to hear about your experience in the comments below.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>webdev</category>
      <category>programming</category>
      <category>productivity</category>
    </item>
  </channel>
</rss>
