Fixed some grammar errors in use case posts.

This commit is contained in:
Martin Sosic 2022-11-26 17:24:53 +01:00
parent bfa62bce63
commit 8114ecc5db
2 changed files with 24 additions and 24 deletions

View File

@ -16,17 +16,17 @@ import ImgWithCaption from './components/ImgWithCaption'
![amicus hero shot](../static/img/amicus-usecase/amicus-hero-shot.png)
[Erlis Kllogjri](https://github.com/ErlisK) is an engineer based in San Francisco with a broad experience ranging from mechanical engineering and C/C++ microcontroller programming to Python and web app development. In his free time Erlis enjoys working on side projects and that is also how Amicus started out.
[Erlis Kllogjri](https://github.com/ErlisK) is an engineer based in San Francisco with broad experience ranging from mechanical engineering and C/C++ microcontroller programming to Python and web app development. In his free time, Erlis enjoys working on side projects, which is also how Amicus started out.
Amicus is a SaaS for legal teams - think about it as “Asana for lawyers”, but with features and workflows tailored to the domain of law.
Amicus is a SaaS for legal teams - think about it as "Asana for lawyers", but with features and workflows tailored to the domain of law.
Read on to learn how long it took Erlis to develop the first version of his SaaS with Wasp, how he got first paying customers and what features he plans to add next!
Read on to learn how long it took Erlis to develop the first version of his SaaS with Wasp, how he got his first paying customers, and what features he plans to add next!
<!--truncate-->
## Looking for a full-stack “all-in-one” solution, with React & Node.js
Erlis first learned about Wasp on HackerNews and it immediately caught his attention, particularly the configuration language part. One of the companies he worked at in the past had their own internal DSL in the hardware domain and he understood how helpful it can be for moving fast and avoiding boilerplate.
Erlis first learned about Wasp on HackerNews and it immediately caught his attention, particularly the configuration language part. One of the companies he worked at in the past had its own internal DSL in the hardware domain, and he understood how helpful it could be for moving fast and avoiding boilerplate.
Erlis also had previous experience in web development, especially on the front-end side in React and Javascript, so that made Wasp a logical choice.
@ -36,9 +36,9 @@ Erlis also had previous experience in web development, especially on the front-e
## Building Amicus v1.0 and getting first customers!
The idea for Amicus came from his brother who is employed at a law firm - talking about their process and challenges in executing them, Erlis thought it would be an interesting side project, especially given there is a real problem to solve.
The idea for Amicus came from his brother, who is employed at a law firm - talking about their process and challenges in executing them, Erlis thought it would be an interesting side project, especially given there is a real problem to solve.
Soon, first version of Amicus was live! It was made in a true lean startup fashion, starting with the essential features and immediately being tested with users.
Soon, the first version of Amicus was live! It was made in a true lean startup fashion, starting with the essential features and immediately being tested with users.
<ImgWithCaption
alt="Amicus's dashboard"
@ -46,13 +46,13 @@ Soon, first version of Amicus was live! It was made in a true lean startup fashi
caption="Amicus's dashboard, using Material-UI"
/>
Erlis used Material-UI as an UI library since it came with one of the example apps built in Wasp (Beta introduced Tailwind support!). Users could track their clients, active legal matters and there was even integrated billing with Stripe! Amicus also made an extensive use of Wasps [Async Jobs](https://wasp-lang.dev/blog/2022/06/15/jobs-feature-announcement) feature to regularly update invoices, send reminder emails and clear out old data from the database.
Erlis used Material-UI as a UI library since it came with one of the example apps built in Wasp (Beta introduced Tailwind support!). Users could track their clients, active legal matters and there was even integrated billing with Stripe! Amicus also extensively used Wasps [Async Jobs](https://wasp-lang.dev/blog/2022/06/15/jobs-feature-announcement) feature to regularly update invoices, send reminder emails and clear out old data from the database.
After few iterations with the legal team who were Amicus test user (e.g. adding support for different types of users via roles), they were ready to get onboarded and become paying customers! More than 20 people from a single company are using Amicus every day for their work, which also makes it an amazing source of continuous feedback for the further development.
After a few iterations with the legal team who were Amicus' test user (e.g. adding support for different types of users via roles), they were ready to get onboarded and become paying customers! More than 20 people from a single company are using Amicus daily for their work, making it an amazing source of continuous feedback for further development.
Erlis enjoyed the most how fast he could progress and ship features with Wasp on a weekly basis. Having both front-end, back-end and database set and fully configured to work together from the beginning, he could focus on developing features rather than spend time figuring out the intricacies of the specific stack.
Erlis enjoyed the most how fast he could progress and ship features with Wasp on a weekly basis. Having both front-end, back-end, and database set and fully configured to work together from the beginning, he could focus on developing features rather than spend time figuring out the intricacies of the specific stack.
> If it werent for Wasp, Amicus would probably have never been finished. I estimate it saved me 100+ hours from the start and Im still amazed that I did all this work as a team-of-one. Being able to quickly change existing features and add the new ones is the biggest advantage of Wasp for me.
> If it weren't for Wasp, Amicus would probably have never been finished. I estimate it saved me 100+ hours from the start and I'm still amazed that I did all this work as a team-of-one. Being able to quickly change existing features and add the new ones is the biggest advantage of Wasp for me.
>
> — Erlis Kllogjri - Amicus
@ -66,9 +66,9 @@ Some of the most imminent ones are:
- usage logging and analytics
- transactional emails for notifications
Since under the hood Wasp is generating code in todays mainstream, production-tested technologies such as React, Node.js and PostgreSQL (through Prisma), there arent any technical limitations to scaling Amicus as it grows and attracts more users.
Since under the hood Wasp is generating code in today's mainstream, production-tested technologies such as React, Node.js and PostgreSQL (through Prisma), there aren't any technical limitations to scaling Amicus as it grows and attracts more users.
Also, given that `wasp build` CLI command generates a ready Docker image for the back-end (and static files for the front-end), deployment options are unlimited. Since Heroku is shutting down their free plan we added guides on how deploy your project for free on [Fly.io](http://Fly.io) and Railway (freemium).
Also, given that the `wasp build` CLI command generates a ready Docker image for the back-end (and static files for the front-end), deployment options are unlimited. Since Heroku is shutting down its free plan, we added guides on how to deploy your project for free on [Fly.io](http://Fly.io) and Railway (freemium).
> I was using Wasp while still in Alpha and was impressed how well everything worked, especially given how much stuff I get. I had just a few minor issues and the team responded super quickly on Discord and helped me resolve it.
>

View File

@ -17,7 +17,7 @@ import ImgWithCaption from './components/ImgWithCaption'
[Michael Curry](https://github.com/cursorial) is a senior front-end engineer at [Improbable](https://www.improbable.io/), a metaverse and simulation company based in London. In his free time he enjoys learning about compilers.
At his previous position at StudentBeans, he experienced the problem of multiple engineering teams competing for the same dev environment (e.g. testing, staging, …). Then he discovered Wasp and decided to do something about it!
In his previous position at StudentBeans, he experienced the problem of multiple engineering teams competing for the same dev environment (e.g. testing, staging, …). Then he discovered Wasp and decided to do something about it!
Read on to learn why Michael chose Wasp to build and deploy an internal tool for managing development environments at StudentBeans.
@ -25,9 +25,9 @@ Read on to learn why Michael chose Wasp to build and deploy an internal tool for
## The problem: the battle for the dev environment
StudentBeans has a microservices based architecture with multiple environments - test, staging, production, …. The team practices CI/CD and deploys multiple times a day. With such a rapid development speed, it would relatively often happen that multiple engineering teams attempt to claim the same dev environment at the same time.
StudentBeans has a microservices-based architecture with multiple environments - test, staging, production, …. The team practices CI/CD and deploys multiple times a day. With such a rapid development speed, it would relatively often happen that multiple engineering teams attempt to claim the same dev environment at the same time.
There wasnt an easy way for teams to synchronize on who is using which environment and it would eventually lead to unexpected changes, confusion and prolonged development times.
There wasn't an easy way for teams to synchronize on who is using which environment and it would eventually lead to unexpected changes, confusion, and prolonged development times.
## The solution: Grabbit - claim and release dev environments as-you-go
@ -39,13 +39,13 @@ After the incident described above repeated for the n-th time, the team got toge
- test your changes
- release the environment once you are done with it so others are able to claim it
The other requirements were to build the solution in-house to save money, and also not to spend more than a few hours on it as they still needed to deliver some important features for the ongoing sprint.
The other requirements were to build the solution in-house to save money and also not to spend more than a few hours on it as they still needed to deliver some important features for the ongoing sprint.
## The power of rapid prototyping with Wasp
Michael learned about Wasp during its [first HackerNews launch](https://news.ycombinator.com/item?id=26091956) and it immediately caught his eye. Being a programming language enthusiast himself he immediately understand the value of a DSL approach and how it could drastically simplify the development process, while at the same time not preventing him from using his preferred tech stack (React, Node.js) when needed.
Michael learned about Wasp during its [first HackerNews launch](https://news.ycombinator.com/item?id=26091956) and it immediately caught his eye. Being a programming language enthusiast himself, he immediately understood the value of a DSL approach and how it could drastically simplify the development process, while at the same time not preventing him from using his preferred tech stack (React, Node.js) when needed.
Also, although Michael had a full-stack experience, his primary strength at the time was on the front-end side. Wasp looked like a great way of not having to deal with the tedious back-end setup and wiring (setting up database, figuring out API, …) and being able to focus on the UX.
Also, although Michael had full-stack experience, his primary strength at the time was on the front-end side. Wasp looked like a great way of not having to deal with the tedious back-end setup and wiring (setting up the database, figuring out API, …) and being able to focus on the UX.
> When I first learned about Wasp on HN I was really excited about its DSL approach. It was amazing how fast I could get things running with Wasp - I had the first version within an hour! The language is also fairly simple and straightforward and plays well with React & Node.js + it removes a ton of boilerplate.
>
@ -53,18 +53,18 @@ Also, although Michael had a full-stack experience, his primary strength at the
## Out-of-the-box deployment
Once Michael was satisfied with the first version of Grabbit and he confirmed with the team it fits their desired process, the only thing left to do was to deploy it! It is well known this step can get really complicated, especially if youre not yet well-versed in the sea of config options that usually come with it.
Once Michael was satisfied with the first version of Grabbit, and confirmed with the team it fits their desired process, the only thing left to do was to deploy it! It is well known this step can get really complicated, especially if you're not yet well-versed in the sea of config options that usually come with it.
Wasp CLI comes with a `wasp build` command that does all the heavy lifting for you - it creates a directory with static front-end files that you can easily deploy to e.g. Netlify, and on the other hand a Docker image for the back-end. Since Heroku is ending their free plan, our recommendation is to deploy to Fly.io, for which the detailed guide is provided. You can find the [detailed deployment instructions here](https://wasp-lang.dev/docs/deploying).
Wasp CLI comes with a `wasp build` command that does all the heavy lifting for you - it creates a directory with static front-end files that you can easily deploy to e.g. Netlify, and on the other hand, a Docker image for the back-end. Since Heroku is ending its free plan, our recommendation is to deploy to Fly.io, for which the detailed guide is provided. You can find the [detailed deployment instructions here](https://wasp-lang.dev/docs/deploying).
In Michael's case, he deployed Grabbit behind the VPN, since it was an internal tool, and this process was made easy by having ready-to-go Dockerfile.
In Michael's case, he deployed Grabbit behind the VPN since it was an internal tool, and this process was made easy by having a ready-to-go Dockerfile.
## From MVP to a full-fledged SaaS without a rewrite
The presented functionality of Grabbit above is quite simple (create a resource → claim it → release it), and it could have easily been implemented in some no-code tool, or if we really wanted to go simple, with a Trello board. So why use Wasp at all?
The presented functionality of Grabbit above is quite simple (create a resource → claim it → release it), and it could have easily been implemented in some no-code tool or, if we really wanted to go simple, with a Trello board. So why use Wasp at all?
One reason is that developers know and prefer their tools and trust code over the no-code solutions, especially when requirements are still evolving and it is not evident they wont get “stuck” in some closed system. Michael had similar thinking - as he identified this problem at his own company, he realized others must be facing the same issue as well. That is why his plan was to keep improving Grabbit and eventually offer it as a standalone SaaS.
One reason is that developers know and prefer their tools and trust code over the no-code solutions, especially when requirements are still evolving and it is not evident they won't get "stuck" in some closed system. Michael had similar thinking - as he identified this problem at his own company, he realized others must be facing the same issue as well. That is why his plan was to keep improving Grabbit and eventually offer it as a standalone SaaS.
This is where Wasp comes in - he could develop and deploy an initial version of Grabbit in a matter of hours, but still end up with a platform that he can extend indefinitely through the power of code with his stack of choice, React & Node.js, while also using the npm packages he is using everyday at work.
Once he starts adding more advanced features such as multi-user support with authentication, email notifications and integration with CI/CD, no-code tools wont cut it no more. This way he saved himself and the company from throwing an MVP away and starting everything from scratch (having to learn the new technology and figure out how to set it all up) as the product evolves.
Once he starts adding more advanced features, such as multi-user support with authentication, email notifications, and integration with CI/CD, no-code tools won't cut it any more. This way he saved himself and the company from throwing an MVP away and starting everything from scratch (having to learn the new technology and figure out how to set it all up) as the product evolves.