Experienced C programmer here. I need to build a very simple website for personal usage with:<p>- Password-protected login to hide every single page behind<p>- A single sqlite database with possibly a single table (maybe a second single-line table to store my login + pw-hash + salt)<p>- A single page to upload stuff to the database. Some kind of asynchronous JS instead of HTML forms may be preferred.<p>- A single page that always shows the same database query<p>- Very infrequent access to the site (not more than once per day)<p>- There's basically zero chance that this would grow to something bigger. Maybe just extend the site functionality to allow my wife to also use it, and maybe find a way to interact with it from command line on Linux (but probably by doing HTTPS requests).<p>I did something like this with PHP back in 2007, but I know PHP is not very recommended. I worry that trying to learn a whole framework like Ruby on Rails or Django may be overkill. I really like Ruby as a programming language (although I never used RoR), so sticking with it would be cool, but Dreamhost says I should avoid it since it uses use too much memory and I'm on a shared plan. I also have some experience with cgi-bin in python, but I'm also told cgi-bin should be avoided just like PHP. I'm also aware that I could use some sort of server-side javascript, but there are a trillion frameworks to choose from.<p>What would you use today? What would you recommend?
I wrote <a href="https://wapp.tcl.tk/" rel="nofollow">https://wapp.tcl.tk/</a> for occasions such as this. SQLite is built-in, of course.<p>One key feature Wapp is that identical code can be run as<p>+ CGI from Apache<p>+ SCGI from Nginx<p>+ As its own stand-alone webserver<p>So, for development work on your desktop you run it as a standalone webserver. It even pops up its root page in your webbrowser automatically when you launch it. Then, once you get things working there, you "scp" the one small source-code file that implements your application up into a CGI-enabled directory of you server, and is just works.
For something like this PHP should be fine. While PHP might not be the <i>best</i> for modern applications, PHP 7 is quite the competent language, and if you're experienced with this stack it's probably your best bet.
What are you actually building though? Firebase might make this easy (zero devops, everything is done with JS client side and logins/passwords is a few lines of code) but it depends on what you're trying to do.
<i>I</i> would use Ruby/Rails.<p>I would recommend you use whatever you are most comfortable with since what you are describing is build-able in nearly any language/framework.<p>Without getting into what the personal use case is ... what you are describing could possibly be done with something like Google Sheets? It sounds like overkill to use a full on hosted custom built solution when it is 1-2 users updating a single table of rows of some kind of data.<p>If this is a personal use case <i>and</i> you want to learn a framework/language for web development then that's different.
Python + Flask[1] maybe?<p>Or, as far as that goes, for something as simple as what you're talking about, I don't see any particular reason not to just use PHP if you already know it.<p>If I were building this for myself, my first instinct would be to use Groovy + Grails, but if memory was a limiting factor, given that JVM apps can be a bit memory intensive, I'd probably go with either Python or PHP.<p>[1]: <a href="https://flask.palletsprojects.com/en/1.1.x/" rel="nofollow">https://flask.palletsprojects.com/en/1.1.x/</a>
PHP, Apache, MySQL (or MariaDB), Bootstrap CSS and jQuery.<p>Very good setup that will solve your problems relatively fast and can be running for years without much maintenance.<p>There is no point of using anything else to do webpages. These technologies are tested and tried and works. Tons of documentation.<p>Ignore ideas that says you need to use fancy modern technologies, that is what has ruined the web and web development.<p>What is important is to follow best practices and web standards and that is true regardless of what technology you choose.
Are you just trying to build a CRUD thing with login? Parse Server hosted on a Node JS server + MongoDB + a little jQuery should do the trick, and you could probably do it all on free tier hosting.<p>I wrote an easy guide on how to do it in half an hour, targeted at people new to web dev: <a href="https://medium.com/@smuzani/setting-up-a-mobile-backend-server-in-half-an-hour-f1b13e88092c" rel="nofollow">https://medium.com/@smuzani/setting-up-a-mobile-backend-serv...</a><p>The nice thing with Parse is not just that it handles password hashing, roles, and access. Queries are easy, and will give you the results neatly. Client side queries are not secure, but you could host the code on Node.js, or use PHP.<p>The dashboard is quite sexy and works well on mobile too, which is one of the main reasons I like it.
I solved for all those requirements with SharePoint when I took ownership of this shop I am running on my current military deployment. It had to be SharePoint and I didn't have a choice, a constraint of the environment.<p>In my first two weeks here I wrote an interactive ticket system and analytics tool in vanilla JavaScript. It is highly modular and easy to extend. It uses the same 2 SQL queries on every page load, but this page is frequently accessed. The tool was necessary, because the thing it replaced was garbage.
I recommend django, especially if you know python. There are some guides on hosting it with something like pythonanywhere or Heroku and you're set!