What technologies do you suppose goes into ncbi.nlm.nih.gov?

+1 for all of this. Web development is fun and enjoyable, but it's rarely bioinformatics related (and front-end development is arguably not even programming, it's more like a form of digital art or graphic design).

Anyways, to answer OP's question: you can just use the "inspect" option on most web apps to see their HTML/CSS and get a general idea of their structure and design. It appears that NCBI is using Drupal. There is also a Drupal module for pubmed. However, most US government websites generally use their own web design tools. Drupal is a pretty old way to make a website imo, and there is no reason to use it for a personal site when plain CSS and HTML is easier and looks as good, if not better. The NCBI site pulls a little bit from jquery, but otherwise, it is using proprietary widgets and styling.

As for the server side stuff, Flask is a good choice, but "serious" sites like NCBI work differently; they are hosting their database on one server, and hosting the site on another (and sometimes outsourcing the front-end entirely). NCBI is using C for most of it tools, but in the case of Flask, you can just run the scripts in the web server and have it serve static webpages with the results back to the user. It is probably not worth setting up a dedicated database to keep data for the scale that most personal projects operate on (although having your own web server is a good exercise in learning networking, even if it's not reliable).

There are a variety of janky ways to string together web applications, the way that large organizations do it is not optimal for personal websites. Flask is a good option, but there as also npm packages like Blast.js if you want to go with something more modern like React.

/r/bioinformatics Thread Parent