<?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: Ewelina Krzeptowska</title>
    <description>The latest articles on DEV Community by Ewelina Krzeptowska (@ekrzeptowski).</description>
    <link>https://dev.to/ekrzeptowski</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%2F554667%2Fe9840e1d-dd4c-4a16-84f6-094e7bac1b1a.jpg</url>
      <title>DEV Community: Ewelina Krzeptowska</title>
      <link>https://dev.to/ekrzeptowski</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/ekrzeptowski"/>
    <language>en</language>
    <item>
      <title>I built a link shortener app with NextJS</title>
      <dc:creator>Ewelina Krzeptowska</dc:creator>
      <pubDate>Tue, 01 Jun 2021 21:00:13 +0000</pubDate>
      <link>https://dev.to/ekrzeptowski/i-built-a-link-shortener-app-with-nextjs-cnh</link>
      <guid>https://dev.to/ekrzeptowski/i-built-a-link-shortener-app-with-nextjs-cnh</guid>
      <description>&lt;p&gt;Live demo: &lt;a href="https://l.ekrzeptowski.pl" rel="noopener noreferrer"&gt;l.ekrzeptowski.pl&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Libraries used:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://next-auth.js.org/" rel="noopener noreferrer"&gt;NextAuth.js&lt;/a&gt; - authentication for Next.js&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.prisma.io/" rel="noopener noreferrer"&gt;Prisma 2&lt;/a&gt; - Next-generation &lt;a href="https://en.wikipedia.org/wiki/Object%E2%80%93relational_mapping" rel="noopener noreferrer"&gt;ORM&lt;/a&gt; for Node.js and TypeScript&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://react-query.tanstack.com/" rel="noopener noreferrer"&gt;React query&lt;/a&gt; - used for fetching data and state management&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fres.cloudinary.com%2Fdn3ero0me%2Fimage%2Fupload%2Fv1618142939%2Fblog%2F76TSHtdPQ5_zv8uln.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fres.cloudinary.com%2Fdn3ero0me%2Fimage%2Fupload%2Fv1618142939%2Fblog%2F76TSHtdPQ5_zv8uln.gif" alt="React query data fetching"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://react-hook-form.com/" rel="noopener noreferrer"&gt;React Hook Form&lt;/a&gt; - used for URL input state management and validation&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fres.cloudinary.com%2Fdn3ero0me%2Fimage%2Fupload%2Fv1618142465%2Fblog%2FVe8fTNwmD0_hechm1.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fres.cloudinary.com%2Fdn3ero0me%2Fimage%2Fupload%2Fv1618142465%2Fblog%2FVe8fTNwmD0_hechm1.gif" alt="Form validation"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://tailwindcss.com/" rel="noopener noreferrer"&gt;Tailwind CSS&lt;/a&gt; - A CSS framework used for styling&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;I'd love to hear your feedback about this app. You can also introduce your ideas to this project by contributing to it.&lt;/p&gt;

&lt;p&gt;Here's a link for the GitHub repo:&lt;/p&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev.to%2Fassets%2Fgithub-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/ekrzeptowski" rel="noopener noreferrer"&gt;
        ekrzeptowski
      &lt;/a&gt; / &lt;a href="https://github.com/ekrzeptowski/surl" rel="noopener noreferrer"&gt;
        surl
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      A modern link shortener
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;Teeny&lt;/h1&gt;

&lt;/div&gt;
&lt;p&gt;Teeny is a modern link shortener based on Next.js&lt;/p&gt;
&lt;p&gt;Demo: &lt;a href="https://teeny.ovh/" rel="nofollow noopener noreferrer"&gt;https://teeny.ovh/&lt;/a&gt;&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Getting Started&lt;/h2&gt;

&lt;/div&gt;
&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;1. Download the code of this repository by cloning it:&lt;/h3&gt;

&lt;/div&gt;
&lt;div class="highlight highlight-source-shell notranslate position-relative overflow-auto js-code-highlight"&gt;
&lt;pre&gt;git clone https://github.com/ekrzeptowski/teeny.git&lt;/pre&gt;

&lt;/div&gt;
&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;2. Then navigate to directory of the cloned repository and install required dependencies:&lt;/h3&gt;

&lt;/div&gt;
&lt;div class="highlight highlight-source-shell notranslate position-relative overflow-auto js-code-highlight"&gt;
&lt;pre&gt;&lt;span class="pl-c1"&gt;cd&lt;/span&gt; teeny

npm install
&lt;span class="pl-c"&gt;&lt;span class="pl-c"&gt;#&lt;/span&gt; or&lt;/span&gt;
yarn install&lt;/pre&gt;

&lt;/div&gt;
&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;3. Configure environmental variables:&lt;/h3&gt;

