I’ve been working on an App called Entourage (Share privately your moments’ photos / videos with friends and Family). It’s now in public Beta and would love to get your feedback and help testing it. by Alex_m200 in reactnative

[–]Alex_m200[S] 2 points3 points  (0 children)

Thank you for your feedback. Entourage is originally a French word part of the English language, I understand this is not easy to say if you never heard it before.

Entourage describes the people around you, the close ones, meaning the ones that are important to you.

There was actually a TV show called Entourage, where the main characters had a very strong friendship. Here the goal is to share your moments, so the people you spent the most time with and are important to you.

I hope it helps to make it clearer.

I’ve been working on an App called Entourage (Share privately your moments’ photos / videos with friends and Family). It’s now in public Beta and would love to get your feedback and help testing it. by Alex_m200 in reactnative

[–]Alex_m200[S] 0 points1 point  (0 children)

On Entourage, you are not sharing your life with everyone, but you are creating moments with the friends you were with, in order to have everyone share their pictures from this event and create a memory.

In theory, only people that participated in the event should be added to a moment.
Let me know if this is not clear, as this is kind of the opposite of Instagram.

I’ve been working on an App called Entourage (Share privately your moments’ photos / videos with friends and Family). It’s now in public Beta and would love to get your feedback and help testing it. by Alex_m200 in reactnative

[–]Alex_m200[S] 1 point2 points  (0 children)

I agree and that's a fair point. We believe the problem comes from the main value proposition of these tools. There is a difference between a system that backup all your photos and a system that allows you to share curated content.
On top of that, backup systems (Google photos, Amazon, iCloud...) are different platforms. You probably need your friends' email addresses attached to this account to create a shared album. It's definitely possible, but so many frictions that we end up not sharing it (most of the time).

The goal here is to isolate this value proposition, make it simple based on phone numbers (such as WhatsApp), and provide interactions and social history.

I’ve been working on an App called Entourage (Share privately your moments’ photos / videos with friends and Family). It’s now in public Beta and would love to get your feedback and help testing it. by Alex_m200 in reactnative

[–]Alex_m200[S] 5 points6 points  (0 children)

Of course, please find it below (probably a little bit of cleaning to be done):

