I want to spend some time this weekend re-doing my site (www.garysahota.com) in a platform other than Google Sites. I'm learning web dev now and would love to get your thoughts on what tech I should use!<p>My requirements:<p>- Minimal cost (free via Github Pages or the like if possible)<p>- Semi-frequent blogging<p>- Static site<p>- Mobile ready
I recently migrated away from Hugo to Gatsby because I wanted more control over the Markdown content I write. I had technical debt piling up [1] from the hacks I had in Hugo to get writing completed and wanted minimal vendor lock-in.<p>My approach was to start from bare-bones Gatsby and make incremental additions. Key pieces that help me have virtually limitless control:<p>- React: I subscribe to the philosophy of component-based systems.<p>- Remark: Plugin-based approach to extending Markdown capabilities.<p>- MDX: bring component-based systems to Markdown. opens up virtually anything possible in React to be possible in Markdown.<p>- Gatsby: Builds on top of React and a plugin-based system for extensions.<p>- Netlify: Super easy deploys.<p>Key highlight: I needed BibTeX citations in Markdown. I implemented a plugin from scratch myself (effectively amounts to manipulating the Abstract Syntax Tree given by MDX) which was fairly straightforward (<a href="https://github.com/activatedgeek/website/blob/master/src/plugins/gatsby-remark-bibtex/index.js" rel="nofollow">https://github.com/activatedgeek/website/blob/master/src/plu...</a>).<p>Website: <a href="https://www.sanyamkapoor.com" rel="nofollow">https://www.sanyamkapoor.com</a>
Source: <a href="https://github.com/activatedgeek/website" rel="nofollow">https://github.com/activatedgeek/website</a><p>[1]: I had a non-elegant hack to use Distill as my theme in Hugo <a href="https://github.com/activatedgeek/distillpub" rel="nofollow">https://github.com/activatedgeek/distillpub</a> and had to go through some hoops to get everything coherently working (but brittle).
I'm using NUXT.js. Interestingly, I tried NEXT.js before and I do prefer the formal framework. It has been really easy to create your own personal blog since you can build a static site out of the framework. Super elegant! Definitely mobile friendly but that will depend on the CSS styling, which there are many templates out there.<p>Since I can create static sites from NUXT.js, I practically just need a static file server like Nginx to serve my files, and my server costs like 20bucks/year? Can't find anything cheaper than that.<p>Here's my site, I also write a few learnings and findings from my journey as a Software Engineer. Hope you find something useful from here! Cheers (:<p><a href="https://blog.phuaxueyong.com" rel="nofollow">https://blog.phuaxueyong.com</a>
Netlify + a site generated using Metalsmith.<p>I like Metalsmith because it's a tool, more akin to Gulp or Git that is easy to reason about, uses JS and can be used to do other things, so it seems like a longer term investment than using Jekyll or Hugo.<p>With Hugo I found if I got stuck I was really stuck. It has it's own DSL which is bad. With Metalsmith I can hack my way around any problem with JS and write my own plugins easily if I wanted to.<p>Then I used NodeJS for some interactive bits hosted on a free EC2. That NodeJS talks to a free postgres instance for storage, and uses nginx and letsencrypt.
My current blog is hosted on wordpress.com. It's good for writing but it's quite awful for technical writing (inserting code and such).<p>I'm in the slow process of making a new blog for technical content and notes, using org-mode + html export / publish functionality + custom css. So far I've got some pleasing css, gitlab-ci and now I'm working on adding some automation and templating for pages and blog entries.<p>I'm not sure whether I want to host it directly on my own hardware or host it into something like S3 or gitlab pages.
For presentational sites, I use PHP + HTML + CSS + JS. I still use PHP because it allows for cheap hosting, easy templating (can import files in other files), no compilation step, files can be edited directly on the server if necessarily and I can add at any point any extra functionality that even requires server-side processing or a database. I add CloudFlare on top with "cache everything" cache level, so the site is fast and server usage low.
I'm just using Firebase + React, but it could've as easily been done in vanilla HTML/CSS/JS or jQuery. I built it in React partly just as practice. Firebase is great though because it provides free hosting and allows me to do analytics (although I haven't done much of that yet).
I use my very own static site generator (which I'm constantly working/upgrading to make it usable for public audience): <a href="https://lukaszkups.net" rel="nofollow">https://lukaszkups.net</a>
I'm currently building one using Next JS. It's simple and easy. You got to write CSS to make it responsive. You can finish the Next JS docs in an hour if you already know a bit of React.
Terraform, Hugo, S3, Cloudfront.<p>It’s low maintenance, cheap, and simple. No “moving parts”, and on the off chance I ever put anything up that gets attention from HN or bigger sites it will easily handle.