&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;DATABASE_URL: Postgres database connection URL
(&lt;a href="https://www.prisma.io/docs/concepts/database-connectors/postgresql" rel="nofollow noopener noreferrer"&gt;https://www.prisma.io/docs/concepts/database-connectors/postgresql&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;NEXTAUTH_URL: URL of the app&lt;/li&gt;
&lt;li&gt;NEXT_PUBLIC_ORIGIN: URL of the app&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;4. Configure authentication providers according to:&lt;/h3&gt;

&lt;/div&gt;
&lt;p&gt;&lt;a href="https://next-auth.js.org/configuration/providers" rel="nofollow noopener noreferrer"&gt;https://next-auth.js.org/configuration/providers&lt;/a&gt;&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;5. Finally run the app in dev environment or in production:&lt;/h3&gt;

&lt;/div&gt;
&lt;div class="highlight highlight-source-shell notranslate position-relative overflow-auto js-code-highlight"&gt;
&lt;pre&gt;npm run dev
&lt;span class="pl-c"&gt;&lt;span class="pl-c"&gt;#&lt;/span&gt; or&lt;/span&gt;
npm run build
npm start&lt;/pre&gt;

&lt;/div&gt;
&lt;/div&gt;



&lt;/div&gt;
&lt;br&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/ekrzeptowski/surl" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;br&gt;
&lt;/div&gt;
&lt;br&gt;


</description>
      <category>showdev</category>
      <category>nextjs</category>
      <category>typescript</category>
      <category>javascript</category>
    </item>
    <item>
      <title>Social assistant - my first full stack project</title>
      <dc:creator>Ewelina Krzeptowska</dc:creator>
      <pubDate>Sat, 13 Feb 2021 20:15:48 +0000</pubDate>
      <link>https://dev.to/ekrzeptowski/social-assistant-my-first-full-stack-project-2ho0</link>
      <guid>https://dev.to/ekrzeptowski/social-assistant-my-first-full-stack-project-2ho0</guid>
      <description>&lt;h1&gt;
  
  
  The idea
&lt;/h1&gt;

&lt;p&gt;Most of the apps, made to show the number of unfollowers on Twitter, I tried were performing too slow because of server-side rendering, or the UI was not optimized for mobile.&lt;/p&gt;

&lt;p&gt;That's why I decided to build a new app to perform this task.&lt;/p&gt;

&lt;p&gt;Live demo: &lt;a href="//sa.ekrzeptowski.pl"&gt;https://sa.ekrzeptowski.pl&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Tech stack
&lt;/h1&gt;

&lt;p&gt;Social assistant is built using MERN stack:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;M&lt;/strong&gt;ongoDB&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;E&lt;/strong&gt;xpressJS&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;R&lt;/strong&gt;eact&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;N&lt;/strong&gt;ode.js&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Frontend
&lt;/h2&gt;

&lt;p&gt;The frontend side of the Social assistant is licensed under the MIT license and was written using Gatsby.js.&lt;/p&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--566lAguM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/ekrzeptowski"&gt;
        ekrzeptowski
      &lt;/a&gt; / &lt;a href="https://github.com/ekrzeptowski/social-assist-ui"&gt;
        social-assist-ui
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      React-based UI for the Social Assistant app
    &lt;/h3&gt;
  &lt;/div&gt;
&lt;/div&gt;


&lt;h3&gt;
  
  
  Libraries used:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://www.gatsbyjs.com/"&gt;Gatsby.js&lt;/a&gt; - it has helped to improve SEO and loading experience of the landing page.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://material-ui.com/"&gt;Material-UI&lt;/a&gt; - Material Design React UI framework&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://redux.js.org/"&gt;Redux&lt;/a&gt; with &lt;a href="https://redux-toolkit.js.org/"&gt;Redux Toolkit&lt;/a&gt; - used for state management &lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.gatsbyjs.com/plugins/gatsby-plugin-mdx/"&gt;gatsby-plugin-mdx&lt;/a&gt; - used to render the privacy policy Markdown page&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Backend
&lt;/h2&gt;

&lt;p&gt;The backend side of the Social assistant is running under Node.js.&lt;/p&gt;

&lt;h3&gt;
  
  
  Libraries used:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://expressjs.com/"&gt;Express&lt;/a&gt; - a Node.js framework&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.mongodb.com/"&gt;MongoDB&lt;/a&gt; - database&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/websockets/ws"&gt;ws&lt;/a&gt; - WebSocket server used to broadcast actual data sync status&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://www.passportjs.org/"&gt;passport.js&lt;/a&gt; - used for Twitter authentication&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/draftbit/twitter-lite"&gt;twitter-lite&lt;/a&gt; - lightweight library for Twitter API&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/agenda/agenda"&gt;Agenda&lt;/a&gt; - (A lightweight job scheduling library for Node.js) used for scheduling user data updates&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>react</category>
      <category>javascript</category>
      <category>showdev</category>
      <category>node</category>
    </item>
  </channel>
</rss>
