<?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: Nick Mathias</title>
    <description>The latest articles on DEV Community by Nick Mathias (@mnvx).</description>
    <link>https://dev.to/mnvx</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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F464545%2F9886ae07-7e07-4845-9c3e-5d2856edf44c.jpeg</url>
      <title>DEV Community: Nick Mathias</title>
      <link>https://dev.to/mnvx</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/mnvx"/>
    <language>en</language>
    <item>
      <title>isitup.cloud — a simple way to keep your users informed about incidents</title>
      <dc:creator>Nick Mathias</dc:creator>
      <pubDate>Mon, 17 Feb 2025 11:07:05 +0000</pubDate>
      <link>https://dev.to/mnvx/isitupcloud-a-simple-way-to-keep-your-users-informed-about-incidents-5hjh</link>
      <guid>https://dev.to/mnvx/isitupcloud-a-simple-way-to-keep-your-users-informed-about-incidents-5hjh</guid>
      <description>&lt;p&gt;We’ve been developing web systems for over 15 years, building nearly a hundred different projects. When a project has many users, it’s crucial to show its status — what’s working fine and where there are issues.&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.amazonaws.com%2Fuploads%2Farticles%2F89ho9hfdzm4gy45jorj9.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.amazonaws.com%2Fuploads%2Farticles%2F89ho9hfdzm4gy45jorj9.png" alt="Image description" width="800" height="457"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;When users face problems, they visit your site and immediately see confirmation that yes, there’s an issue, and you’re already aware and working on it. This transparency builds trust and improves your communication with users.&lt;/p&gt;

&lt;p&gt;We tried various status page services but always ran into issues. Some had poorly designed status pages, others made it frustratingly difficult to log incidents — so much so that we either reported them too late or didn’t report them at all. As a result, users weren’t properly informed. Some services had clunky integrations.&lt;/p&gt;

&lt;p&gt;So, we decided to build our own tool that works exactly the way we need it to. That’s how &lt;a href="//isitup.cloud"&gt;isitup.cloud&lt;/a&gt; was born — a clean, minimalistic status page service. We made it for ourselves first, ensuring it was simple and effective. But since it turned out to be genuinely useful, we opened it up for everyone.&lt;/p&gt;

&lt;p&gt;We started with a free plan that includes the core feature — a status page. The service is still new, but we’re already using it in our projects and continuously improving it.&lt;/p&gt;

&lt;p&gt;We’d love to have you onboard! Try it out and share your feedback — it will help us make &lt;a href="//isitup.cloud"&gt;isitup.cloud&lt;/a&gt; even better.&lt;/p&gt;

</description>
      <category>devops</category>
      <category>monitoring</category>
    </item>
    <item>
      <title>Zero code print forms for Eloquent</title>
      <dc:creator>Nick Mathias</dc:creator>
      <pubDate>Wed, 18 Nov 2020 07:01:54 +0000</pubDate>
      <link>https://dev.to/mnvx/zero-code-print-forms-for-eloquent-9ib</link>
      <guid>https://dev.to/mnvx/zero-code-print-forms-for-eloquent-9ib</guid>
      <description>&lt;p&gt;Recently, in a project on Laravel+Eloquent needed to make print forms of documents — invoices, contracts in Word format. Since there are a lot of different documents in the system, I decided to make it universal so that it can be used in other projects later.&lt;/p&gt;

&lt;p&gt;The result is an implementation that requires minimal integration costs into the project.&lt;/p&gt;

&lt;p&gt;How I used to make print forms. I used different approaches&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;I was placing tags in the document template and replacing them during generation.&lt;/li&gt;
&lt;li&gt;Was generating the document text from scratch.&lt;/li&gt;
&lt;li&gt;Was generating html and converting it to word.&lt;/li&gt;
&lt;li&gt;I was creating my own system for generating documents similar to the one described in this article, but using other technologies.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Each option is good for its task. But if you have Eloquent, I highly recommend the way described in this article.&lt;/p&gt;

&lt;p&gt;So, we connect the package&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;composer require mnvx/eloquent-print-form
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And we describe Eloquent models, if they are not already described. Let’s say there are the following models.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="kn"&gt;use&lt;/span&gt; &lt;span class="nc"&gt;Illuminate\Database\Eloquent\Model&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="cd"&gt;/**
 * @property string $number
 * @property string $start_at
 * @property Customer $customer
 * @property ContractAppendix[] $appendixes
 */&lt;/span&gt;
&lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Contract&lt;/span&gt; &lt;span class="kd"&gt;extends&lt;/span&gt; &lt;span class="nc"&gt;Model&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="k"&gt;function&lt;/span&gt; &lt;span class="n"&gt;customer&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
    &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nv"&gt;$this&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;belongsTo&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nc"&gt;Customer&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="n"&gt;class&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;

    &lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="k"&gt;function&lt;/span&gt; &lt;span class="n"&gt;appendixes&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
    &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nv"&gt;$this&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;hasMany&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nc"&gt;ContractAppendix&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="n"&gt;class&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="cd"&gt;/**
 * @property string $name
 * @property CustomerCategory $category
 */&lt;/span&gt;
&lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Customer&lt;/span&gt; &lt;span class="kd"&gt;extends&lt;/span&gt; &lt;span class="nc"&gt;Model&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="k"&gt;function&lt;/span&gt; &lt;span class="n"&gt;category&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
    &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nv"&gt;$this&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;belongsTo&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nc"&gt;CustomerCategory&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="n"&gt;class&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="cd"&gt;/**
 * @property string $number
 * @property string $date
 * @property float $tax
 */&lt;/span&gt;
&lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;ContractAppendix&lt;/span&gt; &lt;span class="kd"&gt;extends&lt;/span&gt; &lt;span class="nc"&gt;Model&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="k"&gt;function&lt;/span&gt; &lt;span class="n"&gt;getTaxAttribute&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
    &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="nv"&gt;$tax&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
        &lt;span class="k"&gt;foreach&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$this&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;items&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="nv"&gt;$item&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="nv"&gt;$tax&lt;/span&gt; &lt;span class="o"&gt;+=&lt;/span&gt; &lt;span class="nv"&gt;$item&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;total_amount&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="mi"&gt;100&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; 
                &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;100&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$item&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;taxStatus&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;vat_rate&lt;/span&gt; &lt;span class="o"&gt;??&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)));&lt;/span&gt;
        &lt;span class="p"&gt;}&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nv"&gt;$tax&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;For clarity, the diagram of the relationships&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.amazonaws.com%2Fi%2F7or0j6akg9l5gfn887bv.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.amazonaws.com%2Fi%2F7or0j6akg9l5gfn887bv.png" alt="Class diagram" width="658" height="212"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In other words, we described the table with contracts (&lt;code&gt;Contract&lt;/code&gt;), the contract can have a client (&lt;code&gt;Customer&lt;/code&gt;) filled in, and the client can have a category filled in. A contract can have several appendices (&lt;code&gt;ContractAppendix&lt;/code&gt;).&lt;/p&gt;

&lt;p&gt;All you need to generate a print form is to describe the fields in the print form template. Creating a docx file with the following content&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.amazonaws.com%2Fi%2F6kxm0esobd2zmw259qo5.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.amazonaws.com%2Fi%2F6kxm0esobd2zmw259qo5.png" alt="Document example" width="700" height="287"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In variables, specify the names of Eloquent entity fields. If you need to get to neighboring tables via links, use a dot, as in the example above, in &lt;code&gt;${customer.category.name}&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;If you need to process data from the database, use the pipeline operator &lt;code&gt;|&lt;/code&gt;, as in the example &lt;code&gt;${number|placeholder}&lt;/code&gt;. If you need to perform multiple processes, build a chain of pipelines, for example &lt;code&gt;${start_at|date|placeholder}&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Examples of ready-made operations&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;placeholder&lt;/code&gt; — replaces an empty value with “&lt;code&gt;____&lt;/code&gt;”,&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;date&lt;/code&gt; — sets the date to the format &lt;code&gt;24.12.2020&lt;/code&gt;,&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;dateTime&lt;/code&gt; — sets the date-time to the format &lt;code&gt;24.12.2020 23:11&lt;/code&gt;,&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;int&lt;/code&gt; — converts an integer to the format &lt;code&gt;2'145&lt;/code&gt;,&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;decimal&lt;/code&gt; — converts a fractional number to the format &lt;code&gt;2'145.07&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;To fill in table data, insert variables into the table as in the document example above. You can use a separate construction to number table rows &lt;code&gt;${entities.#row_number}&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Now that the document is described, you just need to start generating the printed form&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="kn"&gt;use&lt;/span&gt; &lt;span class="nc"&gt;Mnvx\EloquentPrintForm\PrintFormProcessor&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="nv"&gt;$entity&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;Contract&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="nf"&gt;find&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$id&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="nv"&gt;$printFormProcessor&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;PrintFormProcessor&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="nv"&gt;$templateFile&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;resource_path&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'path/your_print_form.docx'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="nv"&gt;$tempFileName&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;$printFormProcessor&lt;/span&gt;
    &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;process&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$templateFile&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;$entity&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The generated &lt;code&gt;$tempFileName&lt;/code&gt; file will contain the prepared print form.&lt;/p&gt;

&lt;p&gt;In a Laravel project, the controller method responsible for generating the printed form may look like this&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="k"&gt;function&lt;/span&gt; &lt;span class="n"&gt;downloadPrintForm&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;FormRequest&lt;/span&gt; &lt;span class="nv"&gt;$request&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nv"&gt;$id&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;$request&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'id'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="nv"&gt;$entity&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;Contract&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="nf"&gt;find&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$id&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="nv"&gt;$printFormProcessor&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;PrintFormProcessor&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
    &lt;span class="nv"&gt;$templateFile&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;resource_path&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
        &lt;span class="s1"&gt;'path_to_print_forms/your_print_form.docx'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="nv"&gt;$tempFileName&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;$printFormProcessor&lt;/span&gt;
        &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;process&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$templateFile&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;$entity&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="nv"&gt;$filename&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;'contract_'&lt;/span&gt; &lt;span class="mf"&gt;.&lt;/span&gt; &lt;span class="nv"&gt;$id&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nf"&gt;response&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
        &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;download&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$tempFileName&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;$filename&lt;/span&gt; &lt;span class="mf"&gt;.&lt;/span&gt; &lt;span class="s1"&gt;'.docx'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;deleteFileAfterSend&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In summary, I will say that I decently unloaded myself by making this small library for a project where there are quite a lot of print forms. I don’t need to write my own unique code for each of them. I just describe the variables in the documents as mentioned above and get the result very quickly. I will be glad if the package will help you save time.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/mnvx/eloquent-print-form" rel="noopener noreferrer"&gt;Link to the project on github&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>laravel</category>
      <category>php</category>
    </item>
  </channel>
</rss>
