Do you want to build a website?

In summary, the conversation discussed different ways to create a website, including using services like Wordpress.com and Squarespace, creating a standalone single page application (SPA), a static website, a web server application, or a modern API driven web application. The advantages and disadvantages of each method were also mentioned, including ease of use, cost, and scalability. It was noted that without knowing the type of website needed, it is difficult to give specific advice. The conversation also touched on the importance of considering the purpose and goals of the website before deciding on a specific method.
  • #1
pbuk
Science Advisor
Homework Helper
Gold Member
4,675
2,941
I wrote this in response to a recent thread start here which is now deleted, but this is close enough to a common question that I don't think has been answered (recently) here, so here goes...

A variety of services exist to create websites such as Wordpress.com, Squarespace and Shopify where you do not have complete control over the site: these are out of scope here.

If you want to build a website where you have complete control of its content and functionality there are (at least) four distinct ways to do this relevant in 2023:

  1. A standalone single page application (SPA).
    • As this runs in the browser it is written in JavaScript (or another language that compiles to JavaScript e.g. TypeScript).
    • In 2023 most SPAs are written using a front-end framework such as React, Vue or Svelte, although very simple applications (typically those with little user input) can be hand coded.
    • Searching can again be implemented by hand or handled by a library such as Fuse or Lunr. In either case this requires the whole search database to be downloaded by the user and is therefore only feasible for small databases.
    • The website can be hosted at low cost on any web hosting service, and in many cases can be hosted for free using services such as GitHub Pages or Netlify.
    • The solution can cheaply scale to millions of users using a content delivery network (CDN).
    • Advantages: easy, cheap and performant.
    • Disadvantages: limited to small amounts of data.
  2. A static web site.
    • It is possible to create every page you want individually by hand or by using an editor such as Dreamweaver, but in 2023 this usually consists of multiple pages generated from templates.
    • (JavaScript) code is only required for implementing things like searching and feedback forms.
    • Most such sites are built by a static site generator such as Hugo, Gatsby, Jekyll or Eleventy which can run on your local computer and the files are then uploaded to a web host or CDN.
    • Again the solution can be hosted at low cost and cheaply scale to millions of users using a CDN.
    • For limited amounts of data, searching can again be implemented in the browser. For larger amounts of data a service such as Algolia can be used, however this does not scale cheaply.
    • Advantages: easy, cheap and performant; can handle enormous amounts of data.
    • Disadvantages: not suitable for significant amounts of user interaction (e.g. a shopping cart).
  3. A web server application.
    • This runs on a web server and can be written in many languges including Python, Node JS, Java or Ruby, but the most accessible (due to the low cost of hosting services) is PHP.
    • Open source applications can be used or adapted for many use cases, perhaps most significantly WordPress which is behind millions of websites and MediaWiki which powers Wikipedia (however note that both WordPress and MediaWiki come with a heavy technical debt and should be approached with caution).
    • Because every user interaction requires a 'round trip' to the web server and rebuilding of the page in the browser from scratch performance can be slow, particularly for mobile devices.
    • Whilst small numbers of users can be handled by a cheap web host, as usage increases the costs and technical support required increase.
    • If the requirements are simple the code can be written from scratch: more complicated applications either use or adapt an existing application, or are based on a framework such as Laravel or Symfony (PHP), Django or Flask (Python), or Express (Node JS).
    • Advantages: easy and cheap for relatively small numbers of visitors.
    • Disadvantages: slower than other solutions; cost and support resource requirement escalate with larger numbers of visitors; security needs to be managed for any non-trivial user interactions.
  4. A modern API driven web application.
    • In 2023, modern applications consist of a front-end application running in the user's browser communicating with a back-end server via an API (pronounced 'ay (as in say) pee eye').
    • Decoupling the front and back ends provides a number of advantages including the near instant response of an SPA and the practically unlimited scalability of a web server. If you want to build the next Amazon or Google, this is the way to go, although it is still possible to start from scratch leveraging modern frameworks such as React or Vue for the front-end and Laravel for the back-end, hosted on a cheap web host.
    • A decoupled back end means that you can also develop native applications for mobile devices.
    • Third party APIs can easily be integrated such as FirebaseUI for user registration and login.
    • Advantages: easy and cheap for relatively small numbers of visitors; easy integration of third party services; potentially high performance and unlimited scalability.
    • Disadvantages: cost and support resource requirement escalate with larger numbers of visitors; security needs to be managed for any non-trivial user interactions.
 
