Publishing a Headless ecommerce. Which Costs i need to consider? - webserver

I'm developing an ecommerce website.
It's for a "ground-based" clothing store that is used to sells only via third party platform.
And now want a own website.
I started with Wordpress+Woocommerce.
Then i tried a ZeitNow+Next+Graphql+React version.
It connects itself to Wordpress+Woocomerce database via GraphQL Queries.
It uses ZeitNow to avoid implementing a real Node+Express server on my machine.
Which path to choose to complete the website and publish it ? My doubts are related mainly to COSTS.
If i choose the classic WP+Woocommerce way i need :
0-20 EUR /year for Domain Name.
120EUR / year approximately for a classic web server (with PHP+MySQL) hosting plan where to place the Wordpress+Woocommerce.
If i'd like to choose second option, based on what i know actually i need :
0-20 EUR /year for Domain Name.
120EUR / year approximately for a classic web server (with PHP+MySQL) hosting plan where to place the Wordpress+Woocommerce "head" part of my project, .
0EUR /year for serveless ZeitNow (free plan).
But where i need to place the "App" (ZeitNow+Next+GraphQl+React)?
An other Web server (with Node) ?
So an other 120EUR/ year plan ?
Or beacuse it's serverless i can only "deploy" to zeitNow and only link my domain to ZeitNow?
Its not clear to me.
I found on the web things like "Netifly", "Firebase", "Heroku", "AWS" ...
Are they all equivalent to Zeit Now?
I would like to publish a website with benefits of WooCommerce CMS system.
Like adding products, managing stocks, handling discounts plans, access to PayPal and Stripe payment methods integrations (i don't trust my self enough to build integration on my own due to security risks).
I wolud like also the keep benefits of using React for front End like performance (at least perceived) for Final User, or no need of Ajax request to update Cart and Wishlist.
And what about calculating if my project needs a "payed plan" of ZeitNow/Netifly/AWS to manage the request? How i can calculate them?
Sorry for the high number of question, but for me, understand the co-existence of these things is overwhelming!
Thanks.

You will always need a paid plan on any platform if you are running a for-profit endeavor.
You may need ZEIT Now to host your frontend and another server for the GraphQL API unless you really want to go DevOps-less by using serverless functions.
Here are very relevant pages for calculating costs:
ZEIT Now pricing page. Notice the "Serverless Execution" and also "BandWidth" prices.
Netlify.
AWS.
In the end, you will need to deploy a "Proof-of-Concept" and be really careful with the metrics. It is impossible to pinpoint an exact number with a custom solution because depending on your implementation, it can be more or less expensive to make API calls. Solutions like Shopify may be the best approach for your type of app. I only recommend that you develop your own stack if you want to customize, scale, and prepare the base for a team of developers later.
Disclaimer: I work for ZEIT at the moment.

Related

How to build an app using a serverless architecture?

I'm confused about Firebase and serverless in general, as I was just introduced to this concept recently (note that I'm still studying computer science and I'm just exploring on my own now).
In the past I've been part of a project that had the following structure:
Front End in a Single-page-app
Back End built as a REST API
Now let's say I want to build a product, that might have a website and mobile apps. It also has to have backend logic as there are accounts, objects owned by users, and possible integration with a payment service.
What I initially expected from this, before knowning about serverless, is that you build a backend using something like Go (was my case), where you handle all the database data and third-party integrations, build a front end with something like Vue, and then use the backend's REST API to communicate between both of them.
Is this still the case with serverless? Do you build the whole backend server code, or does it work in another way?
I don't need/want you to explain all of it to me. I just need some insight on what is done and common so I can investigate further.

Best practices designing sandbox for REST api

We are developing some REST api's for internal use. To test these microservices we are toying with the idea that every service has a sandbox mode so we can do integration tests that are as close as possible to the real deal.
To see if this path is worth trying we are looking for documentation / best practices on how to manage this sandbox and how to implement this internally. When we look for the keywords Sandbox, REST API and Best Practices we only find how to implement as consumer of existing sandboxes.
So does anyone have some documentation / links in how to tackle this problem and what the pro's and con's are of the different ways?
Kr,
Thomas
I'd say there are two ways to proceed:
Basic: keep a separate sandbox instance of a service. You always deploy a new code to this instance first and run automated/manual tests to verify if everything works fine. A datastore could be a snapshot from the production data or artificial testing data. I would rather we have a "Snapshot" but it depends whether it is applicable in your particular case (privacy etc.)
Advanced: I spied this technique on Facebook Marketing API. This API provides an interface to set up and launch advertising campaigns. They didn't provide a sandbox api for testing purposes (at least last year when the system I was working on had been integrating with Facebook). However if you use a keyword "test" in a name of a campaign or an adset (key entities in the ad world) they would never launch and spend your money. You can try extend this concept on your particular domain and run tests on (or very close to) your production
Hope this helps

What is the standard way to implement an API sandbox?

so it occurred to me that it would be helpful in the development of my backend to have a managed sandbox, like a development environment without having to set up a separate database. To be more specific I'm using Postgresql and Node.js, but I doubt that makes a difference.
So my question is, how do services such as PayPal commonly implement a "sandbox" for developers who use their API to play with that is separate from their real data? In my case all that I want is a database sandbox that operates separately from the main database for the backend developers. My first idea on this is to tag every row with their specific sandbox or production id, but that seems inefficient. Is there another way to implement this idea?

Online app backend with client-friendly online CMS

There are a ton of online CMS services out there. And a ton of (new) backend-as-a-service products too. But I can't seem to find what I am looking for.
I am building an app for a client. The app contains data about shops, products, and more. The client must be able to update this data (and not just one person: each shop manager needs to be able to log in and edit the data for their own shop). And of course the app must be able to access this data.
Client edits data online
This has to be extremely user-friendly and completely online. I don't want to sell my client something where they need to install stuff on their server. I don't want to sell them something that's accessible online but looks like phpMyAdmin.
I want a shop owner to be able to go to a webpage, log in, and then see a pretty UI where they can edit the data for their shop. The back-end needs to have a pretty front-end that's auto-generated for whatever data this particular shop owner is allowed to edit.
So there are two bits: storing data in the cloud in such a way that it can be accessed by the app (which I am building with Titanium), and allowing the client to log into the backend and edit the data in a non-tech, user-friendly way.
Here's a list of things I tried...
Backend-as-a-service
Services with a great back-end, but without easy auto-generated data editing website:
Appcelerator (Titanium) Cloud Service
Amazon EC2
Stackmob
BackBeam
WebVanta
Parse
API o Mat
ShepHertz Cloud42
Kii
Online CMS
Services that provide a nice way for clients to edit data, but no easy way for apps to connect:
CloudCMS
(and many others I'm sure)
It's insane that no-one seems to be providing the cross-breed of BaaS and online CMS. So many people are building apps for clients, and so many clients are not tech-savvy and are reluctant to get a special server and host database software they don't understand. Why does this not exist? What am I missing?
With apiOmat it's easy to create your own data-editing app for e.g. with JavaScript SDK and HTML. Or you send a feature request so that they build a module for your preferred CMS.
As you mentioned, Cloud CMS is a really good option (disclaimer: I'm one of the founders). The product provides an enterprise content management backend and an API that lets you plug in some really powerful features right into your mobile apps.
This month, we released a brand new user interface which provides much of what you're asking about. Instant forms, document libraries, search and workflow all in one place.
You can check out Cloud CMS here: http://www.cloudcms.com
I completely agree with your assessment particularly with respect to the last mile (getting the final app built). It's kind of the wild west out there and the strong technologies are still proving out.
You mentioned Titanium - that's a good choice. I also quite like the Ionic Framework (http://www.drifty.com/). It's a step in the right direction.

Creating SOP invoices in Great Plains: eConnect or Web Service API?

We are using Integration Manager to create a batch of monthly invoices. I want to build a replacement that creates a batch in GP and imports the invoices into the batch. After review, the batch will be posted to GP. Is this doable with either of these API's and which would you choose?
Integration manager can use econnect for its insertion engine. If you are processing a high volume of transactions, you will notice a huge difference between integration manager's UI engine and econnect. When you create a new integration, simply choose the econnect option and whatever data source you have set up.
Concerning the non-IM APIs, both may be used, and they are situational. The web services sits on top of econnect, and it is much slower integrating because you are passing information between several layers. It does provide a secure link between your SQL server and any outside integration sources, and it is ideal if you need to setup something to allow integrations to happen through middleware such as a billing gateway. If you have access to build an econnect process/app that makes a connection to your SQL server for GP, this is the fastest way to integrate SOP and receivable transactions. It maintains all the business rules to help ensure GP does not break in as a result of a patch, and the speed is fast enough to push thousands of records without requiring a custom integration solution.
If you want to get done quickly, and do not mind working from the integration manager interface, just build your integrations using econnect. If you have the time to develop a custom integration routine, go for econnect. If you want to leverage WCF technology on top of econnect, go for web services.
Each are listed in the amount of time it will take you to develop from fast implementation to slower implementation.