Best way to go about this full stack CRUD app

I am building a website for my girlfriend. I want it to be a portfolio with the ability to click on a PayPal button and go through that to pay for said piece. So, I don’t want any users besides her (being the admin and being able to CRUD the data - make new art posts, etc.) I want a sign-in button only for her to be able to sign into the admin account and CRUD. So, should I put this login form on a backend html page as {}/login and tell her if she wants to login, it’ll take her to that static html page and bring her to the ‘/admin’ route where she can manipulate the data? Just trying to find the best way to go about this.

I understand these as the core requirements:

  1. Paypal integration
  2. Admin page, with authentication
  3. Non authenticated users can see the art
  4. Admin’s can edit the “art data”

There’s also a few clear “non-functional” requirements:

  1. Admin’s can manipulate the posts, and the paypal integration will need to react accordingly.
  2. Admin routes and secured
  3. SEO friendly, otherwise no one will ever find the site
  4. The “art” needs to be watermarked/protected in some way or form, otherwise it’s too easy to be stolen (if its digital art, not physical)
  5. The admin can add/remove/update “pictures” of the art, so file-storage is more or less required for easy of use. The admin will need to be able to upload pictures that are to be served to normal users to see.
  6. Flexible “posting” ability, odds are no one wants to be limited to plain text, unless this is a very simple app.
  7. The admin needs to be authenticated in some way or form, either a third part, or in a database.

Alright, so those are your basic bare-bones requirements for this app. For the most part its the usual e-commerce site, with some CMS integration (Content Management System). I personally would consider 2 primary choices.

  1. Build this yourself - you can use any stack, with any approach. The main concerns is securing the admin, setting up paypal integration, making the admin-posts “user-friendly” and where and how to upload images.

  2. Use a common CMS service like wordpress, or WIX and have it do most of the heavy lifting for you.

This is a very common use-case, and is more or less an e-commerce site so any CMS should suffice, but if you wanted to build this yourself, then you have more or less unlimited possibilities in terms of stacks. There is no best way if your building it yourself. You could say building it yourself is already a “bad” choices since there are so many off the shelf solutions for this use-case, but it depends on your goals here. If your doing this to learn/have complete control, then nice, and goodluck. But if you want to be as cheap/time-efficient, using an off the shelf option is the best option, unless you have other requirements that make this less optimal.


Thank you very much and I have already set up most of the bare bones as Node/Express/SQL backend with a React frontend.