What is Foxycart and what are its top alternatives?
Foxycart is an e-commerce platform that helps businesses set up and manage online stores. Key features include customizable checkout experiences, subscription billing, and integration with various payment gateways. However, some limitations of Foxycart include limited design customization options and the need for some technical knowledge to fully utilize all features.
- Shopify: Shopify is a popular e-commerce platform that offers a wide range of features including customizable themes, built-in marketing tools, and a variety of payment options. Pros: Easy to use, extensive app store. Cons: Transaction fees on lower-tier plans.
- WooCommerce: WooCommerce is a WordPress plugin that allows businesses to create online stores. Key features include customizable themes, extensive payment options, and built-in blog functionality. Pros: Highly customizable, integration with WordPress. Cons: Requires a WordPress website.
- BigCommerce: BigCommerce is an e-commerce platform that offers features such as customizable storefronts, built-in marketing tools, and integration with various payment gateways. Pros: Scalable, robust features. Cons: Higher pricing plans.
- Magento: Magento is an open-source e-commerce platform known for its flexibility and customization options. Key features include multi-store capabilities, extensive product management tools, and a large community of developers. Pros: Highly customizable, great for large stores. Cons: Steeper learning curve.
- Wix: Wix is a website builder that also offers e-commerce functionality. Features include customizable templates, drag-and-drop interface, and built-in marketing tools. Pros: Easy to use, all-in-one solution. Cons: Limited customization options.
- Square Online: Square Online is an e-commerce platform that integrates with Square's payment processing services. Key features include customizable templates, inventory management, and built-in shipping options. Pros: Seamless integration with Square, user-friendly interface. Cons: Limited payment gateway options.
- Selz: Selz is an e-commerce platform that caters to small businesses and entrepreneurs. Features include customizable templates, social media integration, and built-in analytics. Pros: Easy to use, affordable pricing. Cons: Limited scalability for larger businesses.
- PrestaShop: PrestaShop is an open-source e-commerce platform with a focus on scalability and performance. Key features include customizable themes, multi-language support, and a large library of extensions. Pros: Highly customizable, great for international sales. Cons: Limited customer support options.
- 3dcart: 3dcart is an e-commerce platform that offers features such as customizable themes, built-in marketing tools, and integration with various payment gateways. Pros: Easy to use, scalable for growing businesses. Cons: Limited design flexibility.
- OpenCart: OpenCart is an open-source e-commerce platform that offers features like customizable templates, multi-store capabilities, and a large community of developers. Pros: Lightweight, easy to install. Cons: Limited out-of-the-box features.
Top Alternatives to Foxycart
- Shopify
Shopify powers tens of thousands of online retailers including General Electric, Amnesty International, CrossFit, Tesla Motors, Encyclopaedia Britannica, Foo Fighters, GitHub, and more. Our platform allows users to easily and quickly create their own online store without all the technical work involved in developing their own website, or the huge expense of having someone else build it. Shopify lets merchants manage all aspects of their shops: uploading products, changing the design, accepting credit card orders, and viewing their incoming orders and completed transactions. ...
- Snipcart
It is an e-commerce solution to save time and money Add two lines of code to your website and start selling products, downloads, or subscriptions online. Accept credit cards from all over the world. ...
- WooCommerce
WooCommerce is the most popular WordPress eCommerce plugin. And it's available for free. Packed full of features, perfectly integrated into your self-hosted WordPress website. ...
- Postman
It is the only complete API development environment, used by nearly five million developers and more than 100,000 companies worldwide. ...
- Postman
It is the only complete API development environment, used by nearly five million developers and more than 100,000 companies worldwide. ...
- Stack Overflow
Stack Overflow is a question and answer site for professional and enthusiast programmers. It's built and run by you as part of the Stack Exchange network of Q&A sites. With your help, we're working together to build a library of detailed answers to every question about programming. ...
- Google Maps
Create rich applications and stunning visualisations of your data, leveraging the comprehensiveness, accuracy, and usability of Google Maps and a modern web platform that scales as you grow. ...
- Elasticsearch
Elasticsearch is a distributed, RESTful search and analytics engine capable of storing data and searching it in near real time. Elasticsearch, Kibana, Beats and Logstash are the Elastic Stack (sometimes called the ELK Stack). ...
Foxycart alternatives & related posts
- Affordable yet comprehensive23
- Great API & integration options14
- Business-friendly11
- Intuitive interface10
- Quick9
- Liquid3
- Awesome customer support3
- POS & Mobile2
- Dummy Proof1
- Nopcommerce0
- User is stuck with building a site from a template1
related Shopify posts
Hi folks
We want to move on from Shopify to a headless commerce system. We want to be able to manage multiple storefronts and integrate alternative order solutions like Whats App and social commerce etc. Same time we want to avoid full blown systems with a lot of unnecessary weight. My idea for the stack, so far:
- Spree Commerce (Shop System),
- Bloomreach (CMS),
- Vue Storefront (Frontend)
I will have to integrate billing solution (like Invoice Ninja), LexOffice for accounting, Optimoroute for the salesman problem, and some more. So flexibility and "easy expandability" is a core demand. Having said that I came across Medusa. It looks promising and seems to check all the boxes. Any thoughts? Basically, it's a decision between Ruby and JavaScript, is it? Can you name me pros and cons of one or both of the systems? What are the serious challenges that I will face going down either one of the roads? Is there another solution that you would highly recommend?
I've linked our shop, currently running with Shopify.
Thanks
Currently, I am using Shopify, and it's working fine somehow. I need to check the access and error logs I am able to do it. That's why thinking set up a WordPress instance on my server. I need a suggestion whether it is good or not. My current website is www.dealsalt.com, please advise.
Thanks DealSalt
Snipcart
- Supports Headless2
- Javascript Based2
related Snipcart posts
- Easy to extend and customize12
- Slow if not optimized1
related WooCommerce posts
I used BigCommerce for several years to host a few of my online stores, including * SweatshirtStation.com * RobbinsAthletics.com * OnlineSafetyDepot.com
However, I switched all of them to a WordPress with WooCommerce setup after I found that BigCommerce became cost prohibitive, especially for companies that don't have huge margins.
BigCommerce DOES have everything you'd need for running a store and doing it efficiently, including: * Easy to Use Templates * Highly Customizable Designs * Solid Product Management Tools * A Large Third-Party App Marketplace * Built-in SEO Tools
However, as you scale your business, those features become increasingly expensive to use, and your BigCommerce bill can get into the thousands of dollars per month when your revenue starts growing into the $50k+ per month range.
As I compared the cost of using WooCommerce to BigCommerce when scaling up a business, I found that the cost was much less using WooCommerce.
WooCommerce v BigCommerce Feature Comparison As you can see from the list below comparing WooCommerce features with BigCommerce, BigCommerce wins most of the feature competitions. However, for ecommerce businesses that grow large enough that they can handle taking care of their IT infrastructure, it becomes much cheaper for them to use WooCommerce.
Hosting & Security | WooCommerce: Self-hosted, requires security setup | BigCommerce: Fully hosted, built-in SSL & PCI compliance | Advantage: BigCommerce
Ease of Use | WooCommerce: More technical, requires setup & maintenance | BigCommerce:Easier to use with built-in features | Advantage: BigCommerce
Customization & Design | WooCommerce: Highly customizable with themes & plugins | BigCommerce:Customizable with drag-and-drop builder & themes | Advantage: WooCommerce
SEO & Marketing | WooCommerce: Strong SEO tools, but depends on plugins | BigCommerce:Built-in SEO & marketing tools | Advantage: BigCommerce
Multi-Channel Selling | WooCommerce: Requires additional plugins for multi-channel | BigCommerce:Built-in multi-channel selling (Amazon, eBay, Facebook, etc.) | Advantage: BigCommerce
Payment Options | WooCommerce: Supports many gateways but may require extra fees | BigCommerce:No transaction fees, supports 65+ gateways | Advantage: BigCommerce
Product Management | WooCommerce: Flexible product options, dependent on extensions | BigCommerce:Comprehensive built-in product management | Advantage: BigCommerce
Scalability | WooCommerce: Scalability depends on hosting & plugins | BigCommerce:Scales easily with enterprise-grade performance | Advantage: BigCommerce
Abandoned Cart Recovery | WooCommerce: Requires a plugin (paid feature) | BigCommerce:Built-in abandoned cart recovery | Advantage: BigCommerce
Analytics & Reporting | Basic reports; needs plugins for advanced analytics | BigCommerce:Advanced built-in reporting & analytics | Advantage: BigCommerce
Third-Party Integrations | WooCommerce:Large plugin ecosystem, but needs management | BigCommerce:Built-in integrations with major platforms | Tie (Both have large marketplaces)
B2B Features | WooCommerce:Limited built-in, needs third-party solutions | BigCommerce:Robust built-in B2B tools | Advantage: BigCommerce
Cost Considerations | WooCommerce:Free core software but requires hosting, security, and plugins | BigCommerce:Monthly subscription but includes hosting & security | Advantage: WooCommerce (More control over costs)
We needed our e-commerce platform (built using WooCommerce) to be able to keep products in sync with our #pim (provided by #akeneo) which is built in Symfony . We hooked into the kernel.event_listener to send RabbitMQ messages to a WordPress API endpoint that triggers the updated product to rebuild with fresh data.
- Easy to use490
- Great tool369
- Makes developing rest api's easy peasy276
- Easy setup, looks good156
- The best api workflow out there144
- It's the best53
- History feature53
- Adds real value to my workflow44
- Great interface that magically predicts your needs43
- The best in class app35
- Can save and share script12
- Fully featured without looking cluttered10
- Collections8
- Option to run scrips8
- Global/Environment Variables8
- Shareable Collections7
- Dead simple and useful. Excellent7
- Dark theme easy on the eyes7
- Awesome customer support6
- Great integration with newman6
- Documentation5
- Simple5
- The test script is useful5
- Saves responses4
- This has simplified my testing significantly4
- Makes testing API's as easy as 1,2,34
- Easy as pie4
- API-network3
- I'd recommend it to everyone who works with apis3
- Mocking API calls with predefined response3
- Now supports GraphQL2
- Postman Runner CI Integration2
- Easy to setup, test and provides test storage2
- Continuous integration using newman2
- Pre-request Script and Test attributes are invaluable2
- Runner2
- Graph2
- <a href="http://fixbit.com/">useful tool</a>1
- Stores credentials in HTTP10
- Bloated features and UI9
- Cumbersome to switch authentication tokens8
- Poor GraphQL support7
- Expensive5
- Not free after 5 users3
- Can't prompt for per-request variables3
- Import swagger1
- Support websocket1
- Import curl1
related Postman posts
We just launched the Segment Config API (try it out for yourself here) — a set of public REST APIs that enable you to manage your Segment configuration. A public API is only as good as its #documentation. For the API reference doc we are using Postman.
Postman is an “API development environment”. You download the desktop app, and build API requests by URL and payload. Over time you can build up a set of requests and organize them into a “Postman Collection”. You can generalize a collection with “collection variables”. This allows you to parameterize things like username
, password
and workspace_name
so a user can fill their own values in before making an API call. This makes it possible to use Postman for one-off API tasks instead of writing code.
Then you can add Markdown content to the entire collection, a folder of related methods, and/or every API method to explain how the APIs work. You can publish a collection and easily share it with a URL.
This turns Postman from a personal #API utility to full-blown public interactive API documentation. The result is a great looking web page with all the API calls, docs and sample requests and responses in one place. Check out the results here.
Postman’s powers don’t end here. You can automate Postman with “test scripts” and have it periodically run a collection scripts as “monitors”. We now have #QA around all the APIs in public docs to make sure they are always correct
Along the way we tried other techniques for documenting APIs like ReadMe.io or Swagger UI. These required a lot of effort to customize.
Writing and maintaining a Postman collection takes some work, but the resulting documentation site, interactivity and API testing tools are well worth it.
Our whole Node.js backend stack consists of the following tools:
- Lerna as a tool for multi package and multi repository management
- npm as package manager
- NestJS as Node.js framework
- TypeScript as programming language
- ExpressJS as web server
- Swagger UI for visualizing and interacting with the API’s resources
- Postman as a tool for API development
- TypeORM as object relational mapping layer
- JSON Web Token for access token management
The main reason we have chosen Node.js over PHP is related to the following artifacts:
- Made for the web and widely in use: Node.js is a software platform for developing server-side network services. Well-known projects that rely on Node.js include the blogging software Ghost, the project management tool Trello and the operating system WebOS. Node.js requires the JavaScript runtime environment V8, which was specially developed by Google for the popular Chrome browser. This guarantees a very resource-saving architecture, which qualifies Node.js especially for the operation of a web server. Ryan Dahl, the developer of Node.js, released the first stable version on May 27, 2009. He developed Node.js out of dissatisfaction with the possibilities that JavaScript offered at the time. The basic functionality of Node.js has been mapped with JavaScript since the first version, which can be expanded with a large number of different modules. The current package managers (npm or Yarn) for Node.js know more than 1,000,000 of these modules.
- Fast server-side solutions: Node.js adopts the JavaScript "event-loop" to create non-blocking I/O applications that conveniently serve simultaneous events. With the standard available asynchronous processing within JavaScript/TypeScript, highly scalable, server-side solutions can be realized. The efficient use of the CPU and the RAM is maximized and more simultaneous requests can be processed than with conventional multi-thread servers.
- A language along the entire stack: Widely used frameworks such as React or AngularJS or Vue.js, which we prefer, are written in JavaScript/TypeScript. If Node.js is now used on the server side, you can use all the advantages of a uniform script language throughout the entire application development. The same language in the back- and frontend simplifies the maintenance of the application and also the coordination within the development team.
- Flexibility: Node.js sets very few strict dependencies, rules and guidelines and thus grants a high degree of flexibility in application development. There are no strict conventions so that the appropriate architecture, design structures, modules and features can be freely selected for the development.
- Easy to use490
- Great tool369
- Makes developing rest api's easy peasy276
- Easy setup, looks good156
- The best api workflow out there144
- It's the best53
- History feature53
- Adds real value to my workflow44
- Great interface that magically predicts your needs43
- The best in class app35
- Can save and share script12
- Fully featured without looking cluttered10
- Collections8
- Option to run scrips8
- Global/Environment Variables8
- Shareable Collections7
- Dead simple and useful. Excellent7
- Dark theme easy on the eyes7
- Awesome customer support6
- Great integration with newman6
- Documentation5
- Simple5
- The test script is useful5
- Saves responses4
- This has simplified my testing significantly4
- Makes testing API's as easy as 1,2,34
- Easy as pie4
- API-network3
- I'd recommend it to everyone who works with apis3
- Mocking API calls with predefined response3
- Now supports GraphQL2
- Postman Runner CI Integration2
- Easy to setup, test and provides test storage2
- Continuous integration using newman2
- Pre-request Script and Test attributes are invaluable2
- Runner2
- Graph2
- <a href="http://fixbit.com/">useful tool</a>1
- Stores credentials in HTTP10
- Bloated features and UI9
- Cumbersome to switch authentication tokens8
- Poor GraphQL support7
- Expensive5
- Not free after 5 users3
- Can't prompt for per-request variables3
- Import swagger1
- Support websocket1
- Import curl1
related Postman posts
We just launched the Segment Config API (try it out for yourself here) — a set of public REST APIs that enable you to manage your Segment configuration. A public API is only as good as its #documentation. For the API reference doc we are using Postman.
Postman is an “API development environment”. You download the desktop app, and build API requests by URL and payload. Over time you can build up a set of requests and organize them into a “Postman Collection”. You can generalize a collection with “collection variables”. This allows you to parameterize things like username
, password
and workspace_name
so a user can fill their own values in before making an API call. This makes it possible to use Postman for one-off API tasks instead of writing code.
Then you can add Markdown content to the entire collection, a folder of related methods, and/or every API method to explain how the APIs work. You can publish a collection and easily share it with a URL.
This turns Postman from a personal #API utility to full-blown public interactive API documentation. The result is a great looking web page with all the API calls, docs and sample requests and responses in one place. Check out the results here.
Postman’s powers don’t end here. You can automate Postman with “test scripts” and have it periodically run a collection scripts as “monitors”. We now have #QA around all the APIs in public docs to make sure they are always correct
Along the way we tried other techniques for documenting APIs like ReadMe.io or Swagger UI. These required a lot of effort to customize.
Writing and maintaining a Postman collection takes some work, but the resulting documentation site, interactivity and API testing tools are well worth it.
Our whole Node.js backend stack consists of the following tools:
- Lerna as a tool for multi package and multi repository management
- npm as package manager
- NestJS as Node.js framework
- TypeScript as programming language
- ExpressJS as web server
- Swagger UI for visualizing and interacting with the API’s resources
- Postman as a tool for API development
- TypeORM as object relational mapping layer
- JSON Web Token for access token management
The main reason we have chosen Node.js over PHP is related to the following artifacts:
- Made for the web and widely in use: Node.js is a software platform for developing server-side network services. Well-known projects that rely on Node.js include the blogging software Ghost, the project management tool Trello and the operating system WebOS. Node.js requires the JavaScript runtime environment V8, which was specially developed by Google for the popular Chrome browser. This guarantees a very resource-saving architecture, which qualifies Node.js especially for the operation of a web server. Ryan Dahl, the developer of Node.js, released the first stable version on May 27, 2009. He developed Node.js out of dissatisfaction with the possibilities that JavaScript offered at the time. The basic functionality of Node.js has been mapped with JavaScript since the first version, which can be expanded with a large number of different modules. The current package managers (npm or Yarn) for Node.js know more than 1,000,000 of these modules.
- Fast server-side solutions: Node.js adopts the JavaScript "event-loop" to create non-blocking I/O applications that conveniently serve simultaneous events. With the standard available asynchronous processing within JavaScript/TypeScript, highly scalable, server-side solutions can be realized. The efficient use of the CPU and the RAM is maximized and more simultaneous requests can be processed than with conventional multi-thread servers.
- A language along the entire stack: Widely used frameworks such as React or AngularJS or Vue.js, which we prefer, are written in JavaScript/TypeScript. If Node.js is now used on the server side, you can use all the advantages of a uniform script language throughout the entire application development. The same language in the back- and frontend simplifies the maintenance of the application and also the coordination within the development team.
- Flexibility: Node.js sets very few strict dependencies, rules and guidelines and thus grants a high degree of flexibility in application development. There are no strict conventions so that the appropriate architecture, design structures, modules and features can be freely selected for the development.
- Scary smart community257
- Knows all206
- Voting system142
- Good questions134
- Good SEO83
- Addictive22
- Tight focus14
- Share and gain knowledge10
- Useful7
- Fast loading3
- Gamification2
- Knows everyone1
- Experts share experience and answer questions1
- Stack overflow to developers As google to net surfers1
- Questions answered quickly1
- No annoying ads1
- No spam1
- Fast community response1
- Good moderators1
- Quick answers from users1
- Good answers1
- User reputation ranking1
- Efficient answers1
- Leading developer community1
- Not welcoming to newbies3
- Unfair downvoting3
- Unfriendly moderators3
- No opinion based questions3
- Mean users3
- Limited to types of questions it can accept2
related Stack Overflow posts
Google Analytics is a great tool to analyze your traffic. To debug our software and ask questions, we love to use Postman and Stack Overflow. Google Drive helps our team to share documents. We're able to build our great products through the APIs by Google Maps, CloudFlare, Stripe, PayPal, Twilio, Let's Encrypt, and TensorFlow.
- Free253
- Address input through maps api136
- Sharable Directions82
- Google Earth47
- Unique46
- Custom maps designing3
- Eşya Depolama1
- Google Attributions and logo5
- Only map allowed alongside google place autocomplete2
related Google Maps posts
Google Analytics is a great tool to analyze your traffic. To debug our software and ask questions, we love to use Postman and Stack Overflow. Google Drive helps our team to share documents. We're able to build our great products through the APIs by Google Maps, CloudFlare, Stripe, PayPal, Twilio, Let's Encrypt, and TensorFlow.
A huge component of our product relies on gathering public data about locations of interest. Google Places API gives us that ability in the most efficient way. Since we are primarily going to be using as google data as a source of information for our MVP, we might as well start integrating the Google Places API in our system. We have worked with Google Maps in the past and we might take some inspiration from our previous projects onto this one.
- Powerful api329
- Great search engine315
- Open source231
- Restful214
- Near real-time search200
- Free98
- Search everything85
- Easy to get started54
- Analytics45
- Distributed26
- Fast search6
- More than a search engine5
- Awesome, great tool4
- Great docs4
- Highly Available3
- Easy to scale3
- Nosql DB2
- Document Store2
- Great customer support2
- Intuitive API2
- Reliable2
- Potato2
- Fast2
- Easy setup2
- Great piece of software2
- Open1
- Scalability1
- Not stable1
- Easy to get hot data1
- Github1
- Elaticsearch1
- Actively developing1
- Responsive maintainers on GitHub1
- Ecosystem1
- Community0
- Resource hungry7
- Diffecult to get started6
- Expensive5
- Hard to keep stable at large scale4
related Elasticsearch posts
We've been using PostgreSQL since the very early days of Zulip, but we actually didn't use it from the beginning. Zulip started out as a MySQL project back in 2012, because we'd heard it was a good choice for a startup with a wide community. However, we found that even though we were using the Django ORM for most of our database access, we spent a lot of time fighting with MySQL. Issues ranged from bad collation defaults, to bad query plans which required a lot of manual query tweaks.
We ended up getting so frustrated that we tried out PostgresQL, and the results were fantastic. We didn't have to do any real customization (just some tuning settings for how big a server we had), and all of our most important queries were faster out of the box. As a result, we were able to delete a bunch of custom queries escaping the ORM that we'd written to make the MySQL query planner happy (because postgres just did the right thing automatically).
And then after that, we've just gotten a ton of value out of postgres. We use its excellent built-in full-text search, which has helped us avoid needing to bring in a tool like Elasticsearch, and we've really enjoyed features like its partial indexes, which saved us a lot of work adding unnecessary extra tables to get good performance for things like our "unread messages" and "starred messages" indexes.
I can't recommend it highly enough.
Often enough I have to explain my way of going about setting up a CI/CD pipeline with multiple deployment platforms. Since I am a bit tired of yapping the same every single time, I've decided to write it up and share with the world this way, and send people to read it instead ;). I will explain it on "live-example" of how the Rome got built, basing that current methodology exists only of readme.md and wishes of good luck (as it usually is ;)).
It always starts with an app, whatever it may be and reading the readmes available while Vagrant and VirtualBox is installing and updating. Following that is the first hurdle to go over - convert all the instruction/scripts into Ansible playbook(s), and only stopping when doing a clear vagrant up
or vagrant reload
we will have a fully working environment. As our Vagrant environment is now functional, it's time to break it! This is the moment to look for how things can be done better (too rigid/too lose versioning? Sloppy environment setup?) and replace them with the right way to do stuff, one that won't bite us in the backside. This is the point, and the best opportunity, to upcycle the existing way of doing dev environment to produce a proper, production-grade product.
I should probably digress here for a moment and explain why. I firmly believe that the way you deploy production is the same way you should deploy develop, shy of few debugging-friendly setting. This way you avoid the discrepancy between how production work vs how development works, which almost always causes major pains in the back of the neck, and with use of proper tools should mean no more work for the developers. That's why we start with Vagrant as developer boxes should be as easy as vagrant up
, but the meat of our product lies in Ansible which will do meat of the work and can be applied to almost anything: AWS, bare metal, docker, LXC, in open net, behind vpn - you name it.
We must also give proper consideration to monitoring and logging hoovering at this point. My generic answer here is to grab Elasticsearch, Kibana, and Logstash. While for different use cases there may be better solutions, this one is well battle-tested, performs reasonably and is very easy to scale both vertically (within some limits) and horizontally. Logstash rules are easy to write and are well supported in maintenance through Ansible, which as I've mentioned earlier, are at the very core of things, and creating triggers/reports and alerts based on Elastic and Kibana is generally a breeze, including some quite complex aggregations.
If we are happy with the state of the Ansible it's time to move on and put all those roles and playbooks to work. Namely, we need something to manage our CI/CD pipelines. For me, the choice is obvious: TeamCity. It's modern, robust and unlike most of the light-weight alternatives, it's transparent. What I mean by that is that it doesn't tell you how to do things, doesn't limit your ways to deploy, or test, or package for that matter. Instead, it provides a developer-friendly and rich playground for your pipelines. You can do most the same with Jenkins, but it has a quite dated look and feel to it, while also missing some key functionality that must be brought in via plugins (like quality REST API which comes built-in with TeamCity). It also comes with all the common-handy plugins like Slack or Apache Maven integration.
The exact flow between CI and CD varies too greatly from one application to another to describe, so I will outline a few rules that guide me in it: 1. Make build steps as small as possible. This way when something breaks, we know exactly where, without needing to dig and root around. 2. All security credentials besides development environment must be sources from individual Vault instances. Keys to those containers should exist only on the CI/CD box and accessible by a few people (the less the better). This is pretty self-explanatory, as anything besides dev may contain sensitive data and, at times, be public-facing. Because of that appropriate security must be present. TeamCity shines in this department with excellent secrets-management. 3. Every part of the build chain shall consume and produce artifacts. If it creates nothing, it likely shouldn't be its own build. This way if any issue shows up with any environment or version, all developer has to do it is grab appropriate artifacts to reproduce the issue locally. 4. Deployment builds should be directly tied to specific Git branches/tags. This enables much easier tracking of what caused an issue, including automated identifying and tagging the author (nothing like automated regression testing!).
Speaking of deployments, I generally try to keep it simple but also with a close eye on the wallet. Because of that, I am more than happy with AWS or another cloud provider, but also constantly peeking at the loads and do we get the value of what we are paying for. Often enough the pattern of use is not constantly erratic, but rather has a firm baseline which could be migrated away from the cloud and into bare metal boxes. That is another part where this approach strongly triumphs over the common Docker and CircleCI setup, where you are very much tied in to use cloud providers and getting out is expensive. Here to embrace bare-metal hosting all you need is a help of some container-based self-hosting software, my personal preference is with Proxmox and LXC. Following that all you must write are ansible scripts to manage hardware of Proxmox, similar way as you do for Amazon EC2 (ansible supports both greatly) and you are good to go. One does not exclude another, quite the opposite, as they can live in great synergy and cut your costs dramatically (the heavier your base load, the bigger the savings) while providing production-grade resiliency.