enamel

Project management software

Under 10 Employees
Founders Code
Solo Founder
Productivity
Task Management

It all started when the CEO of my company complained about the lack of project management systems that fit his needs. I wanted to help him and the company.

Tech Stack for My Project

I know that a tech stack doesn't really matter in the beginning, so I picked whatever I'm familiar with.

  • Frontend

Vue.js, Apollo Hosted on Netlify

  • Backend

node.js, Apollo, graphql-yoga Hosted on Heroku

  • Landing Page

Nuxt.js Hosted on Netlify

  • Database

MongoDB Hosted on MongoDB Atlas


I'm a big fan of Vue.js and I use it everyday at work, so I'm very productive with it. I also started using GraphQL and Apollo at work and I loved it. The way Apollo handles cache is very smart, and it blew my mind the first time I used it.

I've been using node.js and MongoDB for pretty much all my side projects, so it's my go-to choice. node.js(ECMAScript in general) got significantly better over the last 2 years. Async/await is one of the best things that happened to javascript .

I'm a bit concerned about the cost of MongoDB. It might get expensive as I scale. But that would be a great problem to have, so I don't worry about that right now. SQL might be a better choice for this app, but development speed is faster when using MongoDB.

Frontend, backend, and LP are in separate repository. I chose this approach because it's easier to deploy. I initially put both frontend and backend in the same directory. The problem is that You want to deploy built version of vue app, which is located in dist/, and you want to gitignore dist/ because committing dist/ is messy. But heroku uses git for deployment, so it's difficult to deploy.

Netlify handles this very well. It allows you to run a command when deploying. Netlify also takes care of domain management and SSL.

I debated whether or not to separate frontend and LP. It would be nice if I can use the same repository, but SEO in LP is important and Vue(and SPA in general) is not a good choice for that. So I created a separate repository for LP. Frontend is located in app.enamel.tech and LP in www.enamel.tech.

Right now I only pay for Heroku since Netlify and MongoDB atlas have a free plan. Yes, Heroku does have a free plan, but it sleeps after 30 minutes of inactivity. Did I try to cheat it? Of course. But after a few attempts to prevent Heroku from sleeping, it seemed silly. Why am I spending my time on this? I've been a long time Heroku user, and yet I've never paid for it because none of my projects took off. Now that I have an actual customer, it's time to pay back.

All my code is public, so if you are interested, check it out. https://github.com/kenzotakahashi

Learning how to design a landing page

These days, the best practice for launching a startup is to create a landing page before writing a single line of code. I completely ignored the advice and spent 3 weeks building an MVP. Since I already knew what to build and didn't need a landing page to pitch to a first customer(my employer), it was the fastest path to the first revenue.

But now I need to reach wider audience and a landing page is essential for that. I'm not a designer, but I'm fascinated by design. If something looks good, it looks legit. It builds instant credibility. Every time I built a side project, I was always disappointed by how terrible it looked. I realized that it doesn't matter how awesome your app is if it doesn't look good.

For most businesses, you hire a designer to do the design work for you. But I'm just a solo founder and don't have money for that. Even if I did, delegating such a crucial part of a business sounds daunting. I used to think that delegating engineering to someone else is a bad idea. But now I think it's more true for design. If I can design, I can create a mockup and hand it to engineers. But there is no "mockup" for design.

So I decided to teach myself design. I googled "How to learn design" and found a book called "you can draw in 30 days." It was OK, but drawing by hand felt a little bit waste of time for my needs. I want to create design that looks like https://slack.com. In other words, I need to know how to create a vector image. Adobe illustrator is a de facto tool for this. But it's too expensive, so I bought Affinity Designer, a cheap alternative to illustrator. I could've used Sketch or figma, but they are suited for UI design whereas Affinity Designer is mainly used for graphic design and illustration.

I went through several tutorials on YouTube and quickly got a hang of Affinity Designer. Then I simply imported an illustration that I liked to Affinity Designer and started tweaking. The result is https://www.enamel.tech Not bad for a designer with a few days of practice, don't you think?

I want to design logos, icons, and infographics. Maybe I might need to design a person, which I'm terrible at. I know that knowing a design tool will only get me so far. But in the process of building a clone app and stealing someone else's design , I realized that just copying an existing design can teach you a lot. This is a bottom up approach. For me, it works better than learning the design theory like color and typography and all the boring stuff. My previous attempts to learning design failed because I was trying to "study design". I was trying to understand the principle behind a good design, just like programming.

The crucial difference between design and programming though, is that design doesn't break like a computer program. If you don't understand the fundamentals of programming, copy pasting sample code is useless, because you don't know how to tweak it. If you do tweak with your gut feeling, it'll give you bunch of errors. The result is a non-functioning program. However, you can do the same in design, because even a bad design "works", meaning at least it shows what it is.

So, I will keep stealing other people's design and see how far I can go.

How enamel was born

It all started when the CEO of my company complained about the lack of project management systems that fit his needs. There are many project management systems: Basecamp, Asana, JIRA, Trello, Wrike and gazillion more. But he couldn't find one that both engineers and business people can use. A lot of apps are built for engineers. But it's hard for business people to get insights from those apps.

In the end, he settled for Wrike. Wrike does offer many things he needs, but it's missing many features like budget management capability.

This is clearly a problem worth solving, and if I can develop exactly what he wants, I might be able to sell it and possibly replace Wrike. I've been searching for a good startup idea for so long and I've never come up with anything better.

However, I hesitated to jump right in, mainly because it feels like a regular job. So instead of promising him anything, I decided to build a Wrike clone and see if I like doing it.

It turned out I loved it! I started it on Jun 30 and spent 30 ~ 40 hours a week on it. It was very intense. I did absolutely nothing else. Last week I finished building a stripped version of Wrike. At this point I was ready to take it further. I was ready to turn it into a business.

I made an appointment with the CEO, and yesterday we talked for an hour. We talked about the challenge he's facing and what I can do to help him. I narrowed down a couple key features that need to be developed, and he agreed to use it next month for the project I'm member of. And I sold it for $100. Not a bad start! Asking him to pay for a prototype wasn't easy, but I knew I had to do it. He was happy to pay. Actually the conversation went like this(Translated from Japanese):

Me: "So, I was thinking about what to do with the price...?" Him: "(Nervous laugh)" Me: "(Nervous laugh) Well, it's a prototype, so I wouldn't be mind to offer it for free..." Him: "No, no. I know it's important for your motivation. How about $100?" Me: "Thank you. Yeah $100 would be fine. And if you want to add more projects next month, you can do so without additional fee."

See how terrible I am at selling? Nevertheless, bringing up the topic was all I needed. I've been doing a good job for the past 6 months and have already earned his trust, so that really helped.

I was excited. I've been programming for 6 years and professionally for 3 years. I've never built an app that is actually used by other people, let alone making money from it. I wonder how many web developers have built his own web app with actual users. Knowing how to build an app and running a business are totally different things.

I have no idea where this project is going to take me. Actually I'd be happy with 10 ~ 20 customers. Let's say I charge $15 per user and the average users per customer is 30. That's $450 per customer. With 20 customer, that would be $9,000/month. Even if I subtract server cost, it's more than what I'm getting paid now, which is $6,000.

In the worst case, I will have a solid portfolio that showcases my skill. Not bad at all.

I try not to get too excited about the potential financial reward and instead focus on building a great product, because at the end of the day, that's all that matters.

It all started when the CEO of my company complained about the lack of project management systems that fit his needs. I wanted to help him and the company.