:wave: . New to Solidus. How does it compare to `M...
# general
n
๐Ÿ‘‹ . New to Solidus. How does it compare to
Magento
? ๐Ÿค” .
๐Ÿ˜‚ 1
c
There are a few ways to answer this question ๐Ÿ˜„ Are you looking for a feature parity comparison or what? For one the development experience with Solidus doesnโ€™t suck ๐Ÿ˜„
You are probably familiar with this already but Magento is PHP, and Solidus is Ruby on Rails.
b
Well to start, my mother loves Magento.
๐Ÿ˜‚ 1
I hear about it during Christmas all the time.
In her own words, her chief reason is that it's great if you know a little how to program but you're not a professional like her son is. You can easily add extensions and if one doesn't work, you can go find another. There are tons of forums where people can help you and fix your issue. It's usually a config problem. And those are Magnetos clear strengths. You use it because you want an ecommerce page sooner rather than later. Shopify has taken that though. If you need a site sooner rather than later to get to market, I would ask if Shopify works for you.
c
I think thatโ€™s basically it, if you want something that will work out of the box, with a pretty robust extension ecosystem Magento would fit the bill. If you want a platform you can build on and customize, rather than just use off-the-shelf pieces, you will have a better time with Solidus. Iโ€™ve worked on customizing Magento and building extensions for it, and itโ€™s not a fun time.
b
Honestly, I think Magento doesn't make much sense these days. Just use Shopify and if you can't use Shopify, the Solidus community would be happy to help in #C0JBKDF35.
The VC question used to be: why not use Magento? I think that stopped being a thing around 2014/15 and it's now just: why not use Shopify?
You could ask chatGPT too. It's helpful with these things.
๐Ÿ™„ 1
n
Thanks all for the response ๐Ÿ‘ .
I am looking for a platform that works, not looking for anything advanced right now but customisation is important for this project. So I am trying to avoid non-opensource solutions.
b
Have you vetted Shopify and BigCommerce?
n
Magento has this nice development workflow where local development changes can be exported to files and tracked it git. that way I dont have to mess with database sync. Does solidus support that ? ๐Ÿค”
b
Yes
bin/rails g migration my_database_migration
c
You should take into consideration your experience with the various languages/frameworks. If you have Ruby/Rails experience, then Solidus would be a clear choice. If you are a PHP programmer, then taking a more in-depth look at Magento may be a good idea.
Solidus is built on Rails and Rails is built on Ruby.
n
Well I am aware. I come from Drupal(php) and have limited experience in Ruby. Rails is really nice though
๐Ÿ‘๐Ÿผ 1
b
where local development changes can be exported to files and tracked it git
Yes, you can use git to track ruby files just like anything else. You can use Heroku to push the files up and Heroku will automatically deploy everything for you.
n
Magento is going through a turmoil right now, with the whole Adobe situation. They have stopped innovating the product and are relying on their own microservices to deal with different functionality, works for them but the product development is basically halted. Coming from Drupal , magento codebase is a hot mess tbh.
b
I used Heroku a lot when I was a junior. It's fantastic. Rails is more advanced than general PHP coding. If you know PHP and want a framework, I would recommend Laravel and look for an ecommerce framework for it.
Again, why are you wanting to use Solidus/Magento over Shopify/BigCommerce?
๐Ÿค” 1
Is this a project that is meant to help you learn Rails? You said it was really nice.
n
Bigcommerce is great. But as I said , customisation is a huge requirement for this project. I am also looking to try Rails, its not totally new to me, so I might be productive . Its gonna take longer but I appreciate things that work
b
What's the customization?
n
Its a custom garden and tooling website, People can customise their flower pots for example, with plants , watch them in AR. etc etc
b
Neat, I might buy something then.
c
If you are looking for something you can customize heavily and are happy to learn a new platform Solidus is a good fit for that. The development experience with Ruby/Rails you will get is imho better than you would with PHP.
What I would probably do is evaluate any 3rd party tools you would need to integrate with and see how each platform fares and where you would need to write your own vs. using pre-built extensions.
b
If you need that level of customization, here's essentially how I learned Rails: I did everything to spec, let everything take longer than it should have, and had... 100% test coverage. Rubocop was also useful as well to help find bad habits that I just generally agreed with until I knew better. If this is a side project and you are not required to get it to market ASAP, then this might be the right direction for you. Rails is the granddaddy of so many framework standards. You will see where a lot of things came from.
n
My need is just that I want to setup a robust CI/CD pipeline and track every change in git. Drupal as I said does that, and I am spoilt by that. Every change via the UI or the cli in the dashboard, basically everything that is not content is tracked in git. And using a build system on AWS deployed to a production system.
b
Build the todo app for Ruby on Rails and see how you feel and then go build your store. I would use Heroku to start (the main seed for Solidus includes all the states over the world, Heroku has a 10k row limit. You'll want to include on the states of countries you're importing. I'm going to let you figure the code part out because learning).
n
Magento has this as well. But the project seems broken in so many ways. I am not also sure I need all the extra enterprise features they have. its just too much
b
spoilt
Dude, that's the base minimum.
n
wordpress does not have that, woocommerce is 30% of ecom market. I feel guilty (and dangerous) doing changes on production databases
โ˜๐Ÿผ 1
b
I'm not even going to talk about how many production databases I've taken down.
More so than needs to be said on a public forum.
๐Ÿ™‚
@Neeraj Kumar which database do you use?
n
I use whatever the project uses. more inclined towards sql and mysql in general
b
Rails is mainly PostgreSQL
Please use that ๐Ÿ˜›
๐Ÿ™Œ 1
n
Is there any doc on the config export to files , and CI/CD setup with Solidus ? ๐Ÿค”
b
Urgh, like any getting started guide with whatever CI/CD you use.
I still use CircleCI
Heroku will auto deploy all pushes up to your codebase for you.
n
this though โ€˜doc on the config export to filesโ€™
b
That's how retromarket.co does CI
I'm using postgres as you can see. I also have the postgis extension added. You'll need to google what that is. I have postgresql client installed and then I set up the database twice by directly loading the dumped SQL. (You'll want to learn how to switch the schema.rb to a structure.sql.) Then I have a gem installed that runs the specs in parallel. When I get a bigger machine I'll make it like 8 databases and 8 different processes running tests. After it's completed I run a bundle-audit to check for security issues in my gems and a brakeman to check for security issues in my code.
That help?
n
So this is basically what I am looking for.
1.
sync my git
2.
Use the dependency manager to build the project files
3
. Set up a new local database which is same as my production one without the content, every setting is in git coz thats what I use to deploy to production.
4.
Install some sample data on the database to work on the project.
5.
make the required changes, to code and config, like store location or other store settings(usually these changes are stored in the database with other project, like
wp-options
table in wordpress).
6
when everything is done I would like to export every database change to files, drupal exports them in yml, magengo can do it in json or yml and then track them with git.
7.
Push the files to a build system which deploys everything to a staging server with a copy of the production database.
8
testing happens here, automated and manual.
9.
If everything is fine then push it once more to production.
Basically I need a
12-Factor
app.
b
1. Github 2. bundler 3.
bin/rails db:setup
4.
bin/rails db:seed
included in the setup command 5.
<http://localhost:3000/admin>
or you could store this in a config file 6.
bin/rails db:migrate
already exports everything to a schema.rb, but you can have it export to a .sql file. 7. Heroku and this might be fairly advanced for you 8. RSpec or Minitest and CI of your choice 9. Heroku
I would skip 7 until you're more comfortable with the workflow you have set up.
Heck, Heroku might make it super easy idk
n
I use Beanstalk on AWS for drupal projects, it supports Ruby
b
I think I've used that before. I just deploy with Ansible these days.
I'd pick the simplest solution since you'd be learning a new framework.