Featured Post

Download Free Full Adobe Software Pack

Build an awesome data science (or any) portfolio in no time with these tools

 

Image for post
Photo by Anete Lūsiņa on Unsplash

The internet was supposed to be a democratising force. In many ways it has been. It’s definitely democratised education to some extent, so much so that in some fields you can become a high level practitioner and keep up with cutting edge developments or even without ever getting out of your pyjamas.

But the barrier to gaining a presence on the internet has always been relatively high. To build anything worth their salt online, you had to code.

Sure, HTML and CSS isn’t exactly the most difficult language to learn, but it is a yet another language to learn.

If you don’t know web programming already, is it worth the time investment to learn it to a level where you can build a site that you can be proud of and show people?

For those whom that web development is to be a key skill for, or those curious and have the time, go for it. But what if it’s a skill that you have little use for? Is the pain of learning these worth the time and pain, just to build one site? What about all the hassle related to deployment and maintenance? There has to be a better way.

Luckily, there are many tools that can help. Actually, as I found out, there are just. so. many. tools.

Which means that there are enough diverse enough tools that there’s probably a right tool in there whoever you are. The new barrier to entry is actually wading through the pile of toolkits, and looking in each one to see if it is the right set of tools for you. It doesn’t sound that hard, but it also isn’t as easy as it sounds. In a world of software proliferation, researching a SaaS service or an open-source software for your exact use case is difficult to do, and not even always possible.

So in this article, I list a few tools that I think will be the best candidates for most of us. I hope you find it useful.

Note: Some of the links below are affiliate links, which means that at no additional cost to you, a small commission goes to me if you purchase something.

For the visual thinkers

It’s not what you think it is

I’m going to lead with the tool that I think is really the best one for most people who aren’t conversant in HTML/CSS (possibly JS), and don’t really care to be.

No, it’s not WordPress. That’s so… 2010.

Yes, it’s widely used. But so is Microsoft Word. Yes, it is the most popular, and it has a lot of momentum between its installed user base, widely (and cheaply) available expertise. But it’s just a bit dated, and it is somewhat starting to show its age and the fact that it’s a castle built on a million plugins and weighed down by now two decades of development.

What’s more — to really customise it, you end up having to learn basically its architecture, which to my mind is actually less useful than learning HTML/CSS, unless you want to become a WordPress dev.

Not that there’s anything wrong with that! But it’s not for me.

Instead, I recommend…

Webflow

Given my gripes with WordPress, you might have seen this coming. Webflow is basically what DreamWeaver wanted to be, and pretended to be, back in the early days of the Internet, but you know, now.

It’s mighty powerful in what it can do, and it’s really taken the whole nocode ethos to heart. Do you want to create custom scroll animations? Interactions? Have elements fade in/out or hide based on the user’s actions, and control the triggers, timing, and visuals — all without coding? Yup.

Are batteries included? As in, I don’t have to search through a bunch of different plugins, after researching the main tool (e.g. between Webflow vs Wordpress vs Wix etc.)? Yup.

Does it create sites with production-ready / clean code? Also yes. Although I can’t quantify this, a search through unbiased forums like Reddit indicates to me that code from Webflow is miles apart from tools like Wix. To the point that Webflow also allows you to take the ball and go home (i.e. export the code), if you so choose to, and you won’t be left with code that looks like a first year CS student threw up on their keyboard.

I also love the fact that Webflow has a comprehensive set of tutorials to help you get up to speed.

If you progress along with your portfolio to do things like set up an e-commerce portal, you can do that with Webflow as well. You will not need to move to a new platform.

I can’t recommend Webflow enough from my personal experience, based on the balance of power & relatively low learning curve. Now, there are tools that are easier to learn, and we’ll come back to that. But getting a great-looking site is still pretty easy on Webflow, and some of the options that I’ll discuss later don’t offer as much flexibility.

For many of us non-experts in web programming, Webflow is absolutely the tool to go.

Check out Webflow here

But wait, I’m not done yet! It would be a pretty terrible roundup to just cite one option. There are plenty of other great options out there and depending on your needs.

Fast & free-us

First and foremost, apologies for the terrible pun. But sometimes it’s just gotta be done.

Unfortunately, Webflow isn’t free. (You can try it for free, but I believe that you will ultimately have to pay.) But there are truly free solutions out there, if that is important to you, and you have to make surprisingly few compromises if that’s what you are after.

If you’re in this category, static site builders are probably your best bet, and I personally recommend:

Netlify + Gatsby (…or similar — more on that below)

Gatsby is one of the top few leading static site generators, along with Next.js, Hugo and Jekyll to name a few.

The reason static site generators are awesome is that they generate static sites.

Unlike dynamic sites, static sites do not need any back end processing – as in the user request going to a server, the server doing something and then the front end rendering the output with whatever the server comes back with.

