<?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: Lio Schimanko Bittencourt</title>
    <description>The latest articles on DEV Community by Lio Schimanko Bittencourt (@schimanko).</description>
    <link>https://dev.to/schimanko</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%2F4232744%2F6f096e68-6a23-4324-bac1-0a500a328680.jpg</url>
      <title>DEV Community: Lio Schimanko Bittencourt</title>
      <link>https://dev.to/schimanko</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/schimanko"/>
    <language>en</language>
    <item>
      <title>I grew tired of portfolio-builders, so I made `npm create portfoliable@latest`</title>
      <dc:creator>Lio Schimanko Bittencourt</dc:creator>
      <pubDate>Sat, 07 Nov 2026 21:23:26 +0000</pubDate>
      <link>https://dev.to/schimanko/i-grew-tired-of-portfolio-builders-so-i-made-npm-create-portfoliablelatest-1pfk</link>
      <guid>https://dev.to/schimanko/i-grew-tired-of-portfolio-builders-so-i-made-npm-create-portfoliablelatest-1pfk</guid>
      <description>&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%2Fq33lu7qhmzy17qrhdo3c.jpeg" 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%2Fq33lu7qhmzy17qrhdo3c.jpeg" alt="A portfolio using Portfoliable.js" width="800" height="486"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I started my career as a designer, and very early on, I learned how important it was to have a portfolio. When I decided to transition from Product and User Experience Design to Software Engineering, I soon realized that a portfolio is important in practically every career path.&lt;/p&gt;

&lt;p&gt;After being invited to interview with companies like John Deere and Nubank, I decided to share a formula that was working for me.&lt;/p&gt;

&lt;p&gt;With this in mind, I decoupled my personal portfolio and created &lt;strong&gt;Portfoliable.js&lt;/strong&gt;, an open-source CLI portfolio builder for creatives around the world. It received more than &lt;strong&gt;6,000 npm downloads&lt;/strong&gt; in the past three months.&lt;/p&gt;

&lt;p&gt;Here’s what I’ve learned so far.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;If you’re in a hurry:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;When you run &lt;code&gt;npm create portfoliable@latest&lt;/code&gt;, you get an industry-class portfolio to showcase your work, built in JavaScript as a SPA (single-page application).&lt;/li&gt;
&lt;li&gt;All case studies and the About page are written in Markdown, with support for the full syntax.&lt;/li&gt;
&lt;li&gt;You can add optional video presentations in a high-resolution, mockup-ready player.&lt;/li&gt;
&lt;li&gt;You can add or remove multiple languages via CLI commands. They’re served at runtime, with support for &lt;code&gt;rtl&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;You can self-host anywhere, with full accessibility features for the web app, including Dark Mode, Forced Colors, High Contrast, Text Increase/Decrease, and more.&lt;/li&gt;
&lt;li&gt;All content is agent-ready and served in Markdown.&lt;/li&gt;
&lt;li&gt;Custom design and label edits are possible via tokens.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Recruiters have little time
&lt;/h2&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%2F99ck6gpd2ma8us3layup.jpeg" 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%2F99ck6gpd2ma8us3layup.jpeg" alt="HomeView of a portfolio using Portfoliable.js" width="800" height="1636"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It’s difficult to grab a recruiter’s attention, so a portfolio has to be fast, easy to look at, and easy to navigate. That’s why the first page—or, in this case, &lt;code&gt;View&lt;/code&gt;—is so important.&lt;/p&gt;

&lt;p&gt;I tried many iterations of &lt;code&gt;HomeView&lt;/code&gt;. Although every portfolio is different and reflects a candidate’s identity, there’s a golden rule for the home page: &lt;strong&gt;it needs to show what you’ve built in the real world.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;As you can see in the screenshot above, &lt;code&gt;HomeView&lt;/code&gt; is composed of a gallery that showcases what the candidate has built, as is, with a title, description, and pills indicating whether the case study includes a repository link, a website link, or a video presentation.&lt;/p&gt;

&lt;p&gt;I call these “Case Decorators.” Except for the title and description—which are important for SEO/GEO—they’re all optional. Their labels can be customized via &lt;code&gt;i18n.labels.js&lt;/code&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Choosing the right presentation
&lt;/h3&gt;

