I’m looking to build a social platform focused on sharing multimedia content like images, GIFs, and videos, with collaborative curation features like tagging, collections, searching, downloading, etc.

Essentially the goal is to make it really easy to post, organize, discover, and collect multimedia content. I envision a mix between booru-style imageboards, Internet Archive and Lemmy.

I’m looking to use this as a learning project to get more hands-on fullstack and devops experience.

What would you all recommend technology-wise for someone starting out? I have some Python and web dev basics down, but not enough to feel comfortable just jumping into a big project.

Ideally I’d like something with good documentation/tutorials and an active community I can turn to when stuck.

Would love any suggestions on stacks to look into or good starter tutorials/books related to making the jump to a large project like this.

Thanks for any advice!

  • redcalcium@lemmy.institute
    link
    fedilink
    arrow-up
    9
    arrow-down
    1
    ·
    7 months ago

    In my opinion, you should try a bunch of programming language and frameworks so you can judge yourself which one you really like. Building a bunch of small side projects to get a feel of those languages and frameworks is better than building one big project at this learning stage. After you have settled with one or two programming languages and frameworks you like, then you can proceed with complex side projects to gain deeper experience with the language and framework of your choosing.

    My preferred stack to give you some inspiration:

    • Backend: Django with Django Rest Framework. Reason: there are faster python backend framework out there, but nothing beat django yet when you need to build something quick.
    • Frontend: Next.js is getting really good these days.
    • Database: Postgres. Very easy to setup and left alone. Even without tuning, it works just fine.
    • Task Queue: Learning how to use a task queue is essential. I use Celery with Redis backend for small projects or RabbitMQ backend for larger projects.
    • Docker: learn how package your project into a docker image you can deploy in various cloud services
    • Infra: I deploy my side projects to a bare metal server running RKE2. Having those projects as docker images with kubernetes config makes it really easy to migrate them to a new servers or cloud providers.