I'm biased :) I'm a Developer Advocate for Heroku.
Check out https://devcenter.heroku.com/start to get a feel for the process to deploy an application to Heroku. It'll let you choose the language, help you install the Heroku CLI, and deploy a simple application for free. It's probably a 15 minute exercise -- much faster once you done it once and understand the steps.
For a static web site -- i.e. no server-side logic other than file serving -- surge.sh, netlify, and vercel (formerly zeit) probably provide the fastest deployment experience. However, lots of developers run their static site on Heroku for the other benefits like Pipelines, Review Apps, or integration with their other applications deployed to Heroku.
But when you say "REST API", I don't think your application will be serving static content.
Is it just a static content site?
It sounds like it isn't, but if so, check out https://surge.sh/. It takes like 30 seconds to get your site hosted, and you can use custom domains. I've published some React/Node sites on it before and it's been solid.
I typically go with Surge.sh for static sites, and a DigitalOcean VPS for anything else (or check out CloudWays for a more managed solution that runs on top of DO).
Free domains don't give you any control, as you don't actually own them, they're just subdomains of a domain someone else owns. If you're genuinely interested in setting up a website, I'd highly recommend getting your own domain (they're only about $12).
I'd suggest getting your domain, setting up Surge, which will give you free hosting, and putting up a basic "hello world" page. For example:
<!DOCTYPE html> <html> <head> <title>Hello world</title> </head> <body> <h1>/u/dejavu669</h1> <p>Welcome to my website...</p> </body> </html>
This way, you're covered against domain squatting, no one else can buy your domain, and you have a playground to mess around with.
Netlify is great. I would also recommend looking into Surge. It's also really quick to deploy via the command line, and you can choose to turn off HTTPS if you're developing locally and are working with your own REST API not configured for HTTPS.
if its just html/css/js then literally any shared hosting will work. they're mostly owned by the same company. if its actual server side code then I personally like digital ocean. https://surge.sh/ is also a neat service
My first post stands in that case. Any static file host will be fine, just like your other front end deployments. I've been using surge.sh lately for super easy deploys from the terminal.
I'd host the back-end on Heroku, especially during early development where you want to optimize for deployment turn-around time instead of dicking around with your own server. You can always migrate away later.
For the front-end, I'd look into just using Github Pages which reduces your front-end operational complexity to a single Github repo. Alternatively I like the simplicity of a tool like https://surge.sh/.
Another alternative is to host the back-end and front-end in two different Heroku projects (my-back-end.herokuapp.com and my-front-end.herokuapp.com). The benefit here is that you have an identical deployment process on the back-end and front-end, but Heroku's main offering is back-end apps.
Sometimes I write the front-end as a dynamic web server instead of even worrying about generating a static site. I just use Express or whatever (same as my back-end) which can also reduce my development complexity and increase my iteration speed. For example, this lets me use environment variables to dictate which back-end url my front-end uses in development vs production and generally just simplifies things.
As usual, each decision has its own set of trade-offs and there is no "best way".
In production, it's hosted on surge but in development it runs off webpack dev server which is an Express server. Unfortunately I don't actually know that much about webpack or Express as I just used this boilerplate setup.
However, it's just a single page web app. To build it, run npm run build
and everything it needs to run gets put in the public
folder. Then any server setup that serves index.html
(or 200.html
) for all requests (except files that actually exist like assets files) should work fine.
I hope I've understood your question correctly :)
You shouldn't try to learn all the skills to build this stuff from scratch. You should try to learn as little as possible. I also think you should consider getting help, as this is quite an undertaking from square 0.
Don't build a database unless for some reason your data is complex enough that you absolutely have to. If I have to answer (A) I'd say other, probably graphQL, though perhaps Mongo might be better. SQL is too deep a rabbit hole to dive into for a first project. But if you use something like e.g. firebase, you don't need to learn any of those.
Again, not sure you need to know any server/backend at all. Your website may very well be entirely front-end only / static. Use something like surge.sh or netlify and you don't need to learn any server code.
For the front end, if your point is data, I love React, though I love Mithril even more, but not sure if that's ideal to jump in to right away. You definitely need to learn Javascript, though, no matter what--that's the glue to all the pieces you are talking about here, and if you get JS down, you can tie in all the rest using cloud services without needing to go deep into them, so that's the highest point of leverage.
I recommend reading / going through "Eloquent Javascript". Probably get plugged in with the freecodecamp people. CodeAcademy is a decent place to get started, too, or at least it used to be, no idea exactly for sure now.
If I can help, let me know.
Yeah np. If you're not married to deploying onto a VPS you can use products like surge.sh to quickly deploy frontend code. I haven't used these but from the articles it looks like a super simple solution to quickly deploy frontends.
I personally use Google Clouds for my project above. It was actually super easy since they are a platform as a service. After creating my Google account all I had to do was create a 10 line config file and run the gcloud deployment command to deploy my app. It's great because now I have traffic metrics for free.
I use Google App Engine for my flask backend as well because it's super easy.
These Platform as a Service providers give you logs, traffic metrics, error reporting, backups, service versioning etc but the downside is the cost. You might be able to host your frontend, backend, and db for $10/month on a VPS you setup and configure, but on gcloud it's comes out to like $25/month for a very basic low traffic frontend deployment, and another $25/month for the backend. You pay differently depending on traffic and server location.
Then if you use their hosted database solution its even more. I'm paying like $90/month I believe for the lowest hosted mysql solution. It's pricing as they don't charge based on usage like they do for GAE.
I'm surprised I don't see more posts/articles/anything about small businesses trying to utilize AWS lambda + AWS dynamodb + surge.sh (or similar) if they really need a cloud based system.
As for me, I purchased a dell T30 off amazon, installed ubuntu server on it, and upgrade the memory to 64GB. That's been working ok, although microsoft sql server + docker is amazingly slow on it. I'm wondering if I should have researched CPUs first or if emulating that garbage really is just that bad.
How is the blog going to work? If you make the blog static and use/write a static site generator to generate posts you could just go fully static.
There are a lot of services that offer free hosting for static sites, notably netlify, surge.sh, and github pages.
it'd be even better if it's email as I'll be handing the site over to a non-developer team. i checked surge.sh too which sounds too good to be true along with netlify. ill also definitely use formspree or an alternative though for right now! thank you so much for answering, completely solved my doubts!
GitHub pages
GitLab Pages
AWS free tier
gcp free tier (12months + always free)
firebase hosting
I see a lot of people racing about Surge.sh which I don't have experience with.
If you're willing to pay and know how to set up a VPS, Vultr has $2.50(USD)/month packages. I've personally never used so I can't comment from experience.
I use Digital Ocean and regardless of whether or not you go through them, they have amazing documentation to get a server set up. I recently used their nginx articles to set up a reverse proxy on my droplet.
You could also just host it from your computer or a raspberry pi but again you'd have to deal with the correct set up.
If you build some know how on development tools, you can get great hosting for next to nothing. Check out static website generators (great for blogs or just static sites) and tools like https://surge.sh https://netlify.com or Github Pages and you can build nice websites for little to no money and connect your purchased domain to it.
I use surge.sh to host simple sites/pages like this. It's pretty fast, free, and awesome.
Another privacy policy generator is https://termsfeed.com/. It's not free; mobile policies cost around $14. However, they do publish a free template that may help: https://termsfeed.com/blog/sample-privacy-policy-template/#Download_Privacy_Policy_Template.
Thanks! For DDC i used squarespace and Hairclub I used surge. My prestige is calculated using the average points scored in a season, +/- margins, roto wins, career wins, and playoff statistics.
my tech stack is:
marketing page is in jekyll (a static site, HTML-only). https://surge.sh/ will host static websites with custom domains for free.
the app itself is on Heroku. They have a free tier which gives you a certain number of hours free per month. Since I have such low traffic, I haven't upgraded to a more stable system yet. Once I do need a better machine behind the service, I will move the app to DigitalOcean where I have about $100 in student credit.
Cloudflare is my DNS provider and they deal with the free TLS certs.
I think it depends on what do you want to make as a personal website. Blog? Portfolio? something else? So many options out there. Also, what path of web development do you want to follow (php, js, frontend, fullstack, backend, etc...)
I'd recommend you to start with some simple Html/css/js static-website that you can deploy to surge.sh which has a free tier with a custom domain (you don't find that kind of thing easily).
Hope this can help :)
Yes. I work on surge.sh and it is designed specifically for publishing front-ends. hosting is free with a custom domain and we charge for extras such as custom redirects, CORS etc. Would love to hear your thoughts if you have any feedback.