<?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: Sarah (she/her)</title>
    <description>The latest articles on DEV Community by Sarah (she/her) (@littleninja).</description>
    <link>https://dev.to/littleninja</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%2F98529%2F582af64e-d099-4921-a650-ccfdbb8d50e6.jpeg</url>
      <title>DEV Community: Sarah (she/her)</title>
      <link>https://dev.to/littleninja</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/littleninja"/>
    <language>en</language>
    <item>
      <title>Building an Academic Portfolio</title>
      <dc:creator>Sarah (she/her)</dc:creator>
      <pubDate>Thu, 30 Dec 2021 02:51:22 +0000</pubDate>
      <link>https://dev.to/littleninja/building-an-academic-portfolio-33o7</link>
      <guid>https://dev.to/littleninja/building-an-academic-portfolio-33o7</guid>
      <description>&lt;p&gt;I made a thing! A cross-post from &lt;a href="https://sarahgrefalda.me/posts/building-an-academic-portfolio/"&gt;sarahgrefalda.me&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;Over Thanksgiving, my sister had an idea brewing. "I have enough publications and projects out there, I'd like to put everything together on a website." She's quite tech savvy and talented with design. I encouraged her to go for it and let her know I would be here to support her if she wanted.&lt;/p&gt;

&lt;p&gt;A couple weeks later, she texted: could we build this together? Heck yes! We &lt;a href="https://www.miriam-hacker.com"&gt;successfully launched her website&lt;/a&gt; just after Christmas.&lt;/p&gt;

&lt;h2&gt;
  
  
  The stack
&lt;/h2&gt;

&lt;p&gt;Real quick, to cover the basics: my sister and I started our collaboration with a shared Google Drive, drafting the content structure, and looking at aspirational websites to understand what she envisioned.&lt;/p&gt;

&lt;p&gt;The specifics I'll put to a table:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Technology&lt;/th&gt;
&lt;th&gt;Purpose&lt;/th&gt;
&lt;th&gt;Rating&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://gohugo.io/"&gt;Hugo&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Static site generator (SSG) in Go programming language&lt;/td&gt;
&lt;td&gt;💯&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://wowchemy.com/hugo-themes/"&gt;Wowchemy&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Pre-built theme for Hugo (&lt;a href="https://github.com/wowchemy/starter-hugo-academic"&gt;Academic Resumé&lt;/a&gt;) with lots of batteries included&lt;/td&gt;
&lt;td&gt;🎉&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://www.netlify.com/"&gt;Netlify&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Build-deploy cloud platform&lt;/td&gt;
&lt;td&gt;💯&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://git-scm.com/"&gt;Git&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Distributed version control system&lt;/td&gt;
&lt;td&gt;💯&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://about.gitlab.com/"&gt;GitLab&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;DevOps platform, hosts Git repository&lt;/td&gt;
&lt;td&gt;💯&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://forestry.io/"&gt;Forestry&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Content management system (CMS), an editor compatible with many popular SSGs (incl Hugo) that sits atop your hosted source code (incl GitLab)&lt;/td&gt;
&lt;td&gt;😕&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://domains.google.com/registrar/"&gt;Google Domains&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Domain registrar, custom domains&lt;/td&gt;
&lt;td&gt;💯&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://www.goatcounter.com/"&gt;GoatCounter&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Analytics for site traffic&lt;/td&gt;
&lt;td&gt;⏲&lt;sup id="fnref1"&gt;1&lt;/sup&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://ffmpeg.org/"&gt;ffmpeg&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;A bit of light media file processing&lt;/td&gt;
&lt;td&gt;💯&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;And a hastily drawn diagram shows how the pieces fit together:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--DA3qMl9X--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://sarahgrefalda.me/posts/building-an-academic-portfolio/system-diagram.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--DA3qMl9X--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://sarahgrefalda.me/posts/building-an-academic-portfolio/system-diagram.png" alt="system diagram showing my local Hugo server and git commit setup, my sister editing online with Forestry, and GitLab, Netlify, and Google Domains making the published content available online" width="880" height="660"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Decisions and tradeoffs
&lt;/h3&gt;

&lt;p&gt;The action I'm most proud of was &lt;em&gt;listening&lt;/em&gt;, hearing what was important to her. Two priorities guided our decisions:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;speed to launch&lt;/li&gt;
&lt;li&gt;customizing the site design&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;When speed is critical, &lt;strong&gt;play to your strengths&lt;/strong&gt;. I've spent the past year building my personal site with Hugo because it's fantastic for making websites with static content. Hugo was a solid choice.&lt;/p&gt;

