<?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: mojsx</title>
    <description>The latest articles on DEV Community by mojsx (@mojsx).</description>
    <link>https://dev.to/mojsx</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%2F905752%2F71dcbd4b-2a50-4b53-9fe9-01c9f4b40087.png</url>
      <title>DEV Community: mojsx</title>
      <link>https://dev.to/mojsx</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/mojsx"/>
    <language>en</language>
    <item>
      <title>My Journey of Building a Windows 95 Portfolio: Lessons Learned and Tips</title>
      <dc:creator>mojsx</dc:creator>
      <pubDate>Tue, 16 May 2023 12:19:10 +0000</pubDate>
      <link>https://dev.to/mojsx/my-journey-of-building-a-windows-95-portfolio-lessons-learned-and-tips-g1k</link>
      <guid>https://dev.to/mojsx/my-journey-of-building-a-windows-95-portfolio-lessons-learned-and-tips-g1k</guid>
      <description>&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Ca0R29Th--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/09jd5ilv59ty2fa1vt19.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Ca0R29Th--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/09jd5ilv59ty2fa1vt19.png" alt="Portfolio Screenshot" width="800" height="397"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;Hello fellow developers! Today I want to share with you my incredible journey of building my portfolio and the valuable lessons I learned along the way. Whether you're just starting out or looking to revamp your existing portfolio, I hope my experiences and tips will inspire and guide you on your path to creating an impressive showcase of your skills.&lt;/p&gt;

&lt;p&gt;You can find a live preview link &lt;a href="https://mojsx.vercel.app"&gt;here&lt;/a&gt;&lt;br&gt;
Or check the &lt;a href="https://github.com/mo-jsx/resume-95"&gt;github repo&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Table of content
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
Pre Code

&lt;ul&gt;
&lt;li&gt;Define Your Purpose and Audience&lt;/li&gt;
&lt;li&gt;Showcase Your Best Work&lt;/li&gt;
&lt;li&gt;
Clean Design

&lt;ul&gt;
&lt;li&gt;Typography&lt;/li&gt;
&lt;li&gt;Color Schemes&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
The Code

&lt;ul&gt;
&lt;li&gt;Framworks &amp;amp; Libraries Used&lt;/li&gt;
&lt;li&gt;The Frontend Architecture&lt;/li&gt;
&lt;li&gt;Styling&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt;Conclusion&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Pre code
&lt;/h2&gt;

&lt;h2&gt;
  
  
  Define Your Purpose and Audience
&lt;/h2&gt;

&lt;p&gt;The first step I took before starting to build my portfolio was to understand its purpose and define my target audience. Am I presenting my skills to potential employers, clients, or fellow developers? &lt;br&gt;
Once I answered this question, I began to tailor the content, design, and tone of my portfolio accordingly. &lt;br&gt;
The motivation behind this step is to identify the key message I want to convey and ensure that my portfolio is aligned with my goals.&lt;/p&gt;

&lt;h2&gt;
  
  
  Showcase Your Best Work
&lt;/h2&gt;

&lt;p&gt;When curating my portfolio, I always keep in mind that quality trumps quantity. I choose a selection of my best projects that highlight my skills, creativity, and problem-solving abilities. I provide brief descriptions, including the technologies used, my role, the challenges faced, and the solutions implemented. I have also tried to demonstrate my thought process.&lt;/p&gt;

&lt;h2&gt;
  
  
  Clean Design
&lt;/h2&gt;

&lt;p&gt;A visually appealing and easy-to-use portfolio is critical. Windows95 was my first encounter with a computer, Windows98 was my entire childhood, and it means a lot to me to turn my memories into a fun project full of nostalgia. &lt;/p&gt;

&lt;h3&gt;
  
  
  Design system
&lt;/h3&gt;

&lt;p&gt;I wanted to use a clean and professional design that would enhance my work without distracting from it, inspired by the Win95 design system. &lt;/p&gt;

&lt;h3&gt;
  
  
  Typography
&lt;/h3&gt;

&lt;p&gt;Typography is the cornerstone of implementing a perfectly balanced design system and visual consistency. The choice of fonts, sizes, spacing, and hierarchy establishes a distinct personality, enhances readability, and promotes a cohesive and memorable user experience. Special attention must therefore be paid to the choice of typography and typographic system. &lt;/p&gt;

