hi everyone,
im a newb so go easy please. i know this is probably a simple question for all of you, but i would like to create a website from scratch no CMS like (wordpress, squarespace, wix).
I want to create it for a podcast business i am planning on doing.
And i dont want it to be static because i want to further my skills in development so dont say just create an html, css and use github cuz they let you do it for free. no. lol. this is a website that i will develop serious for many years and i want to be able to have dynamic backgrounds and an online store.
Ive been hearing a lot about digitalocean but i would like yalls expert feedback on which way i should go. Again im a beginner so i dont know what to do about the backend.
Thanks so much in advance and im so glad a platform like FCC exists!
sounds like a nice beginner project. since you know what you want to build that will go a long way to figuring out what you want to learn. there are all kinds of hosting options to choose from. you could even serve your site from your own server potentially. which has its own pros and cons. I think for now since youre a beginner it a little soon to be thinking about what hosting provider to work with since each might provide different benefits.
if you go through the curriculum you should learn much of the basics you will need to build your project
for your backend, youll need nodejs, sql or mongodb.
alternatively, python has a codebase called django that lets you get a CMS up and running easily, but i wouldnt recommend messing with that until you get a solid programming foundation
Just to be clear there are 2 key things you will need:
-
A domain name - available from domain provider. They are in charge of the actual URL.
-
A website host - there are tons of options, and different “levels”. This is probably the most important part, and could or could not be related to the domain name at all. For example you can have your domain name handled by GoDaddy, but have your site hosted by Digital Ocean.
The host is where most of the “magic” and options are available. There are the big three cloud providers: Amazon, Microsoft, Google, which provide their own hosting options ranging IaaS (Infastructure as a Service), and Paas (Platform as a Service) with a number of alternative options. There’s also smaller companies that will provide similar options as parts of the big three, like Digital Ocean (Iaas), Heroku (Paas), and such. Generally IaaS gives you more control, but that means you need to deal with more lower level stuff (like security, OS updates, etc). A Paas provides you less direct control, but is managed by the provider more.
Since you want to host and provide dynamic content like videos you will need a hosting provider that handles this sort requirement, an example would be Google Cloud Storage.
There’s also more advance options and services like using a CDN (Content Delivery Network) to get your content to your end user faster by having it available from physically closer servers.
So yea there are tons of options out there, all with similar capabilities, features, services, advantages and disadvantages. If you want to deal with less headache down the line, pick one of the big three cloud providers to gain access to tons of features for what you need, or may need. Any other option might be more focused on one or another approach, but that gives you less flexibility down the line.
Finally I want to bring up the fact that you probably wont create the best architecture initially. As the saying goes, “no plan survives first contact with the enemy”. Plan to be flexible, understand the risks and rewards of your approach so you can make the best decisions possible. If your just starting out I’d be less concerned with the future and more concerned with the content and all that comes with building a website/blog initially. If you go with something cheap like Digitial Ocean, and find that your micro instance is super slow due to traffic, then maybe you need to consider increasing the instance size, or updating your architecture.
Find something simple enough to handle your current requirements, build the blog, get the blog going, and then update your architecture as needed. No need to over-engineer it or overthink it
Good luck!