What is it?
- Django Rest Framework
- Redis (via django-rq)
- FilePond (and django-rest-filepond)
Should I Use This?
I currently am for my daughter. I plan on keeping the API/model structure for this app stable and including migrations/paths forward. Anything more than a passion project I can’t really recommend at this point in time.
Coming From Photologue?
There are a couple major differences to note:
Major Changes From Photologue
Video Support: Using django video encoding
Front end focus: I’ve completely disregarded the admin UI for the end user. Here are a couple neat features;
- Smooth upload experience.
- Edit/upload/order media outside of admin UI
- Thumbnails with easy_thumbnails
- Changed Gallery -> Album
- I’ve removed the manyToMany relationship between media/albums. I am now using django-ordered-model and a one to many relationship.
I have no interest/bandwidth to develop a migration from photologue->medialogue; but would welcome a PR
Why Is It?
The foundation of this project is a movement towards privacy. I am concerned with my daughter’s identity being on the internet. There are very… VERY few pictures of her on the Facebook and anything posted public I censor. Personally, I dont like my OWN pictures being on facebook. Maybe facebook doesn’t “own” your media, only…
“…non-exclusive, transferable, sub-licensable, royalty-free, and worldwide license to host, use, distribute, modify, run, copy, publicly perform or display, translate, and create derivative works of your content”
i.e. anything you upload can be sold to anyone in the world who can sell it to anyone in the world.
I’m not down with my daughter being used in ads anywhere in the world. As a matter of fact, I DONT want my image to be used in advertising around the world. Neither should you.
As I’ve worked with uploading/displaying media in personal projects before, I felt comfortable building my own private image sharing app. I assured my family I’d have it done by my daughter’s birth. Well, I’m 1.5 years late but here it is!
I plan on making incremental improvements to this application over the coming months. There are a lot of little things missing here. There is… almost no documentation. However, I ended up publishing my entire stack setup in this repo to make it SUPER easy to run and work on the code if you have an understanding of docker-compose.
Additionally, I will be releasing a paid and hosted version of it with extra modules/features that may or may not make it into medialogue itself. I am unsure what it will break down to but I know my venture will be deeply rooted in protecting users privacy.
Again, unsure which of these will be in the core of medialogue or maybe in some NON free but open source license sitch.
- Encryption - Everything that can be encrypted needs to be.
- BYOD - I will be implementing django storages.
- Permissions - Lots of fine-grained permissions regarding controlling/sharing/publishing content.
- 2-factor auth things - Lots of fine grained permissions regarding controlling/sharing/publishing content.
Quite frankly, I’m unsure how deep down the rabbit hole I intend to go with this. I deeply… truly… COMPLETELY despise social media. The irony is not lost on me; I am currently rambling into the void on my blog. None-the-less, there must be a way to cut through the noise and monotony of the hive mind that is the internet. My goal here is to foster a sense of community with your loved ones and facilitate more meaningful conversation. This can be done in private.
Never Will I Ever
Add any form of public interaction.
What does that mean??
- IF I add comments to medialogue, only the owners of the media will see it.
- IF I add likes, it will be to simply mark them for YOUR OWN personal viewing. Not even the owner will see it.
- I will probably never add any view counter on any level
Anyone and everyone is welcome to help jump in on this one. At the end of the day if you are python savvy with a passion for open source and privacy I could use all the help I can get. Privacy is important to me, and I believe it should be to you as well.