Atmo is not huge success but with 400+ stars, I think its good enough to consider a total revamp and make it even more powerful which would hopefully make even more people to use it. So here is my plan for the next version of Atmo (Atmo Next).
Plans on features and enhancements
These are some things to expect with Atmo Next as a user of Atmo
From CLI to Electron
I went with a CLI based approach because it's easier to distribute through npm and I don't have to worry about building for different platforms. But unfortunately electron would add that overhead. But I think it's worth the effort considering the experience it would provide. So Atmo next would be an electron app.
Focus on REST service mocking
When i started developing Atmo, I got way too excited and added support for bunch of things such as Socket and GraphQL. There are way better tools for GraphQL for example Apollo Launch Pad and GraphCool. So Atmo next would not have GraphQL support and Socket support. Atmo next is going to be REST API focused.
Better User experience
Atmo's UI is something I'm really proud of. I'm not a CSS guy. But with the help of Semantic UI I was able to put to together the current UI with extremely short amount of time. But current UI got issues such as not able to re-order the created endpoints in the side bar. This is going to change. Atmo next would be experience focused
Authentication and customisation
There were few requests to support authentication in Atmo but I never got time to implement it so far. I would take this opportunity to add authentication support and other features like response delay to simulate long running tasks.
Deployment
When you write a mock API, at some point you would like to deploy it to cloud so you could share with someone else. Atmo Next would integrate with Zeit's now to make deployment seamless.
Code Generation
If you decide to ditch Atmo for whatever reason, you should not be needing to start all over again from scratch. Code generation would help to generate a Node JS project of your current Atmo project so you could customise as you want from the moment you decided to move away from Atmo.
A website
A website would really help to increase the adaptation of the tool. So, let's build a cool, minimal website.
Looking into new technologies
I would also like to leverage this re-write to look into some new technologies and build Atmo on top of them.
Electron
It's an electron app, so yea!
Typescript
It's just productive!
Mobx
Atmo uses Mobx for state management. It was fun using Mobx but I definitely miss Redux. Recently I came across this article which proposes an interesting pattern. Atmo next would still stick with Mobx but would love to experiment with some patterns that are being proposed. it looks bit too early for mobx-state-tree.
Styled components
Because it looks great.
Ant Design
This is probably what I'm mostly concerned about. Semantic UI is an awesome framework if you don't want to spend hours building the UI and there is now Semantic UI React as well. But I want to give Ant Design a chance because it looks promising and the number of components are much more and versatile.
Blueprint JS
After a day of prototyping with Ant Design, I don't really like how the Ant Design components look out of the box. So decided to go ahead with Blueprint JS.
Semantic UI React
Apparently, I did not realize how easy and productive it is to work with Semantic UI. After trying the above alternatives, I returned to using Semantic UI React.
Let me know what you think
It doesn't matter what awesome features or technologies Atmo next has if there is no body to use it. So let me know what you think and what are your pain points with Atmo. Would be happy to address them.
Atmo is not huge success but with 400+ stars, I think its good enough to consider a total revamp and make it even more powerful which would hopefully make even more people to use it. So here is my plan for the next version of Atmo (Atmo Next).
Plans on features and enhancements
These are some things to expect with Atmo Next as a user of Atmo
From CLI to Electron
I went with a CLI based approach because it's easier to distribute through npm and I don't have to worry about building for different platforms. But unfortunately electron would add that overhead. But I think it's worth the effort considering the experience it would provide. So Atmo next would be an electron app.
Focus on REST service mocking
When i started developing Atmo, I got way too excited and added support for bunch of things such as Socket and GraphQL. There are way better tools for GraphQL for example Apollo Launch Pad and GraphCool. So Atmo next would not have GraphQL support and Socket support. Atmo next is going to be REST API focused.
Better User experience
Atmo's UI is something I'm really proud of. I'm not a CSS guy. But with the help of Semantic UI I was able to put to together the current UI with extremely short amount of time. But current UI got issues such as not able to re-order the created endpoints in the side bar. This is going to change. Atmo next would be experience focused
Authentication and customisation
There were few requests to support authentication in Atmo but I never got time to implement it so far. I would take this opportunity to add authentication support and other features like response delay to simulate long running tasks.
Deployment
When you write a mock API, at some point you would like to deploy it to cloud so you could share with someone else. Atmo Next would integrate with Zeit's now to make deployment seamless.
Code Generation
If you decide to ditch Atmo for whatever reason, you should not be needing to start all over again from scratch. Code generation would help to generate a Node JS project of your current Atmo project so you could customise as you want from the moment you decided to move away from Atmo.
A website
A website would really help to increase the adaptation of the tool. So, let's build a cool, minimal website.
Looking into new technologies
I would also like to leverage this re-write to look into some new technologies and build Atmo on top of them.
Electron
It's an electron app, so yea!
Typescript
It's just productive!
Mobx
Atmo uses Mobx for state management. It was fun using Mobx but I definitely miss Redux. Recently I came across this article which proposes an interesting pattern. Atmo next would still stick with Mobx but would love to experiment with some patterns that are being proposed. it looks bit too early for mobx-state-tree.
Styled components
Because it looks great.
Ant DesignThis is probably what I'm mostly concerned about. Semantic UI is an awesome framework if you don't want to spend hours building the UI and there is now Semantic UI React as well. But I want to give Ant Design a chance because it looks promising and the number of components are much more and versatile.Blueprint JSAfter a day of prototyping with Ant Design, I don't really like how the Ant Design components look out of the box. So decided to go ahead with Blueprint JS.Semantic UI React
Apparently, I did not realize how easy and productive it is to work with Semantic UI. After trying the above alternatives, I returned to using Semantic UI React.
Let me know what you think
It doesn't matter what awesome features or technologies Atmo next has if there is no body to use it. So let me know what you think and what are your pain points with Atmo. Would be happy to address them.