How I built danielbate.com
Discussing the tech and services that helped me build, maintain and deploy this blog
By Daniel Bate
27 Feb, 2021
A portfolio site is important for any aspiring developer. It is often one of the first things that you will be judged on as a developer, so having a strong portfolio site can really set you aside so you shouldn't rush it or see it as just something that facilitates your portfolio projects.
Personally, I wanted something that could act as a personal website, portfolio and as a blog. There is a lot of software out there that can do each of these very well but is often quite opinionated. Fortunately, as a developer, I am am able to build something that suits all of my requirements but there is a lot of tech out there to choose from, so here is what I use and why I've used it.
One of the reasons I really like SSG and JAMStack is so I can deploy the site on Netlify. Netlify is by far one of the best hosting providers that I've used. I deploy my JAMStack sites straight from GitHub, can set up a web hook so it rebuilds with every code push (same with my headless CMS), get a free SSL certificate, get an endpoint to submit contact messages to, and I'm yet to pay for anything on Netlify. It has by far one of the best deployment processes that I've experienced.
For my mailing list I am currently just directing users to a MailChimp contact form which allows me to pass a name and email as parameters and it pre-populates a form. Soon I'm moving to hosting that supports SSR (probably Heroku), so I'll be integrating mailing list submissions into my own application
To manage my blogs, I use Cosmic. Cosmic is a headless CMS, therefore it provides an endpoint that I can query with GraphQL to retrieve my blog content. I can then couple that with Nuxt to build pages straight from Cosmic. I love this approach to manage content and try and stay away from bespoke solutions with content management where possible.
Hopefully this gives you an insight into how this site was produced, and please get in touch if you have any other questions!