&lt;p&gt;Though on my personal site I've forked and developed a theme, I did &lt;em&gt;not&lt;/em&gt; build a custom theme for my sister. Why? My theme is a work in progress, and one that I've tinkered with to suite my interests, my problems. It is incomplete. Trying to build and release a custom theme while at the same time building the site would have been a &lt;strong&gt;distraction&lt;/strong&gt; and would likely have delayed launch.&lt;/p&gt;

&lt;p&gt;The academic portfolio is about my sister and her content, so when we searched Hugo themes and found one that specialized in academic content, it ended up being a great fit! Because I don't live in the academic world, there were all sorts of features she recognized and immediately found useful that I wouldn't have thought of, for example iconography for links to Google Scholar or a &lt;code&gt;url_doi&lt;/code&gt; field. Though I didn't build a custom theme, &lt;strong&gt;the time I spent tinkering educated me on Hugo's core concepts&lt;/strong&gt;: lookup order, front matter, configuration, convention and structure. The theme publisher had great documentation, and my experience gave me context to search more effectively and ask better questions.&lt;/p&gt;

&lt;p&gt;I had a third priority: ease of content editing for my sister, and I missed the mark. Forestry was a gamble, I knew better: &lt;strong&gt;gamble on new services and technology on your own time, not with clients&lt;/strong&gt;. Being well-equipped to customize and modify the site was a key reason for choosing Hugo over Wordpress. Forestry and platforms like it make it possible for non-coders to manage and add content to their sites without coding, and it supports several popular generators. However, the following gaps were a problem:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;No preview server, outdated versions of Hugo&lt;/strong&gt; : On time of writing, the latest Hugo version is 0.91. The pre-built theme used version 0.84, the latest available by Forestry 0.81. This meant my sister could see edits in a WYSIWYG editor but couldn't preview them as part of the site before publish.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Limited abstraction of Hugo's full capabilities&lt;/strong&gt; : Hugo can support either a single post file (&lt;code&gt;this-post-is-great.md&lt;/code&gt;) or a directory which is especially useful for organizing related media (&lt;code&gt;this-post-is-useful/index.md&lt;/code&gt;). Forestry could interpret either structure but my sister couldn't upload a featured image into a directory. To flip the problem, the pre-built theme might have used front matter instead of convention to support a featured image just like it does to support alt text and captions. 🤷🏼‍♀️ Oh well, it's still one of a few missing capabilities for managing a Hugo site:

&lt;ul&gt;
&lt;li&gt;can only upload media to one static directory&lt;/li&gt;
&lt;li&gt;adding a post to a directory, no option to rename the file to &lt;code&gt;index.md&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;cannot edit Hugo configuration or theme configuration files (maybe a limitation of the outdated Hugo version?)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;No viewing or managing version history from the editor&lt;/strong&gt; : It comforted me knowing "it's all Git". Nearly any mistake could be fixed with a quick &lt;code&gt;git revert&lt;/code&gt;--but not in the editor. There's a Site Activity icon by the logo but no way to see commit hashes to a file or revert to a change like you might in GitHub or GitLab.&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;So many commits&lt;/strong&gt; : Each save is a commit, and more commits is more build minutes. Over the week I jumped over 100 minutes of 300 minutes available (normally I average 5-10 minutes per month).&lt;/p&gt;

&lt;p&gt;Sidenote: I think what this made me realize is I want something like a branch feature so not &lt;em&gt;every&lt;/em&gt; change needs to be draft-or-live: you can save changes to a "release", and publishing your changes is like merging your branch into the main development branch. I'm sure this is challenging (rebasing branches, for one) but it's an idea.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Summary
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Listening: a winning strategy.&lt;/li&gt;
&lt;li&gt;Playing to your strengths is good for speed. There's nuance but when what you know solves the problem, go for it!&lt;/li&gt;
&lt;li&gt;My personal projects--using Hugo, developing my own theme, integrating components from another site (CORS), using Git--made it easier to build, customize, and debug. Win! 🎉&lt;/li&gt;
&lt;li&gt;DNS changes can take a long time, up to 24 hours or longer. Prepare accordingly.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What I'm curious about next
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;What is Netlify or Git LFS (large file system), how does it work?&lt;/li&gt;
&lt;li&gt;Check out Netlify CMS--will it support directory content with media?&lt;/li&gt;
&lt;li&gt;Build my own theme!&lt;/li&gt;
&lt;li&gt;Check out 11ty (Eleventy)&lt;/li&gt;
&lt;/ul&gt;




&lt;ol&gt;

&lt;li id="fn1"&gt;
&lt;p&gt;I use GoatCounter for basic analytics. Once the site has traffic, we'll assess if it meets her needs. ↩&lt;/p&gt;
&lt;/li&gt;

&lt;/ol&gt;

</description>
      <category>hugo</category>
    </item>
  </channel>
</rss>
