Saas- Idea to Reality
Tags: tunnel, deploying, testing, ngrok
Published: 2020-04-18 12:45:06


Disclaimer: <i>I am writing this blog on behalf of StaqLab tunnel <a href="http://tunnel.staqlab.com/">Staqlab Tunnel-Expose Your localhost</a> .This blog contains a refrence of services provide by staqlab tunnel.</i>

If you are new to software development or a student you must have considered what is basic lifecycle whish a Saas Product follows right from being an idea to reality.
Here i will try to explain you the key steps involved to develop your own Saas Products which company follows to make their product go-live to general public.
Software development lifecycle can be broadly classified in broadly three main categories leaving some miscellaneous part like funding, hiring etc behind because that altogether a completely different story
# Developing
First you write some code in programming language of your choices and needs. Then you will have to decide what framework and existing technology you can rely you to be a part of your software technology stack.
Choosing the right technology stack is a very crucial and important task and it should be done with much sincerity and keeping the future needs and scalability in mind.
You can can't come the other day your software proves to be successful venture and start the whole development process right from the scratch.Spending a little bit of time in choosing right technology will save much of your time in coming future.


# Testing
There are basically in-app test and AB Tests.

<i>In-App Tests</i>
This is some code you write- to test the code in development will work properly or not. Funny isn't it -the paradox.
There is generally a test folder which relies in your code directory. Before introducing a new feature or solving some existing bug-you write a testcase for it.
Generally you give some input condition to your test code and then expects a specif output.If the code under test produces the right output you assumes your code is working perfectly.
You write a series of crucial testcases and then can proceed to A/B Testing.

<i>A/B Testing</i>
This is end-to-end user experience testing. In this there is not some machines who test your codes. There are actually some real beta-users or testers who test your software for user usability and user experience
For testers you will need to give them some public url which they can open in their respective PC and begin the testing. To do so you can deploy the code on some beta environment but it do comes with a cost and also its not so effective approach if there are many parallel development going on. Deploying a server for every such bug/ feature testing would be a heavy burden on founders pocket.

Here comes the role of tunnelling to save you from this dilemia .
You can you StaqLab tunnel Staqlab Tunnel-Expose Your localhost .It exposes serer on your machine over to the public internet.
The develoepr/tester will need to run the code on his machine and using Staqlab Tunnel-Expose Your localhost he can generate an public url.
                 
Screenshot taken from app.
<img src="https://tunnel.staqlab.com/img/staqlab-inspector.png">


<img src="https://tunnel.staqlab.com/img/sample-output.png">


You can also pass-on that link to anyone who is not on your private network too.You ac also give it to your clients before actually making the changes live.
After all the bug are resolved and testers give you a go-ahead on user usability and experience your software is ready to actually go Live, after some party and snacks Ofcourse!!


#Deployment
First determine minimum server requirement for your software to run properly. Minimum the requirement minimum the cost for servers. Don't be too miser ofcourse.
After you drilled down the requirement choose some cloud service providers you like such as AWS, Digital Ocean, Heroku to name few.
Setup the server and install dependencies on it you need for your baby software.

After that copy your code to your sever and run that magical start command that ignites your application - most probably yarn start if you working on JS.

If you are tired of deploying the code everytime you make some changes you can use CI/CD services to automate this work for you.

Now start marketing your product and make your product available to the world!!!