Why I started an API service
Tags: api, startup, webdev, python
Published: 2022-07-25 08:49:00

I recently launched an API for sending SMS – [SMSjet.net](https://smsjet.net). It has been one of the most fulfilling projects I've embarked on in a long time, and I wanted to share my story to hopefully inspire my fellow builders out there to build something you are proud of. 


![SMSjet Banner](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/bggzvuycnfhglagqtohj.png)


## GTFOL

"Get the f*** off localhost" was a mantra that I'd read on Twitter, and it stuck with me. Too often as developers, we start building something out of curiosity or to teach ourselves something. We tinker, we add features, and we explore new ways of doing something, but we always do it at 127.0.0.1 / localhost. Our work is cut off from the world, and this separation more often than not leads to our side projects dying from a lack of oxygen. 

In building SMSjet I wanted to do something other than building 80% of the service and keep it isolated on my machine. I wanted this new site to live and breathe. I wanted there to be something at stake – I wanted to get the f*** off localhost. 
So I did. I bought a domain, I bought a cheap Linux VPS from Hetzner, I linked the two, and I began using VS Code's built-in SSH features to write my code directly on my production server. After a few setup commands and Django boilerplate – there it was, my new site, naked and exposed to the world in all its incompleteness. 

After I got over the initial fear that someone would uncover the IP, load my incomplete site and laugh at how nothing worked – *I felt free*. After every change and incremental improvement, I had the choice of sending a friend the link and asking what they think of it. It felt real, and it was real. 

Getting the f*** off localhost may expose your unfinished work to prying eyes, but nobody will likely find your site without your help. Just make sure you set up a somewhat secure server environment, and you can build out in the open. 

## Ok but why an SMS API?

I'm a big fan of Python and wanted to learn how the FastAPI library works. Previously I had created APIs through Django-REST API, but I never quite felt like I was "doing it right". One thing I love about FastAPI is how well documented it is. FastAPI's documentation is great. I honestly felt like a child would be able to build a REST interface if they read through the docs a couple of times.  

It was on the backbone of my interest in exploring FastAPI that I built out some physical infrastructure to launch an SMS Gateway. The phrase "when you have a hammer, everything looks like a nail", should be rewritten for programmers: 

> When you have a new library, everything looks like a viable SaaS idea

What I love about FastAPI is how it is self-documenting. If you've written robust API code, your documentation will be robust. The Swagger Docs that FastAPI generates are also fully interactive, and allow you to enter real values and send requests straight from the documentation – [check it out here](https://smsjet.net/docs). 

If you're feeling bored with development, throw yourself into the deep end. Go and find a technology you know next to nothing about, and build a product with it. You'll find yourself invigorated and excited about programming because **you're not programming, *you're building*.** 

## Key Lessons 

- Shipping a product doesn't have to be scary, you can even do it on Day 0 of development if you're brave.  
- Give your projects the chance to succeed by GTFOL
- Building something is the best way to learn something new 

- SMSjet is an awesome way to send SMS cheaply. **[Sign up here and get 100 free credits to use for your next project](https://smsjet.net/signup)**. 

--- 

If you're a fellow builder and want help setting up SMS for your bootstrapped project, [reach out here](https://smsjet.net/contact), I'd be more than happy to throw some more free credits your way. <3