Going to Iran with an American passport isn't as straightforward as other destinations, due to the strained relationship between the two countries. I do have a Kenyan passport and it would have been much easier using it, unfortunately it is expired and for this trip, I wouldn't have had enough time to renew and get it back on time.
After looking up entry requirements into Iran for Americans, I took the following steps:
Find a tour company - after extensive research I narrowed down my choices to 3 companies that I gravitated toward: Irana Tour, TAP Persia and Key2persia. After chatting with agents from all 3, I selected Irana Tour, the rest were good too but the agent from Irana Tour was really personable which made it easy for me to select my choice.
Plan on an itinerary - Iran is a huge country, we are talking almost 3 times the size of France or slightly smaller than Alaska which is the biggest state in the US. With this size and being a first time visitor, Irana Tour came in handy as the agent helped me come up with the perfect itinerary based on my interests. I settled on a 10 day classic route of Iran that most first time visitors take in order to get a good introduction to the country's highlights.
Apply for a Visa - the benefit of using a tour company is the fact that they handle the whole visa application for you. You have to time the application of the visa so that you don't apply to early or too late plus some time has to be allocated between when you apply and when your application gets approved. Based on my travel dates, it was best to apply 3 months prior to my travel.
Fill out required paperwork - the tour company sent me a list of what I needed in order for them to apply for the visa on my behalf. I had to fill out an application form, provide my resume/CV (this is to check if you work for the govt) and a passport size photo. All these I emailed to the tour company, after everything had been submitted, it was now time to wait for the visa approval.
Visa Grant Notice - I honestly can't remember how long it took before I got notice of my visa approval but once I got it, I could now buy the ticket for my flight to Iran. It is advised not to buy a ticket until your visa is approved.
Electronic visa - after getting the visa Grant notice, the next step is to get an electronic visa. This means that you have to forward the grant notice letter to the closest Iranian embassy near where you live. Since the there is no Iranian embassy in the US, I sent mine to the Pakistani embassy that has the Interest Section of the Islamic Republic of Iran, this section handles all Iranian affairs.
I went to their website and filled out the necessary form which I printed and mailed them together with a copy of the page on my passport (please don't send your actual passport, they just need a copy of it since they stopped stamping Anerican passports) that has my personal information, a copy of my visa Grant notice and the visa application fee (I chose the expedited service which I think cost $120).
I was expecting my electronic visa to be mailed out to me but turns out that they can email it to you. Check your spam folder folks because I was waiting for like 3 weeks to see something in the mail but all along they had sent out the electronic visa to my email account. I was freaking out as my travel date neared, until my travel agent looked into it and told me that my visa had already been issued and to perhaps check my spam folder.
With my electronic visa on hand at last, all I had to do was wait for my departure date to begin a great adventure.