No wrong answers here, what tools/stack would you choose and why?
For further actions, you may consider blocking this person and/or reporting abuse
No wrong answers here, what tools/stack would you choose and why?
For further actions, you may consider blocking this person and/or reporting abuse
Satin Wuker -
Amy Liu -
Mark Steadman -
Once suspended, ben will not be able to comment or publish posts until their suspension is removed.
Once unsuspended, ben will be able to comment and publish posts again.
Once unpublished, all posts by ben will become hidden and only accessible to themselves.
If ben is not suspended, they can still re-publish their posts from their dashboard.
Once unpublished, this post will become invisible to the public and only accessible to Ben Halpern.
They can still re-publish the post if they are not suspended.
Thanks for keeping DEV Community safe. Here is what you can do to flag ben:
Unflagging ben will restore default visibility to their posts.
Top comments (96)
I've been brainstorming a new portfolio solution for myself over the last few days, something atypical when you think of the word portfolio. What I've come up with so far:
In terms of dynamic data, some ideas I'm floating:
Static Content I'm toying around with:
Your portfolio sounds super impressive / comprehensive so I feel like the work would just speak for itself with a simple website builder (that wouldn't require your having to maintain it)? Every time I've tried to create a comprehensive CV, coded from scratch, I've regretted it lolol.
Here's my portfolio / cv site that I created with carrd.co: ria.run
Hi Ria! Thanks for sharing your portfolio, you may have actually inspired me to look further into carrd and see if maybe I can just publish updates there.
Could I achieve what I'm looking for with something more simple? Absolutely. But the truth is that I don't need a portfolio to market myself either. My interest of late in publishing a portfolio was to use it as an exercise in implementing a background worker process. I've done a lot of SaaS feature work, but I never got around to background processes before I moved on from an individual contributor role.
Beyond wanting to scratch that itch, I'm all for KISS with the rest of the stack.
Oh man, that’s sick. What about it gives you that itch exactly? I’ve gotten a different itch lately —to get back to the tech side from this marketing role. Lol.
I'm coming up on 2 years since I moved from an IC role into management and I haven't had many consulting opportunities of late due to covid and cancer.
Now that we're getting beyond the pandemic and my health has stabilized, it's time to shake off the rust and get back to the hustle I had previously, scratching this itch is practice for invoicing someone else for a similar job
I enjoy that you're so chill about being inspiring AF.
Love your microcopy under "Curriculum Vitae"
I love yours too Ria. Was that a template? It's very beautiful...what tech stack did you use?
Check out carrd.co! I think it's probably the cleanest UI I've ever seen in a site builder. That anti-aliasing is on point! 👌
ria.run looks amazing! congrats, I loved the experience (of browsing it).
I run my blog/portfolio (nabeel.dev/nabeel.blog) site on DigitalOcean Kubernetes, with a few other sites. Most of the content is static, but there are some dynamic components that are pulled from a database:
I started on WordPress, then moved to Hugo for a while. Both are fine options, but I'm really enjoying my current setup. The advantaged that I see are:
I'm not even sure if my current approach is harder or more time consuming overall. I may be starting at a lower layer than a CMS/SSG, but on the flip side I don't have to spend as much time trying to understand a complex system, its plugins, and dealing with the bugs and limitations that comes with all of that.
This sounds like fantastic portfolio.
I'll go first with an answer that has worked for me, but is not definitely how I would do it next time:
The reason for this approach would not be for the ease of initially building or "active" maintenance, but I generally take this approach when building a website I probably won't return to very often. Plan HTML, CSS, and JS — for a fairly small website — never gets out of date, never expires, never uses a build tool I forget how to use.
When I want to update some small thing about a website like this, the saving grace is that I can just do it without remembering the tool chain or dealing with some kind of dependency hell. Things move quickly, and reducing the tooling burden is a huge win in a lot of contexts.
That being said, despite all of that, the drawbacks are that the code and overall process can suffer. Re-usability is tough, and there are some awesome innovations you can't use with this approach.
So I'm really looking forward to hearing your take on this kind of problem. 😀
That's such a practical approach.
Because if you ever want to contract a freelancer to maintain it or improve it, you'll easily find someone who understands plain HTML, CSS, JS.
I'm never sure if modern build tools are really helping us save time or if we just use them because the companies that built them have huge Marketing budgets.
When I first learned about GatsbyJS, I thought:
"Oh, that's cool, probably built by some developers in their spare time. I guess people are tweeting about it because it's really helping them."
But the reality was:
"Built by a for-profit company that raised over $46M from investors and spending a ton of money on Marketing and Twitter influencers."
Not criticizing them, it's a useful tool. But I can never be sure if the hype is real or faked.
The sad part is that such tools can really overcomplicate the development process, and make it less exciting for young folks to learn web development.
And now, someone learning to code might get frustrated when some npm installation randomly fails and give up. Tutorials for beginners should still start with the basics.
20ish years ago I was so happy to write first for loop statement in php and see something prints on html. Your comment brings back that good moment back. Would stay all night excited just to learn what else I can do.
100, if you are not editing the site very often using a framework makes it so much more work to update every 2 years than its worth.
A previous colleague of mine showed me his personal website and it was just this -- a picture of him, his resume, super basic styling and no JS. He was a very skilled front end engineer so I remember being taken back until he explained why.
I thought about that for a long time and now as I have more experience dealing with npm packages, broken updates, new frameworks etc. I believe it makes a lot of sense.
Assuming you don't enjoy maintaining things like that 😄
My take to avoid the pains of complex tooling is to use autotools. Basically have a Makefile that contains what I need to build. That will keep working. When it’s too hard to represent in a Makefile, it’s too complex to maintain casually.
And staying away from npm, maven, and so forth. It has to keep working without internet access, because anything online can move and that way break my setup.
I don't like blog framework, maintaining that is too much of a pain. I had a Ghost blog a long time ago, and each time I needed to update it, something was breaking.
Now I'm using Hugo for a couple of years, and I love it. It's not really a framework (I mean the website itself doesn't depend on it) and it's very extensible. Updating Hugo is super simple too (one binary). It generates the plain HTML so it's super fast.
I believe that static site generator have a big future in front of them, especially for businesses.
You can add a Bundler as devDependency (Parcel i.e. which is almost zero config) so you can ship your code minified and optimized into production :)
Also it is good idea to practice on fudamentals before going into fancy stuff.
I rebuilt my site in GatsbyJS last year, with Typescript and Tailwind, and I'd probably stick with that if doing it today.
The reasons I had for choosing it are still valid today - it uses React, which I'm familiar with, it supports MDX, which was a big factor since I was migrating from my own custom static site generator which also used Markdown, and it was easy to use custom URLs. The type safety of Typescript and the relative ease in styling from Tailwind were also a big factor in choosing those.
I would suggest to use styled-components instead Tailwind. It's not necessary to explain the reason if you try it for 30min 😁
I've already tried them and preferred Tailwind.
So you can have props that are common to all paragraph components pre-set while adding parametrization just in what you really need.
It also works with React states so you can have a component that changes it's background-color depending on a state, as example.
There are more reasons not just those but I think it's enough to catch the idea about why Tailwind is marginally used in the industry at a professional/business level.
There's no single software architect I talked to about that which puts tailwind as first option to use and I agree for many reasons (including maintainability and speed of change things on a solid way).
Maybe if you are a backend dev that don't care much about front for any reason or you are just printing your templates from a server side application (¿is there anyone still doing that in 2022?) tailwind will be a no-brainer on that as it was bootstrap back those days.
Let's take this one by one...
No, you don't. It's a relatively small number of class names which are internally consistent, descriptive, and intuitive, and can be easily autocompleted with an appropriate LSP server. If anything it's easier to learn than CSS.
Which is a complete non-issue as I've been in the industry for over a decade and already know CSS. I'm full stack so CSS isn't my primary focus, but I'm certainly not going to struggle with basic stuff like that.
But you still need to define them inline of the components, so it's easier for different components to get out of sync. Using a much more limited pool of utility classes means it's easier to avoid the situation where one component has 3px padding, another has 2px padding etc.
I don't buy this at all. The class names are simple, logical and consistent, and tell you exactly what they do, which is generally one thing and one thing only. They are not repetitive at all.
If you're repeating the same stuff over and over it suggests to me that something needs to be refactored out into its own component. And if it does get too repetitive in one component, you always have the option of using the
I don't have an issue with this. I use Neovim and it wraps the lines fine for me. I've used VSCode a little in the last few years too and didn't have an issue with it there either.
This is not only extremely patronising, but complete and utter nonsense.
I work for a digital agency which is owned by a pretty large global network of digital agencies, and is listed on the FTSE. Hundreds of people work for that agency, and thousands for the network, so we're not talking a tinpot little agency. And we use Tailwind pretty much exclusively on new projects. Furthermore, of the other developers I've worked with in the past at my current or previous employers who I'm still in contact with, probably a majority of them use Tailwind these days, including plenty with a greater focus on front end development than I have. And from the buzz I hear about it on social media, and mention of it in job adverts, it's widely used elsewhere.
I find this very hard to believe based on my own experience. I would suspect that the people you asked haven't actually tried Tailwind for long enough to make a remotely informed decision about it, or are one of the people who think it's the same thing as inline CSS.
Again, this is deeply patronising. Of course I care about the front end. Having developed Phonegap apps in the past, while working at a small agency where I didn't have any front end support, I've had to build out a nice, usable interface on many occasions.
Are you kidding me? Like I said, I work for a big digital agency network and that is still the majority of what we do, and will be for the foreseeable future. Things like Next.js are useful, but for a lot of real world stuff server-side rendering with a framework like Laravel makes far more sense.
This is not only extremely patronising, but flat out wrong. Tailwind simply doesn't work like Bootstrap, and none of the things I've used it for have ended up looking same-y. It's a very different beast to Bootstrap and if you know it at all (and it's easy to learn) you can produce a decent UI for basically anything you like without each site looking the same.
My front-end colleagues who work with it far more than I do and push it further than I ever do feel the same way.
Did you notice that I'm speaking on the overall technology and not about my/your experience?
It's not about my or your personal preference but somthing than can be better or worse depending on the situation or what you want to achieve
No, you really obviously weren't. You're clearly now trying to shift the scope of the discussion to make it sounds like I was talking solely about my experience, which I wasn't. I work with a team of other developers and I often have to make decisions when choosing a stack that go against my personal preferences and since I'm a grown-up I have no ego about doing so.
Since you're obviously not arguing in good faith I'll bid you good day and leave it there.
If any of you were actual grown ups you would be arguing vim vs emacs
Yep, good one 😁
Next.js with SSG. Performance and good SEO. Built-in blog support as well
I open-sourced mine here
For deployment: vercel or netlify.
Keep it simple!
This is very nice! .. I really liked the buy me a coffe icon and the color palette
I created a dynamic protfolio simple, clean elegant and with a little surprise.
Check this out.
That is a lot of fun, I absolutely love it!
I like the uniqueness of this. Thanks for sharing. I would maybe create a mechanism to activate and de-activate the painting thing.
I intensionally didn't added that to make it more unique. I saw your portfolio its super fantastic.
I like the way the color changes, based on which of the links you've followed when you visit them.
Thanks for wasting my two minutes Aryan! I loved it though
Thanks, atleast you checked my portfolio 🙏
I would not create a personal portfolio site nor did I ever create one.
Don't get me wrong - I have had a personal website since I was a kid. But it was my personal playground where I just tried things that were fun / interesting for myself.
When it came to work reladetd stuff to show off, I found a simple google doc with plain text much more effective. I just write the project name, the timeframe, technologies used and my role in the team.
Thats much easier to read for most companies or recruiters. My code is hosted and can be browsed on github.
But thats just my personal approach.
I think to not repeat your self you need some build tool that is minimal, hugo is great for this kind of sites.
With all that in mind I would go the Elm way because:
Cons would be:
Pros would be:
I'll use following tools.
I have already created my portfolio website with above mentioned tools. I love these tools because they make creating a beautiful portfolio website process very easy.
Here is my portfolio link mahmad.me
A simple Triforce (HTML/CSS/JS) single page website. No frameworks. You might wonder why. Well, let me tell you a story...
In the early days, we used a white paper to show our photo, info, portfolio, education, skills, references and any other relevant information. That is called Curriculum vitae! The famous CV was a simple printed document. Of course, you had to bring your skills certificates.
Now, I've seen a lot of programmers portfolio showing their skills. Some portfolio websites use frameworks, others only use the Triforce. My belief is that we need to build our portfolio in a simple way, but elegant. The site must be fast, lightweight and neat (like the printed document we used to show). We can achieve that using only the triforce. If we use frameworks, we might overload the website with unnecessary libraries. If the browser can load your website under 5 seconds, then you're good to go!
Oh, I forgot to mention VSCode! It's an essential tool for me. Happy Coding!
I would mostly stick to what I am currently using which includes:
Why a custom site generator? This is related to last bullet above. I wanted to be able to generate my publication list as well as abstract pages for each publication directly from a BibTeX file. I also wanted structured data markup for this. So since no existing site generators did this, I hacked something together. The code is a mess (in a private repo for that reason). I wrote it quickly and have hacked in new features as I've wanted them. Think duct tape and silly putty holding it all together.
Site is at: cicirello.org/
The publication list page generated by the site generator from a BibTeX file is at:
And an example of one of the abstract pages also derived from the BibTeX file: cicirello.org/publications/cicirel...
The content for rest of site is maintained in a hacked together format. This is what I'd change if I started over. Not sure what I'd use exactly.
My most recent portfolio was built with this tech stack:
No need for anything too complicated because this current portfolio is more of a landing page that links to my other profiles. Single page and lightweight andrewbaisden.com/
Tools I'd use:
Using only a FE framework I also would use Git versioning from day one.
I wouldn't use a toolkit for complex webapps like react or such unless there are solid reasons to do so, like if your backend is already in place and is API-first or something. If you want to use the opportunity to use and learn something new the I'd go for offline static site generation with Gatsby or Hugo or something. But I'd rather avoid that as it's probably overkill for a personal portfolio website. You want to concentrate on other things when building that rather than learning new stuff meant for fringe cases.
This page is what I use to publish everything I create — from simple comments (integrated with org-capture) over drawings and notes from roleplaying sessions to lecture slides; and all categorized so it stays easy to find.
It does not showcase technologies, but shows that I know what I use and understand how tools interact.
And it is free and copyleft licensed, so others can build on it: hg.sr.ht/~arnebab/draketo