I want to create a video sharing service like Youtube, which users can use to upload and watch videos. I prefer to use Vue.js for front-end. What do you suggest for the back-end? Node.js or Laravel ( PHP ) I need a good performance with high speed, and the most important thing is the ability to handle user's requests if the site's traffic increases. I want to create an algorithm that users who watch others videos earn points (randomly but in clear context) If you have anything else to improve, please let me know. For eg: If you prefer React to Vue.js. Thanks in advance
Node is light and scalable and has been used widely for enterprise solutions that need faster response, reliability and better performance. But at the end of the day, for me, when I start a project, I don't shoot for the stars. I build a small application with the possibility to scale in the future that will test my business idea. If the idea is getting volume then I really start thinking about how am I going to build this aiming a specific volume.
Hello , Our first version of www.voilacabs.com was programed with Code Ignitor PHP API's, and at times during peak hours when there were huge request's made the response time use to vary from 500 MS to 1 Minute, also at time's we might have to end up restarting PHP-FPM which use to bring things to normal.
Also PHP lacks features like promises queue, Asyc task, etc. which is supported in Node.js. In our V1 release we shifted to Node.js and since last 7 month's we see no lag in any API response, also all our API's are responding in 200-300 Milli Second's with about 8000+ Fleet's in peak hours. So my suggestion is to go with Node.js also you can either go with Mysql or MongoDB ( depending on the usage ) for DB choice's.
When it comes to hosting you can go with group replication which can be replicated across 3 different datacenters for your data safety. This approach will make your system largely scalable at 80% less price then amazon webservcies.
I hope that help's .
I am part of another firm that where we split our stacks, React/Django and Vue/Laravel. While I am in charge of the React/Django, my co-founder who uses the Vue/Laravel stack swears by Vue. I would urge that you look at using Vue since you are asking to add it to an existing Laravel Project. The learning curve is lower than that of React in my own experience.
Hi, I have a project on my mind, and I need some help. First of all, I know it is all about personal preference, but I am a beginner in the back-end part. So, I am trying to figure out which language is better, for example, for user authentication and interaction between the users. Also, I don't know which framework is better for this work. My first thought was to use PHP, but after some research on the internet, I'm leaning towards Laravel. I will be grateful if you have some advice for me.
First thoughts: * As a beginner you need to understand concepts first, all languages out there are great, each has it's own philosophy, each is better suited for a specific situation. Learn concepts first, do something, then you will understand the differences between them and why one should be chose over another for a task * As a project manager you want your project to come to an end. You will get lost in all the different solutions out there (and it's good), but don't get lost too far. Very often I see people getting lost in those debates and never achieving things, like someone writing a book that would still be choosing the font 6 months after (we've all done that it's ok, but we have to realise it)
Chances are your project can be equally good on any different stacks. I heard an interview of someone from Uber who said something like they started with python, went to node, went back to python and went to go, and with micro-services now they can have all of them all-together.
Last remark: from what I know Laravel is a framework for PHP, so it IS PHP. Just like Symphony for PHP, Express for Node.js, Koa for Node.js, Flask for Python ...
Now to answer your question :
- PHP has a big community, it is great and easy to start with, and you will definitely will learn real object oriented structure
Hope it helps, good luck
Thank you for your response, you really help me but I have some thoughts for the PHP. For example, I will make a single-page application and I read it is better to node.js for this style of application. After that, I think the speed is really important ( maybe I am wrong) because the app will use a lot of data and this data will be images and text. Maybe I thought in the wrong way but I was between node.js and PHP only for this reason. And I want to add something that I don't say in my question (maybe it is important) I know c ( I am not the best programmer but I have a little experience ).
Short answer, if it's a web project (and I guess it is) go with PHP and you can integrate NodeJs services later.
@adzaria (Ezra Fayet) gave a great answer and I'd like to emphasize the first part:
As a beginner you need to understand concepts first. For me that means to understand the web, how servers and requests work, APIs and few others.
Now, I'd like to add few things so, this is the long answer:
- Everyone knows about the community - PHP is way older so you will find lots of resources and I am not only talking about learning - also lots of helpful tools and packages
Why not Python? Python got popular because of AI - don't use PHP for AI and don't use Python for web applications. I can elaborate a lot here but I guess you get the point.
Why not NodeJs?
- NodeJs got popular because of sockets - and it works great, but as a service
- Try to find a good and affordable hosting for NodeJs. How about for Python?
- I would not ignore the security issues that it had and could appear. PHP is older and, therefore, wiser :)
Now, about a framework... is this a learning project or something that you need to do fast? My advice is to start a small project and not use any framework. However, you can use packages and inspire from a framework's architecture - Laravel is a good role model.
Why not start a big project? You will get distracted, get into details and product design stuff and get scared or border and abandon it. For your project you need an MVP - list of minimum required features that you put on paper - that you will complete. After that you can improve.
Hi , thank you for your response. I will try your advice to build something small but I am not sure about the safety of the web application. I mean I will try to make this app without a framework but I don't need to know about safety or something more complicated if I add and user authentication on the site?
You will want to learn about security and using a framework that takes care of it (under the hood) is bad. Laravel's Eloquent takes care of SQL injections. However, if you need a custom query, you can "produce" an injection security breach even in Laravel. Frameworks are bad for beginners because they make you think you know - but it's just an illusion.
Oh okay, I understand. Thank you for your help!!!
This week, we finally released NurseryPeople.com. In the end, I chose to provision our server on DigitalOcean. So far, I am SO happy with that decision. Although setting everything up was a challenge, and I learned a lot, DigitalOceans blogs helped in so many ways. I was able to set up nginx and the Laravel web app pretty smoothly. I am also using Buddy for deploying changes made in git, which is super awesome. All I have to do in order to deploy is push my code to my private repo, and buddy transfers everything over to DigitalOcean. So far, we haven't had any downtime and DigitalOceans prices are quite fair for the power under the hood.
Great i just wanna learn about trick how to auto deploy after pushing to Git
thanks to your comment i ll see about Buddy
Buddy is amazing man. And for our site it is free, which is incredible.
I will say that last week DigitalOcean had an outage for a little. Didn't last very long, but something to think about.
Nothing has 100% uptime; you should always design and plan for outages as well. This lets you at least have some say in the user experience even during an outage.
How do you design and plan for outages if the server is completely down?
Hello! I have a mobile app with nearly 100k MAU, and I want to add a cloud file storage service to my app.
My app will allow users to store their image, video, and audio files and retrieve them to their device when necessary.
I have already decided to use PHP & Laravel as my backend, and I use Contabo VPS. Now, I need an object storage service for my app, and my options are:
Amazon S3 : It sounds to me like the best option but the most expensive. Closest to my users (MENA Region) for other services, I will have to go to Europe. Not sure how important this is?
DigitalOcean Spaces : Seems like my best option for price/service, but I am still not sure
Wasabi: the best price (6 USD/MONTH/TB) and free bandwidth, but I am not sure if it fits my needs as I want to allow my users to preview audio and video files. They don't recommend their service for streaming videos.
Backblaze B2 Cloud Storage: Good price but not sure about them.
There is also the self-hosted s3 compatible option, but I am not sure about that.
Any thoughts will be helpful. Also, if you think I should post in a different sub, please tell me.
I am setting up a content management system (CMS) in Laravel using #GoogleCloudPlatform. This #CMS will have quite a few polymorphic many-to-many relationships (at least 10) and for that reason I am considering whether I should use Firebase or other #NoSQL databases with Laravel.
I know that there is a laravel-firebase package by Kreait which should allow me to use the firebase as database. My question is therefore:
- Are there any drawbacks to using Firebase with Laravel, which I should be aware of?
- Can I possibly use a hybrid model where some data is stored in the SQL database (e.g. user data) while other is stored in Firebase (e.g. the content).
- Or should I just stick to MySQL and create the several polymorphic many-to-many relationships?
- Should I do both and see what works better?
Any advice is appreciated.
I'm building a web and mobile application for transferring virtual digital currencies between 3 types of users for real-world applications, not in-game. I've been contacting companies for recommendations and estimates, and two have come back with Laravel and either Flutter or Android Studio/Swift. I've been studying Flutter, and I think that's the way to go, but for the web app and backend, Laravel just doesn't seem right. Maybe, I'm so used to PHP that it looks like a step backward or being stuck in the past or for bloated WordPress sites and text document management. And the components of Laravel, although they look handy, are rather pricey. Looking at similar kinds of apps, I see them being built in AngularJS, TypeScript, Node.js. What do you folks think? Thank You.
I would go with Flutter for the front end because it is easy to use once you learn Dart, has components for both Cupertino and Material Design, performs well, and has great documentation. For the backend, I've never used PHP so I don't know how good Laravel works, but I would usually use Node.js because of its large ecosystem, or Aqueduct, because if you use Flutter than you can use Dart on both the front and back end.
I would also go for Flutter for the front end as it is an easy and productive platform for creating mobile apps. For the backend, I would go either for Java (SpringBoot) or Node (+express) as both are rock solid platforms for creating API based backends. I may be strongly opinionated but I consider PHP being solely targeted at websites, not enterprise applications.
Thank you for your recommendation!
You could check out Ionic. Angular won't help in creating a mobile app, but with Ionic you can do it, and it comes from Angular. On the other hand, it isn't clear if you're building a mobile webapp or if you need it to be a native APK.
About Flutter, it is really limited for webapps, it's heavily oriented towards creating native Android and iOS apps using Dart.
Hello, I'm currently writing an e-commerce website with Laravel and Laravel Nova (as an admin panel). I want to start deploying the app and created a DigitalOcean account. After some searches about the deployment process, I saw that the setup via DigitalOcean (using Droplets) isn't very easy for beginners. Now I'm not sure how to deploy my app. I am in between Laravel Forge and DigitalOcean (?Apps Platform or Droplets?). I've read that Heroku and Laravel Vapor are a bit expensive. That's why I didn't consider them yet. I'd be happy to read your opinions on that topic!
Probably the best bet is to go through dockerize your application and you'll be free to deploy anywhere since almost any host company offer some way to deploy using docker images.
I've made some simple infra to deploy a laravel app using docker image with docker compose behind a traefik to offer a blue green deployment, pratically the same container was deployed to a production and staging system, only changing some environment vars using 12factor. This pipeline mentioned uses gitlab ci to build the docker image, run tests and if the branch is staging/development or main, the deploy occurs through gitlab runner, connecting to a customer VPS and do the script to pull the image, sinalize traefik to direct traffic from the old container image to the new one.
Considering that you mention "isn't easy for beginners" I'd suggest Forge and Digital Ocean. They're still the most simple ones available out there. Docker would be a good solution too, but there you need to understand docker and the services you're connecting to, and some level of orchestration. In my experience, these are not trivial at all, especially for beginners.
Envoyer comes into the picture as a missing piece that can be used for deployment, and integrates with Forge and DO quite well.
I'd be happy to help you with a basic setup (DM me on Twitter or Github).
I'm migrating from pure Laravel with Bootstrap project to a kind of Laravel + Vue.js. Which one should I use for the UI?
We are considering bootstrap version 4. Still, which of these 3 should I choose? Pure bootstrap, Vuetify, or Bootstrap Vue?
The only significant potential drawback I see to Vuetify is that it is targeting only the Vue framework. If that is not a problem for the project, or as in this case it is actually one of the specifications, then I would certainly recommend Vuetify.
The Vuetify components are more rich and complete, the documentation is great (especially compared to the Bootstrap documentation, plus a new version of Vuetify docs is imminent now), the support and community are considerably better and more responsive, and there are very active updates (pretty much weekly).
I'm an owner of a paid Bootstrap theme and there was effectively zero support, it was weak, and I'm sad to say that I think Bootstrap is something that looks better in a demo than in practice.
Vuetify components are more modern-looking, and directly designed for use in Vue applications. I am biased in the sense that I have looked at both (bootstrap-vue as well) and my work with Bootstrap over a year old now, but at that time I chose to go with Vue and Vuetify and every day that decision feels more rewarding. I do not regret it at all, and I highly recommend Vuetify on Vue. It's also a really great fit with Laravel.
I missed the fact that you were already using Bootstrap in the existing project. My comments above were really intended for a new project and fresh choices.
If you are trying to add Vue to an existing Laravel+Bootstrap project then there is little to be done in terms of the CSS layer to add Vue. Taking advantage of Vue will help you arrange the client code more effectively but it can be done incrementally and you do not need to immediately change from Bootstrap to Bootstrap-Vue, but adding it will give you new component options.
There are separate questions here:
- do you want to adopt a new framework (e.g. Vue)?
- do you want an updated CSS library (Vuetify or Tailwind CSS would be my #1 and #2 there, Bootstrap 5 is also on the horizon)
- do you want to use this moment to pause and schedule some time now for longer-term evolutionary work?
If the answers to the first two are Yes and No, respectively, then Bootstrap-Vue for sure. you can take your time migrating to Bootstrap-Vue, taking advantage of the components it offers, knowing that they are using the same Bootstrap CSS underneath. Although I would probably use this as a good time to schedule a complete review and update of the code, first to Vue, then to Bootstrap-Vue, in separate phases, to reduce technical debt going forward. And if you're going to do that, replacing HTML that uses Bootstrap CSS with new Bootstrap-Vue components, then you can still stop to also consider which CSS package you want to be using a year or two or five from now (the third question).
If you are pressed for time and Vue is a given, there is only one answer here: do the migration to Vue, then update the HTML to use Bootstrap-Vue components as appropriate. And make your own Vue components with Bootstrap styling to fill the gaps in Bootstrap-Vue.
If you are not pressed for time, or as a side project (professional development), I would take some time to play around with the alternatives, get familiar with Vuetify (Vue-specific), Tailwind CSS (framework-independent), or even newer ones like Inkline. See what each brings and whether that is important to this project or not. My guess is that if you have existing code, none of the alternatives bring enough to warrant a switch, even Vuetify. For new projects, yes, but probably not with existing code that is just getting a refresh.
If you're already working with bootstrap, then it would be straightforward to move onto vue bootstrap. I'm using it in one of my projects and it's been a pleasant surprise. Easy to use, smartly designed, intuitive. I started using bootstrap back in 2012 and I grew tired of it so I moved forward to material design. After years of fighting against MaterializeCss, Bootstrap Vue feels slick. Vuetify is nice, it has awesome components and everything, but I wouldn't go back to it. Bootstrap Vue is my new favorite and they create new components every week.
Honorable shoutout to ElementUI, which is amazing too, albeit a little tied to the presets of 2019 which are getting stale.
I've tried VueStrap Vueify and CoreUI too but they weren't a full blown solution. The latter is lacking in documentation too.