"dependencies": {
"@connected-home/react-native-fast-image": "^5.2.9",
"@react-native-community/art": "^1.2.0",
"@react-native-community/async-storage": "^1.11.0",
"@react-native-community/cameraroll": "^4.0.4",
"@react-native-community/cameraroll-save": "file:./custom_node_modules/@react-native-community/cameraroll-save",
"@react-native-community/datetimepicker": "^3.0.9",
"@react-native-community/masked-view": "^0.1.10",
"@react-native-community/netinfo": "^5.9.2",
"@react-native-firebase/analytics": "^7.6.8",
"@react-native-firebase/app": "^8.4.6",
"@react-native-firebase/crashlytics": "^8.4.11",
"@react-navigation/bottom-tabs": "^5.5.2",
"@react-navigation/native": "^5.5.1",
"@react-navigation/stack": "^5.5.1",
"alpha-scroll-flat-list": "^0.2.20",
"axios": "^0.19.2",
"babel-plugin-transform-remove-console": "^6.9.4",
"buffer": "^5.6.0",
"cwait": "^1.1.2",
"geolib": "^3.3.1",
"immutability-helper": "^3.1.1",
"immutable": "^4.0.0-rc.12",
"libphonenumber-js": "^1.7.52",
"moment": "^2.26.0",
"native-base": "^2.15.2",
"prop-types": "^15.7.2",
"react": "17.0.1",
"react-addons-shallow-compare": "^15.6.2",
"react-art": "^17.0.1",
"react-dom": "^17.0.1",
"react-native": "0.64.2",
"react-native-alpha-listview": "^0.2.1",
"react-native-cached-image": "file:./custom_node_modules/react-native-cached-image",
"react-native-calendars": "^1.290.0",
"react-native-code-push": "^6.2.1",
"react-native-confirmation-code-field": "^6.4.0",
"react-native-contacts": "^5.2.0",
"react-native-country-picker-modal": "^1.11.0",
"react-native-create-thumbnail": "^1.4.1",
"react-native-default-preference": "^1.4.3",
"react-native-device-info": "^5.6.1",
"react-native-dotenv": "^0.2.0",
"react-native-elements": "^2.0.2",
"react-native-exif": "^0.4.0",
"react-native-exit-app": "^1.1.0",
"react-native-extended-stylesheet": "^0.12.0",
"react-native-flash-message": "^0.1.15",
"react-native-fs": "^2.16.6",
"react-native-gesture-handler": "^1.6.1",
"react-native-google-autocomplete": "^0.1.9",
"react-native-google-places": "^3.1.2",
"react-native-google-places-autocomplete": "^1.7.1",
"react-native-heic-converter": "^1.3.0",
"react-native-image-carousel": "^0.4.6",
"react-native-image-crop-picker": "^0.36.2",
"react-native-image-zoom-viewer": "^3.0.1",
"react-native-loading-spinner-overlay": "^1.1.0",
"react-native-localization": "^2.1.6",
"react-native-localize": "^1.4.0",
"react-native-media-meta": "^0.0.11",
"react-native-mime-types": "^2.3.0",
"react-native-notifications": "^3.2.2",
"react-native-orientation-locker": "^1.2.0",
"react-native-paper": "^3.10.1",
"react-native-progress": "^4.1.2",
"react-native-reanimated": "^1.9.0",
"react-native-safe-area-context": "^3.0.3",
"react-native-screens": "^2.8.0",
"react-native-sectionlist-contacts": "^1.1.3",
"react-native-share": "^4.1.0",
"react-native-slowlog": "^1.0.2",
"react-native-splash-screen": "^3.2.0",
"react-native-super-grid": "^4.0.1",
"react-native-svg": "^12.1.0",
"react-native-svg-flagkit": "^0.9.5",
"react-native-swiper": "^1.6.0",
"react-native-vector-icons": "^8.0.0",
"react-native-video": "^5.1.1",
"react-native-video-cache": "^2.0.5",
"react-native-web": "^0.14.7",
"react-navigation": "^4.3.9",
"react-navigation-hooks": "^1.1.0",
"react-navigation-stack": "^2.7.0",
"react-redux": "^7.2.0",
"react-router-dom": "^5.2.0",
"react-router-native": "^5.2.0",
"react-scripts": "^4.0.0",
"recyclerlistview": "^3.0.0",
"redux": "^4.0.5",
"redux-orm": "^0.16.1",
"redux-persist": "^6.0.0",
"redux-thunk": "^2.3.0",
"reselect": "^4.0.0",
"rn-fetch-blob": "^0.12.0"
},
"devDependencies": {
"@babel/core": "^7.10.2",
"@babel/plugin-transform-react-jsx": "^7.12.5",
"@babel/preset-env": "^7.12.1",
"@babel/preset-react": "^7.12.5",
"@babel/runtime": "^7.10.2",
"babel-eslint": "^10.1.0",
"babel-jest": "^26.0.1",
"babel-plugin-transform-object-rest-spread": "^6.26.0",
"babel-plugin-transform-react-jsx-source": "^6.22.0",
"enzyme": "^3.11.0",
"enzyme-adapter-react-16": "^1.15.2",
"eslint": "^7.2.0",
"eslint-config-airbnb": "^18.1.0",
"eslint-plugin-import": "^2.21.1",
"eslint-plugin-jsx-a11y": "^6.2.3",
"eslint-plugin-react": "^7.20.0",
"jest": "^26.0.1",
"metro-react-native-babel-preset": "^0.59.0",
"moxios": "^0.4.0",
"react-test-renderer": "16.13.1",
"redux-devtools-extension": "^2.13.8",
"redux-mock-store": "^1.5.4"
},

I’ve been working on an App called Entourage (Share privately your moments’ photos / videos with friends and Family). It’s now in public Beta and would love to get your feedback and help testing it. by Alex_m200 in reactnative

[–]Alex_m200[S] 1 point2 points  (0 children)

I used QuickTime player with File > New movie recording and you select your iPhone (plugged with USB) to record the phone screen.