Last edited:
  • Like
Likes PeroK and jtbell
Technology news on Phys.org
  • #2

I want to build a website​


Without your saying what KIND of web site you want, any advice we give you would be meaningless. Do you want to sell things? Is it just an informational site? WHAT?
 
  • #3
pbuk said:
thread start here which is now deleted (for good reasons)
It may have been the OP's post #666 so we barely escaped!

I think the before you deal with "what" you need to think about "why". I have a very small personal website which is entirely file: commands. It's a slightly more flexible and unversal ways of handling bookmarks.

It may be that it is "better" to build this with a sophisticated back end, maybe using a databasee, but this is good enough. In a past message I draw the analogy with siftware design as a doghose, a person-house and a skyscraper. This is a doghouse and for its job a doghouse is fine.
 
Last edited:
  • Haha
Likes pbuk
  • #4
Not knowing who asked the original question now removed and what the needs and specifications were, maybe worth being aware, several years ago there was a program containing a big bunch of possible documents to build, called ThePrintShop, or The Print Shop. The company was Broderbund. The program included the ability to create web pages. (Most people would use the program for making greeting cards and other things).
 
  • #5
phinds said:
Without your saying what KIND of web site you want, any advice we give you would be meaningless. Do you want to sell things? Is it just an informational site? WHAT?
OK, I chose a bad title: I have changed it.

Vanadium 50 said:
I think the before you deal with "what" you need to think about "why". I have a very small personal website which is entirely file: commands. It's a slightly more flexible and unversal ways of handling bookmarks.
That would fall under category 3.

Vanadium 50 said:
It may be that it is "better" to build this with a sophisticated back end, maybe using a databasee
I don't think I imply that, but I have added in "If the requirements are simple the code can be written from scratch".

symbolipoint said:
The program included the ability to create web pages.
Yes there are a number of such programs, and also services such as Wix. I have focussed on the four solutions described for a number of reasons, but perhaps mainly because they relate to the (now deleted) question - I had already written the answer before it disappeared and didn't want to throw it away! I could add something referring to these possibilities.
 
  • Like
Likes symbolipoint
  • #6
pbuk said:
OK, I chose a bad title: I have changed it.
I understood that by the original title, you weren't asking how to create a website; rather, you were providing some guidelines for people who have asked this question in the past and others who might do so in the future. That fact seems to have eluded several of the people responding in this thread.
 
  • #7
Yeah, I missed it --- the original title DID seem to pose a question, sort of.
 
  • #8
I'm sorry, every time I see this thread this is all hear...
1688696317320.png
 
  • #9
DaveC426913, post #8
Reminder of Geocities, from the past; something that Yahoo allowed for account-holders.

There was also something through AOL called "Outlook" (completely unrelated to the MicroSoft program or service).
 
  • #10
symbolipoint said:
DaveC426913, post #8
Reminder of Geocities, from the past; something that Yahoo allowed for account-holders.

There was also something through AOL called "Outlook" (completely unrelated to the MicroSoft program or service).
Remember one million pixels? Actual website:
1688697391611.png
 
  • #11
pbuk said:
1. A standalone single page application (SPA).
Can you give an example of this that is not an example of your #4?
 
  • #12
pbuk said:
A static web site.
  • This consists of multiple pages generated from templates.
I suppose nobody in their right mind writes HTML code from scratch nowadays, but that's what I did in 1996 after setting up the first experimental web server at the college where I taught. My site was originally plain-vanilla HTML. Later I added some CSS for formatting, and then some PHP code for convenience, but it's still basically the same site.

