Everblog, my first legit side project, has been out in the wild for more than a year. I’ve been wanting to make a blog post about some of the lessons I have learned since I first launced the site a year ago. I have so many ideas for posts that I’ll be making a series about the lessons learned from taking a project from a cool idea to something that is actually used by people all over the world.
What Is Everblog?
Straight from the meta description on the homepage, “EverBlog is the quickest and easiest way to start blogging straight from Evernote.” If you are not familiar with Evernote, it is a set of applications to manage notes from every device imaginable. You can create notes from the web, emails, or via desktop and mobile apps. Since it’s so easy to make a note, my goal was to make it just as easy to create a blog post on your site. You are reading a post hosted on the platform, so I think I can safely say, “Mission Accomplished!”
I started working on this project as part of the the 2012 Evernote Dev Cup. I’ve been all talk on many ideas for web apps and have never followed through on making one. Everblog seemed to be the right size for me to tackle. From a technical stand point it wasn’t too big, but it was still challenging enough to keep me interested. The Dev Cup worked great to time box my project, I had a deadline I needed to make. So I went for it.
How Will Posts Be Broken Up
One of the challenges of creating a web app by yourself is that you have to wear many hats. You do everything from writing code to resetting passwords to creating videos to promote the site. I’ve tried to split things up into my role as a Developer, Support, and as a Product Manager. I figured these roles where unique enough to highlight certain areas but still have a significant amount of overlap. I am still figuring out the topics I’ll talk about so this won’t be the final list. Here is what I have so far:
- The Other Elephant In the Room: Postach.io
- User Feedback: Do’s And Dont’s
- Building An App That Depends On Another Platform
- Dealing With Evernote’s Security Breach And Having All Your Users Reset Their Authentication Token
- You Should Be Emailing Your Users From Day One!
- Random Stats About Everblog
- High Level Overview Of How I Made the Site (Previous Blog Post)
- Development And Production Environments With App Harbor
- Raultorres88.com, CodeOfTheDead.com And More: Multi-tenant Sites With .Net
- A Room With A View: Using Multiple Views To Change The Look And Feel Of A Page
- Dev / Support
- “I’d pay for your site!” – Is a Payment System the First Feature You Build?
- “Can you reset my password?” – Every Feature you Need Before You Go Live… And Those That You Don’t 😉
- Things You Shouldn’t Forget To Do When You Rebrand
- How To Walk Away: Breaking Up With A Project
- Dev / Product
- Custom Vs. Template: Is .Net / C# A Good Choice When Users Want Custom Pages?
- How Do You Say Blog In German?
- Us Vs. Them: Is This Site For You Or Your Customers?
- Product / Support
- RTM: What Manual?
- How Not To Introduce New Features To Your Users
- Work-Life-Work Balance: Maintaining A Side Project And Reactions To “The Old Reader” Shutting Down
Goals Of These Posts
- Share some of the things I’ve learned so you can make your first (or second, or third) project amazing
- Open up a dialog. Did I do something wrong? Did I not learn something obvious? Let me know!
- Start blogging on a regular schedule
As you can see I’ve got a lot of ideas on my plate. I know I have a history of one blog post every six months, so I am going to be realistic and try to commit to one post every two weeks. Feel free to comment on my posts. I really want to share the things I’ve learned and create a dialog on some of the topics. Questions, comments, any feedback? Use Disqus on the article page or drop me a line at firstname.lastname@example.org
I haven’t gotten skin customization working for all Everblog.us users yet, but I have been wanting to customize my own blog. So… I kinda cheated and made a customized template for myself. I know, I know… I should be working on templates for all users, but I have to spoil myself sometime.
I am trying out the “flat” design style that seems to be popping up everywhere (pun completely intended). I am going to add more soon and eventually make it where anyone can create a design like this. But first things first, I have to figure out how to do it. I love Razor, but it makes things like custom templates tough.
Random assortment of JsConf Slides. I’ll label ’em and add more as the day goes by.
About a month ago we had the following story in our sprint, simplified to spare additional explanation:
As a user
When I provide a list of many customers
And a single list of updates
The updates will show online.
We knocked out that story without a problem. There were some assumptions made, such as this would be a one time update. As a team we decided to take some shortcuts since future updates were unlikely.
Sure enough, a few sprints latter we get the following story:
As a user
When I provide a list of many customers
And a specific set of updates for each of the customer based on the customer type
The updates will show online.
Given that this was “already done” for a single run, we decided to spend our time generalizing the current code to handle the new situation. Our project manager had no problem with this. The real problem came from our internal users. Here are some of the comments we got:
- “Can’t you just run it 20 times with different input? Why update it?”
- “I thought you were building us tools to do this type of stuff.”
After I picked my jaw off the ground I went to our good friend the metaphor to try to explain the situation. I tried to explain it as a recipe. The first round of updates was a recipe to make 700 chocolate chip cookies. For the latest update you want 20 chocolate chip, 50 M&M, 30 double chocolate, etc. I was trying to explain that we went from doing one thing over and over, to having to do 20 different things and choose the best option. The final reply I got back was, “Just swap out the chips guys.” At least she gets IoC
I recently saw a story about a time capsule that was opened after 100 years. That got me thinking how unimaginative and boring a mostly digital time capsule would be. Sure we can print out our livejournal entries to share with the citizens of 2113, but it lacks the charm of a hand written journal. I can toss in a USB hard drive with a lifetime’s worth of songs, but a good vinyl record would be more exciting to find.
After considering how we would disappoint our future brethren I realized that this would be a first world problem. After a little more thought I realized, the future has the best problems! Along with climate change and a shortage of natural resources the citizens of the future will have hover board accidents and cats chasing robots. It is with great pleasure that I present to the citizens of the future a new Internet meme: Future World Problems. Here are a few from my Twitter stream.
- I’ve ran out of books to read in my self driving car after finishing book 11 in the Song of Ice and Fire series 🙁
- I don’t like the 4K filter on Instagram, everything looks so blurry.
- I love Netflix Instant Download, but the only movies you can upload to your brain are B-Movies like The Matrix
- Guess I have to throw away my Apple iPrinter since the new one has Retina Printing precision.
- My Soylent Green doesn’t taste like people.
What our your #FutureWorldProblems
I’ve been trying to figure out how to do custom templates in .Net and have had a hard time due to the Razor templates. Razor templates are awesome for developers, but not so much for user facing UIs.
How the Cool Kids Do It
It looks like Customer.io and a few other groups use Liquid templates. There is a great article on how Customer.io uses there template engine to give customers the ability to create customized emails.
How The .Net Kids Do It
There is a .Net version of the Liquid template renderer called dotLiquid. I want to take a look at it and see how well it will work to customize blogs in Everblog.
I still haven’t found a good editor. The Customer.io article mentions they use WYSIHTML5, which looks awesome, but I’d have to see how customizable it is. It would be awesome if a provided JSON model could be used to help populate an HTML editor. I’ll keep you posted if I find one.
Looks like I need to check out http://postach.io/