The only thing that is needed is for the static files to be hosted somewhere, the user to go to it and then the host just needs to deliver the files to the user.

This reduces much of the compute needs in running a website, to the point where it is relatively easy to find a provider who will host these sites for free. Netlify and GitHub pages are two leading examples.

The other benefits of a static website are speed and scalability. They’re just lightning quick due to their architecture, and their low demand means that the server can basically handle anything. Practically speaking, anything short of a horde of zombies concurrently reading your website to find the last brain on Earth should be fine.

Did you notice that while I recommend Gatsby and Netlify, I have yet to mention it? It is true that Gatsby is my personal favourite out of the lot. But it’s also true that each of the other popular packages like Next.js, Hugo or Jekyll are all excellent tools (take a look at this list on Jamstack.org).

Largely, I think choosing one is a very personal decision, down to familiarity with any of the underlying programming language. I picked Gatsby because it sounds awesome and I thought I’d pick up some JS by osmosis, but ymmv.

Check out Gatsby here, and Netlify here

Code, but keep it Python

As readers of TDS, I am going to assume that you are Python users (sorry, R-users). There are ways to get your work online without ever leaving the comforts of our cosy snake friend.

Many of you will be displaying in your portfolio data science outputs in various forms like visualisations or maybe in notebooks. So why not use (and learn) the very tools that are designed showcase these, and remove the middlemen?

Dash or Streamlit + Heroku

I’ve written about Dash and Streamlit a bit, and as I mentioned in those articles, they just make it so darn easy to create web apps. Well, there’s no rule that says your portfolio can’t be built with these web apps.

As a matter of fact, these tools might be great for showcasing your data science and visualisation chops with the world without ever leaving the confines of Python, because that’s exactly what they’re meant to do.

One downside of web apps like a Dash app or a Streamlit would be that they would require quite a bit more resources and therefore server capacity. Having said that, free tiers on services like Heroku or PythonAnywhere would be plenty for a portfolio site unless you’re some sort of a rock star, I can’t imagine a portfolio site getting so much traffic that it would overwhelm the capacities of those apps at their free tier.

As to which of the two, Streamlit is probably easier to pick up and use, but Dash offers a quite a bit more customisability, for example in being able to use Bootstrap themes and styling. Also, as I’ve said before — Dash is probably more likely to be used in production than Streamlit which is more of a fast prototyping tool.

So if it were me, I’d probably learn and use Dash, and use Heroku for its deployment which is the easiest in my mind, taking advantage of their free tier.

Check out Dash hereStreamlit here, and Heroku here

Jovian

I suspect some of you may have heard of Jovian, although probably not the majority. It is a relatively young startup aimed at making it easy to share Jupyter notebooks and collaborate on them.

It allows either entire notebooks to be shared as shown below, or to embed certain parts of notebooks to another medium like a blog.

So if your work lives in notebooks, Jovian might be the best way to showcase your work in their native form, or to host them somewhere and embed parts of them.

Check out Jovian here

Keep that learning curve gentle

These solutions won’t give tou the most customisability or the best looking sites, but you’ll probably get something up and running in no time at all.

Notion + Super.so

Notion is a relatively new platform, which they claim to be a tool to “write, plan and get organised”.

It’s a tool that I would describe as interconnected Evernote notes, nocode database, calendar, kanban board… basically anything that you can think of.

What does this mega-powered notebook tool have to do with building a portfolio?

Well, there is a third party app called super.so that will turn your Notion project into a fully functioning website, with the things that a website needs – like analytics and deployment onto a domain.

The showcase page shows that quite a few people have already used this setup to put together their portfolios. This might be one of the easiest ways to put a portfolio together, and the limitation of Notion also makes it more difficult to make a bad-looking one.

Check out Notion here, and Super.so here

Medium

You might be skeptical, but hear me out. What’s a portfolio for? It’s to showcase your capability for whatever it is that you want to build a brand for. Medium provides a reliable, easy to use platform with clean aesthetics, it’s free, and you can embed all sorts of formats of documents in it.

It has obvious limitation that it is largely a blogging platform and that it’s not your own domain, but they’re pretty good trade offs given how small the barrier to entry is with this method.

For some, this might give them a better chance of someone organically finding your portfolio than having a site with poor SEO scores.

For curation, I would recommend creating your own “publication” and hosting your portfolio there, say for different portfolios (e.g. data science portfolio vs web dev portfolio) for those of us lucky enough to have needs for multiple portfolios.

That’s a wrap on that. I hope at you found least one of them to be a suitable option for you. If you skipped to the end, the tl;dr opinion is that Webflow is my recommended tool of choice, but depending on your circumstances others might also be suitable.

I have previously looked at quite a few portfolios to put together this prior article on amazing portfolios, so I am aware that they come in all shapes and sizes.

Comments