Things I Learned Building an Analytics Engine

Doug Black - Oct 20 '18 - - Dev Community

Oh man, am I excited. This side project has been awhile coming.

I just released Engauge Analytics (https://engaugeanalytics.com/), a web analytics engine that allows you to get meaningful data from your website without stalking your users like some other large entities cough cough Google and Facebook cough cough.

What’s more, the paid tiers of Engauge allow you to get full, automated SEO evaluations of your sites, AND machine-learning driven content evaluations that help you know how your audience will react to your content BEFORE THEY VISIT.

It’s the geekiest thing I’ve ever made, and I’m crazy excited for it. But it was PAINFUL to make.
Much fire, many hurt

Here are some of the lessons I learned while building it.

Think About What You're Creating Before Building It
My first uh-oh

I was deep into building the UI for the app, with the analytics engine running and testing. A friend of mine got me a call with a friend who worked on product in a major company.

I walked him through the product from start to finish, using fancy words like "proprietary".

His first question: "So who are you making this for?"

Great question. I hadn't really thought about it.

So, side projects are fun and challenging. The biggest lesson I learned up front: If you're going to market it, think about who you're marketing it to.

Ask For Feedback
Let's escalate quickly!
Two weeks before release, I invited a number of users to test it in alpha and give feedback. The feedback was awesome, and lead to a lot of common-sense features that I had missed.

Some of it was a little tough to hear. This was my baby, and I was incubating it from scratch and asking folks for feedback on how that baby should be raised was sometimes painful.

But, with every suggestion came an opportunity to grow the app. Not every suggestion got implemented, but some of it showed me that the app would go nowhere without it.

The Data Got Big Quick
I mean, biiiiig
So, the way the app is set up, I knew the database would get big quick. I just didn't realize HOW big.

It was so big with the alpha users that it crashed the entire thing. I had to quickly scale, and think about scaling in a much bigger way.

Scaling the server and DB was easy, but I'm still not totally pleased with this. Any feedback for a relational database that scales large and gives quick queries?

Enjoy the Journey
It'll work out
Maybe you've been here, too: "Side project is done, now what's next? Let's build something else! A space monitor API that looks at dark matter, utilizing....webpack!"

This seems to be the first side project in a long while (maybe ever) that hasn't given me the itch to move on immediately. This is built, and I want to see it grow and succeed and scale like crazy.

I have to admit, I'm still really learning about it. I'll post some more, maybe some how-tos, on how I built some of this. But, I know there are still areas of growth in this that I haven't even touched. Do I copyright it? Patent the algorithms? Scale to a different database structure? Multi-tenancy?

Time to keep learning!

. . . . . . . .
Terabox Video Player