&lt;p&gt;You also have the option to change the mockup to match the device on which your product was tested or released. When you run &lt;code&gt;npm run portfoliable-thumbnail-options -- --full&lt;/code&gt;, you generate &lt;code&gt;thumbnail-options.generated.json&lt;/code&gt;, a comprehensive catalog of thumbnails to choose from. They’re grouped by &lt;code&gt;thumbBrand&lt;/code&gt; → &lt;code&gt;thumbCategory&lt;/code&gt; → &lt;code&gt;thumbModel&lt;/code&gt; → &lt;code&gt;thumbColor&lt;/code&gt;. Brands include mockups from Apple, Dell, Google, Xiaomi, and others. Within each brand, you can choose a category such as &lt;code&gt;tablet&lt;/code&gt;, &lt;code&gt;desktop&lt;/code&gt;, &lt;code&gt;mobile&lt;/code&gt;, or &lt;code&gt;wearable&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;When you click on a case study, the recruiter is taken to &lt;code&gt;CaseView&lt;/code&gt;, where they can take a closer look at your work.&lt;/p&gt;

&lt;h2&gt;
  
  
  Showing off your work
&lt;/h2&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%2F6u3ejfzaupni57fimmnc.jpeg" 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%2F6u3ejfzaupni57fimmnc.jpeg" alt="CaseView of a portfolio that uses Portfoliable.js" width="800" height="486"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can customize any case study with several Case Decorators, all of which are optional and independent of one another:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A button that takes you to a video presentation inside the app, in &lt;code&gt;PlayerView&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Links to repositories or websites.&lt;/li&gt;
&lt;li&gt;A quick summary of the case study, with &lt;code&gt;summaryProps&lt;/code&gt; to highlight real-world impact.&lt;/li&gt;
&lt;li&gt;An audio player, if you want to record the case study for accessibility. It includes an on/off auto-scroller button.&lt;/li&gt;
&lt;li&gt;Options to hide a specific case study from crawlers and/or AI agents.&lt;/li&gt;
&lt;li&gt;The option to password-protect a case study via PHP.&lt;/li&gt;
&lt;li&gt;A language separator, if your portfolio has more than one language.&lt;/li&gt;
&lt;li&gt;A fully customizable case study article, written in Markdown with support for its syntax.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;All of this goes in one Markdown file, so it’s very easy to manage multiple case studies. And, as you might have noticed, it’s very Git-friendly.&lt;/p&gt;

&lt;h2&gt;
  
  
  Video presentations
&lt;/h2&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%2F7rtbaq9hvwcrff6x89ad.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%2F7rtbaq9hvwcrff6x89ad.png" alt="PlayerView of a case study that uses Portfoliable.js" width="800" height="1739"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If your case study has a video presentation, you can add it by linking to it in the Case Decorators section of the Markdown file I mentioned earlier.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;PlayerView&lt;/code&gt; uses the mockup device you previously selected, detects the alpha channel in the image, and fits the video into the device screen to create a realistic presentation.&lt;/p&gt;

&lt;p&gt;The player supports a fully functional drag-to-seek bar, a pause/resume button, and playback speed controls. Support for closed captions is underway.&lt;/p&gt;

&lt;p&gt;If your portfolio is multilingual, you can add a video for each language.&lt;/p&gt;

&lt;h2&gt;
  
  
  Tell them about yourself
&lt;/h2&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%2F54m7s9neki0pgb73p1jx.jpeg" 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%2F54m7s9neki0pgb73p1jx.jpeg" alt="AboutView of a portfolio that uses Portfoliable.js" width="800" height="486"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;There’s also &lt;code&gt;AboutView&lt;/code&gt;, which is essentially a copy of &lt;code&gt;CaseView&lt;/code&gt;, but reserved for personal presentations.&lt;/p&gt;

&lt;h2&gt;
  
  
  Responsive support
&lt;/h2&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%2Fh3k1wtlyrv76w5uid9ui.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%2Fh3k1wtlyrv76w5uid9ui.png" alt="Responsive view of a portfolio using Portfoliable.js" width="800" height="1739"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Every view is responsive-ready.&lt;/p&gt;

&lt;h2&gt;
  
  
  Free and open-source
&lt;/h2&gt;

&lt;p&gt;This project is open-source under the MIT License, which means you can contribute to it. It is not finished!&lt;/p&gt;

&lt;p&gt;I built it with a lot of love for everyone looking for a job, and I hope it helps you too. ☺️&lt;/p&gt;

&lt;p&gt;You can take a look at &lt;a href="https://github.com/portfoliablejs/portfoliable" rel="noopener noreferrer"&gt;Portfoliable’s repository&lt;/a&gt; and its &lt;a href="https://www.npmjs.com/package/create-portfoliable" rel="noopener noreferrer"&gt;NPM package&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>webdev</category>
      <category>javascript</category>
      <category>career</category>
    </item>
  </channel>
</rss>
