When I first started writing web apps, it was with mod_perl. A lot of folks still use mod_perl, but there world has clearly moved on to Python, ruby, node, etc. Now you don’t have to start every project from scratch, and often you are really just focused on building business logic. Often you don’t even have to worry about data modeling because frameworks are becoming so smart that they can build the physical models from your logical ones. This is enabling some developers to launch really powerful applications in days instead of weeks or months. This also makes it a whole lot more fun to just code.

Building really solid platforms, however, is not going away. It is one thing to build a cheap fast prototype, it is another to build a robust system that can handle millions of transactions a day. This is where you generally start breaking up your app into services that are separate but connected. This is also powerful because now you can start leveraging technologies that better suit each part of the process. Things like Python are great for web UIs, but for transactional processes that require complex business logic, you are better off using something stronger like Java.

You also need to make sure you have testing in place. A lot of frameworks now making testing a natural part of the build process. You don’t have to set up a build pipeline, it happens automatically. You just put the tests in a certain spot or mark them so that the compilers know they are there.

Don’t ignore code quality. You remember everything now but in two years will you still remember why some logic exists? How will new developers adopt what you have done? I have always been a little hesitant to use frameworks that work by conventions or custom syntax. Make sure that you comment these things so that new developers immediately know what each file is for. Use tools like sonar to make sure your quality is high and to help you identify potential problems.

Rapid development is great, but remember that you will be supporting this code for a while, and you would rather spend your time writing new code than maintaining old code.