A couple of years before I retired, I moved it from a college server to a commercial server under my own domain name.

I suppose one could consider it "generated from templates" now, because I create new pages by cloning existing ones and editing them.

If I were starting from scratch now, I'd probably use Wordpress, or a template for an image-gallery site. However, I have enough legacy content that it would be a lot of work to convert to a new format, so I continue with the old "dinosaur-style" format.
 
  • Like
Likes pbuk
  • #13
pbuk said:
1. A standalone single page application (SPA).
Can you give an example of this that is not an example of your #4?
 
  • #14
PeterDonis said:
Can you give an example of this that is not an example of your #4?
  • How about the the cosmological calculator created by PhysicsForum members (many years ago: perhaps it looks a bit dated now)?
  • Most of the games here: https://github.com/proyecto26/awesome-jsgames.
  • You could perhaps include the Desmos graphing calculator (or the other Desmos calculators) - the heavy lifting is entirely implemented in the front end and it only makes server requests related to user accounts, loading and saving data etc.
  • Any one of thousands of hobby projects and portfolio sites for computer science students and graduates.
 
Last edited:
  • #15
jtbell said:
I suppose nobody in their right mind writes HTML code from scratch nowadays
My slightly-more-sophisticated-bookmark page was written that way. Doghouse metaphor and all.

jtbell said:
in their right mind
Oh.
Never mind.
 
  • Haha
Likes berkeman and pbuk
  • #16
jtbell said:
I suppose nobody in their right mind writes HTML code from scratch nowadays, but that's what I did in 1996 after setting up the first experimental web server at the college where I taught.
I had a similar experience back in about '95, as one of three or four members of the math department at the college where we taught. My part was putting together 8 or 9 Java applets and some other stuff in Javascript, plus associated hand-crafted HTML. The overall purpose was to create a precalc class that would be entirely online. The Java applets consisted of illustrations that were generated based on student input. Some examples that I recall include one for finding the dimensions of a kite whose area was maximized, working with a fixed length of carbon fiber rod to be cut for the crosspieces. The student would input the cut point, and the applet would calculate the area and draw the resulting kite. Another was finding where to sit in a theater to maximize the viewing area, based on the distance to the screen. A student would input that distance, and the applet would calculate the screen area and draw the portion of the screen that would be visible. It's been long enough that the details of the actual problem escape me to some extent.
 

Related to Do you want to build a website?

1. How do I start building a website?

To start building a website, you will need to choose a domain name, select a web hosting provider, and decide on a website building platform. Once you have these in place, you can start designing and creating your website content.

2. Do I need to know coding to build a website?

No, you do not necessarily need to know coding to build a website. There are many website building platforms available that offer drag-and-drop features and templates that allow you to create a website without any coding knowledge.

3. How much does it cost to build a website?

The cost of building a website can vary depending on your needs and preferences. You will need to consider the cost of domain registration, web hosting, website building platform subscriptions, and any additional features or services you may require.

4. How long does it take to build a website?

The time it takes to build a website can vary depending on the complexity of the site and the amount of content you need to create. With website building platforms, you can create a basic website in a matter of hours, while more complex websites may take several weeks or even months to complete.

5. How can I make my website stand out?

To make your website stand out, you can focus on creating unique and engaging content, using high-quality images and graphics, optimizing your website for search engines, and ensuring that your website is user-friendly and easy to navigate. Additionally, you can consider incorporating interactive features and incorporating your brand's personality into your website design.

Similar threads

Replies
7
Views
627
  • Engineering and Comp Sci Homework Help
Replies
22
Views
1K
  • Feedback and Announcements
Replies
0
Views
95K
  • General Discussion
Replies
4
Views
1K
  • Computing and Technology
Replies
4
Views
3K
  • Engineering and Comp Sci Homework Help
Replies
2
Views
3K
  • Feedback and Announcements
Replies
13
Views
3K
Back
Top