<?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: Agnes Shan</title>
    <description>The latest articles on DEV Community by Agnes Shan (@48nes).</description>
    <link>https://dev.to/48nes</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%2F910078%2Fc2806683-a8ca-4c14-871a-7c8adcbc372f.gif</url>
      <title>DEV Community: Agnes Shan</title>
      <link>https://dev.to/48nes</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/48nes"/>
    <language>en</language>
    <item>
      <title>Next.JS Successes and Struggles</title>
      <dc:creator>Agnes Shan</dc:creator>
      <pubDate>Wed, 17 Aug 2022 02:20:01 +0000</pubDate>
      <link>https://dev.to/48nes/nextjs-successes-and-struggles-3ela</link>
      <guid>https://dev.to/48nes/nextjs-successes-and-struggles-3ela</guid>
      <description>&lt;h3&gt;
  
  
  Intro
&lt;/h3&gt;

&lt;p&gt;Over the past two weeks or so, I've been developing an online ARPG site in Next.JS. This was purely an experiment in trying out different languages and libraries, so I wasn't going for the most efficient web application; I was determined to build this web application using a very specific tech stack.&lt;br&gt;
When Next.JS was introduced to me by a friend about a year ago, it was pitched to me as "backend built on the frontend...so you don't really need a backend. Because it's on a frontend." Obviously, I was intrigued. &lt;br&gt;
Prior to using Next.JS, I'd been mostly using Flask for simpler web apps and Django if I needed anything more complex. For databases, I usually used either PostgreSQL or just plain MySQL. To really throw myself into the challenge, this time I used Next.JS with NoSQL (specifically MongoDB). &lt;/p&gt;

&lt;h3&gt;
  
  
  Successes
&lt;/h3&gt;

&lt;p&gt;I had developed a bit of a penchant for building static sites with &lt;a href="https://www.getzola.org/"&gt;Zola&lt;/a&gt; and horribly misusing TOML templating, so I did really enjoy Next.JS's function components. I had a lot of sections on the same page that needed to look the same with different information, so it was really easy to just map over it. &lt;br&gt;
The documentation for Next.JS was also fairly clear and easy to navigate. &lt;br&gt;
I was a big fan of &lt;code&gt;useState&lt;/code&gt;s, although I guess that's more of a React component than Next.JS. &lt;br&gt;
Overall, and it pains me as someone who likes to keep things based on tangible evidence, it did &lt;em&gt;feel&lt;/em&gt; more lightweight. &lt;/p&gt;

&lt;h3&gt;
  
  
  Struggles
&lt;/h3&gt;

&lt;p&gt;When thinking of struggles with Next.JS, it's very easy to compare it to my past experience with Django. I think the biggest issue I had was that user authentication was a lot harder with Next.JS, in particular because I had to rely on an authentication platform since "backend built on the frontend" is just code for "some backend features! But still mostly frontend". &lt;br&gt;
When querying database data, I forget what documentation I read, but some of the documentation for Next.JS very clearly stated that instead of accessing an API, it was better to just query the database directly in a Server Props wrapper, which was a bit odd. &lt;br&gt;
Completely unrelated to Next.JS, but I also did miss being able to use relations from PostgreSQL, although I committed to using NoSQL this time. &lt;/p&gt;

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