&lt;p&gt;As for me, I decided to use an open source fork of the Windows 95 system font called Levi Windows to get the exact same look and feel as Win95, below is a preview of the font in question: &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--MdYcXmrO--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/fu4lkg8di4ydlsj63g3k.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--MdYcXmrO--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/fu4lkg8di4ydlsj63g3k.png" alt="Levi Font" width="775" height="283"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Color Schemes
&lt;/h3&gt;

&lt;p&gt;Color schemes are paramount in a design system because they evoke emotion, convey meaning, and create visual harmony. A well-defined color scheme enhances brand recognition, promotes consistency across touch points, and contributes to a cohesive and visually appealing design system.&lt;/p&gt;

&lt;p&gt;In my case, and in order to convey the same native UX, I had to go with the same/similar color scheme as Win95. You can have a look at the color scheme I implemented:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s---pechSyX--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/acjub0orjebjyz9yh3rh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s---pechSyX--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/acjub0orjebjyz9yh3rh.png" alt="Color Schmes" width="800" height="315"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  When building a portfolio we need to keep an eye on the overall aestheticsm Ensure easy navigation and quick access to important information. And remember, simplicity is key.
&lt;/h3&gt;

&lt;h2&gt;
  
  
  The Code
&lt;/h2&gt;

&lt;p&gt;When deciding which JS framework to use for building my portfolio, it was trivial for me to go with &lt;a href="https://react.dev"&gt;React&lt;/a&gt;, first and foremost is the fact that I'm quite familiar with React, having built projects with it for several years now. I like the architecture it follows, its efficient rendering approach, and its rich ecosystem.&lt;/p&gt;

&lt;p&gt;I also had the opportunity to experiment with some other libraries, that can be found below: &lt;/p&gt;

&lt;h2&gt;
  
  
  Frameworks &amp;amp; Libraries used
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;  ⚛️ &lt;a href="https://react.dev"&gt;React :&lt;/a&gt; A JavaScript library for building user interfaces.&lt;/li&gt;
&lt;li&gt;  🐻 &lt;a href="https://zustand-demo.pmnd.rs"&gt;Zustand :&lt;/a&gt; A unopiniated state management solution, using simplified flux principles.&lt;/li&gt;
&lt;li&gt;  🖌️ &lt;a href="https://sass-lang.com"&gt;Sass :&lt;/a&gt; CSS preprocessor that enhances the functionality of CSS by adding features like variables, nesting, mixins, and more.&lt;/li&gt;
&lt;li&gt;  👋 &lt;a href="https://github.com/react-grid-layout/react-draggable"&gt;Draggable :&lt;/a&gt; A react library for making elements draggable. You can find this excellent beginner friendly article &lt;a href="https://lo-victoria.com/making-draggable-components-in-react"&gt;Here&lt;/a&gt; by &lt;a href="https://twitter.com/lo_victoria2666"&gt;Victoria Lo&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The Frontend Architecture
&lt;/h2&gt;

&lt;p&gt;The frontend architecture depends on various factors such as: the requirements, the nature of the project, the tech stack, and so on.&lt;/p&gt;

&lt;p&gt;In the case of my portfolio, I have come to the conclusion that the most appropriate architecture for this project is quite simple and would be as follows:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--hmpxY-Jc--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gp6klzksmusxvppvg2fk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--hmpxY-Jc--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gp6klzksmusxvppvg2fk.png" alt="Project Architecture" width="800" height="446"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Where every window added to the DOM, creates a process object in the Process Manger aka the store.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;For the state of the application, I used zustand as my new favourite teddy bear. For its simplicity and 0-hassle 0-boilerplate code to set up a flux architecture.&lt;/p&gt;

&lt;h2&gt;
  
  
  Styling
&lt;/h2&gt;

&lt;p&gt;The integrity of the application was created by me using only Sass. I did not use any external component libraries. I spent a lot of time learning the Windows 95 design system and started building from there.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Building my portfolio has been an exciting and enlightening journey. Through careful curation, thoughtful design, engaging content, and a focus on personal branding, I was able to create a powerful showcase of my skills and expertise. &lt;br&gt;
In addition to refactoring and optimizing the application, I want to make this my pet project, where I can have fun trying new things and show off my latest work, because building a portfolio is an ongoing process.&lt;/p&gt;

&lt;p&gt;What lessons have you learned in building your portfolio? Share your thoughts and experiences in the comments below. Let's inspire and learn from one another!&lt;/p&gt;

</description>
      <category>react</category>
      <category>vite</category>
      <category>javascript</category>
      <category>webdev</category>
    </item>
  </channel>
</rss>
