Ask HN: What is your process for creating a new static website and deploying it?
Please list the whole process from inception to the final moment when the site is live on the domain. What are the tools you use? What are the steps involved? I've been a web developer since 1996. I built dozens of websites professionally before moving on to building apps in many industries, including finance and insurance. I can, without hesitation, wholeheartedly endorse SquareSpace because it requires zero of my skills. It makes so many painful things painless. I have no idea why people put static websites on their own infrastructure, especially when anything moderately popular needs paid DDoS protection anyway. In fact, with all the modules, my website would have to get pretty fancy (beyond ecommerce, beyond CMS) before I'd build a custom solution. I've actually turned away at least 10 clients (who would have paid me $10k+ each) and told them to just build it themselves with SquareSpace and hire a designer instead. I feel like it's unethical to take those contracts as a developer anymore. square space really looks great. Their pricing too seems very affordable. I use Hugo [0] as a static website generator. They have plenty of themes [1] to choose from. You can still adjust it with basic knowledge in HTML/CSS. Afterward you can chose where to host it. You can use Github Pages [2] for free or pay for a service like DigitalOcean (starting with 5€ a month which scales well) [3]. I wrote a technical cheatsheet [4] on how to setup your own website with these ingredients. - [0] https://gohugo.io/ - [1] http://themes.gohugo.io/ - [2] https://pages.github.com/ Thanks for the links. The blog posts have a lot of useful information :) I use static website for my blog. Tools I use: * Jekyll for static site generator * GitLab Pages for storing changes as well as deploying site and costuming domain/SSL * Vim editor for making changes Steps: 1. Clone existed Jekyll's files from GitLab Pages's repository into local. 2. Making changes. 3. Push the changes into remote repository 4. Custom domain and SSL. Of course, I don't need to clone repository and custom domain again if my site has already lived. I just need to update SSL when my certificate expires. You can check this page [1] for further details. What are the friction points in your workflow. Updating SSL manually seems like a tedious thing to do. You're right. Updating SSL is the friction point in my current workflow. I just searched to renew certificate automatically and there are some tools you can use along with GitLab Pages. By the way, this is also one of my request features to GitLab Pages to make certificate renewal easily. I hope they hear this. Static website? Just write HTML files in text editor and copy to a server running nginx via ftp. If you are going to make changes to the website often, add an extra step for creating git repository and instead of using FTP to push files to server just pull from git. What are the friction points in your workflow? Open Coda (my code editor) Begin typing content (as TXT or MD) Turn that into HTML manually add DOCTYPE, tags, CSS, and mark up my content. Host either on Github pages (use terminal in my editor to push to Github) or upload to my own web server, or Amazon S3 from the file manager in my editor. View static page in browser. Middleman[1] and a rake task running rsync. Nice, middleman is a well designed SSG :)
Are these all your personal sites, or do you maintain websites for customers? Just mine Do you have a VPS where you host them? Why not use Github Pages? I use EC2 + letsencrypt with custom domain. Last time I checked github did not support SSL for custom domains. Cloudfront is not end to end encryption. Jekyll > Github pages. Works great with (<insert static site generator of your choice here>). I really like netlify. Also checkout netlify cms, their own cms. Do you use their free plan or the paid one? Everyone seems to love Netlify for building static sites :)