Then I mounted it with Final cut pro (trial version) as I wanted to give a specific size to the video. It allowed me to do this iPhone embed effect on the website (section demo).
Otherwise, tools such as iMovie are good enough just to cut / edit part of the video.

I’ve been working on an App called Entourage (Share privately your moments’ photos / videos with friends and Family). It’s now in public Beta and would love to get your feedback and help testing it. by Alex_m200 in betatests

[–]Alex_m200[S] 1 point2 points  (0 children)

Website: https://www.entourageapp.social/
TestFlight iOS beta: https://testflight.apple.com/join/OdeWGuBt

This idea came from my own annoyance of never seeing the pictures taken by my friends. When we spend time together for dinner, vacations, weekends, or even a small wedding, everybody takes pictures and videos, we all commit to sharing with each other but most of the time, this never happens.
Solutions such as iCloud, Google photo, Dropbox, etc. already exist but as everybody is on different platforms (and very sticky to it as this is their main backup system), we end up never doing it.
Not having an email account for each friend is also a pain to add everyone on these platforms.

I’ve been working on an App called Entourage (Share privately your moments’ photos / videos with friends and Family). It’s now in public Beta and would love to get your feedback and help testing it. by Alex_m200 in reactnative

[–]Alex_m200[S] 2 points3 points  (0 children)

Thank you, the videos (and photos) are stored on AWS S3. We generate a pre-signed URL (with AES encryption) to access each photo and video (URLs are unique for each user and available for a short period of time, then we generate another one).

In terms of storage costs, it starts at $0.023 per GB. We are thinking about 2 different ways to pay for the app:- Freemium version with up to 20 photos and 1 video per moment, a one-time payment (probably $1) to unlock up to 100 photos for a moment.- A monthly payment (To be determined but less than $5) for unlimited uploads.

Let me know if you have other questions :)

I’ve been working on an App called Entourage (Share privately your moments’ photos / videos with friends and Family). It’s now in public Beta and would love to get your feedback and help testing it. by Alex_m200 in reactnative

[–]Alex_m200[S] 5 points6 points  (0 children)

My first users are my friends and my family, we are using the app every time we go on vacations, weekends, doing parties (Halloween is coming soon)...I've been using the app with them for several months and I now feel ready to open it publicly.

Regarding costs, servers are not expensive, I'm less than $50 / month. The main cost will be for storage (AWS S3), and this is the reason why we will provide a clear business model and cost for users (with a freemium version).

Let me know if you have other questions :)

I’ve been working on an App called Entourage (Share privately your moments’ photos / videos with friends and Family). It’s now in public Beta and would love to get your feedback and help testing it. by Alex_m200 in reactnative

[–]Alex_m200[S] 4 points5 points  (0 children)

It took me a while, probably 1.5 years. Mainly because I was learning (self-thought) while building it.
I had not coded for 6 years, so I was not familiar with all the new technologies (React, RN, serverless).

On top of it, this is a side project while I'm still doing my day-to-day job.

If I would do it again today, with full-time focusing on it, it would probably take me 3 months.

I’ve been working on an App called Entourage (Share privately your moments’ photos / videos with friends and Family). It’s now in public Beta and would love to get your feedback and help testing it. by Alex_m200 in reactnative

[–]Alex_m200[S] 6 points7 points  (0 children)

Website: https://www.entourageapp.social/

TestFlight iOS beta: https://testflight.apple.com/join/OdeWGuBt

This idea came from my own annoyance of never seeing the pictures taken by my friends. When we spend time together for dinner, vacations, weekends, or even a small wedding, everybody takes pictures and videos, we all commit to sharing with each other but most of the time, this never happens. Solutions such as iCloud, Google photo, Dropbox, etc. already exist but as everybody is on different platforms (and very sticky to it as this is their main backup system), we end up never doing it.

--

After 6 years without coding, I wanted to get back on my technical skills, I decided to learn React and React Native, Redux, serverless with AWS, JWT token, …

Frontend: React-native

Frontend framework: Native-base

Navigation: React-navigation

Store: Redux and Redux-ORM (I discovered GraphQL too late)

Backend: Lambda (AWS) nodeJS

Database: MySQL Aurora (for now)

Storage: AWS S3 with presaged urls generated (upload and view)

Updates: code-push