Skip to main content

Easyanalytics - web analytics for cloudflare 🗓️ plan & execution 📋

·1337 words·7 mins
indiehacker easyanalytics
pdyc
Author
pdyc
Table of Contents

This page lists project plan and execution details of easy analytics. A self hostable web analytics for cloudflare sites.

💹 Easyanalytics

A self hostable web analytics for cloudflare sites.

🏘️ Product

  • What is the product?

Easyanalytics is self hostable alternative to google analytics for cloudflare sites

  • What are the features of this product?

    1. Page views
    2. Unique visitors
    3. Referers
    4. Url paths
    5. Location
    6. Host
    7. Browser
    8. OS
    9. Device type
    10. Url parameters
    11. Combine paths to see aggregate view
    12. Combine parameters to see aggregate view
    13. Create event and payload
    14. Track event and payload
    15. Analyze data by combining events
  • What features will be included in MVP?

    1. Page views
    2. Unique visitors
    3. Referers
    4. url paths
    5. location
    6. host
    7. browser
    8. OS
    9. Device type
  • What would be the criteria for product market fit?

    • 5 customers signing up and deploying it on their site
  • Who are the competitors?

    1. google analytics
    2. simpleanalytics.com
    3. plausible.io
    4. usefathom.com
    5. splitbee.io
    6. ackee.electerious.com
  • How will you differentiate your product from your competitors?

    • Unlike competitors this product does not have susbscription so no ongoing cost.
    • Plausible is open source however it will not work on serverless platforms especially cloudflare.
    • This product is unique in the sense that it is only targeting cloudflare and product along with the source code is available for one time fees.
    • It also does not uses javascript or cookies.
  • What is the price of the product?

    • Not yet decided likely 59$
  • Resources for product research

    • simpleanalytics.com
    • plausible.io
    • splitbee.io

🏦 Marketing and Sales

  • What is the ideal customer profile(ICP) for your product

    • Ideal customer is a person who is already deploying site using cloudflare pages and wants to enable analytics on it.
    • Is technical enough to read the basic instructions and run some commands on shell.
    • Customer is also the buyer and using it for self use.
  • Where will you find ICP for your product?

    • reddit /r/cloudflare /r/selfhosted /r/webdev
    • twitter strategy is not clear two people have contacted so far for trial run.
  • What channel will be primary source of your customers?

    • reddit
  • How will this product be marketed?

    • Product will be built in public with regular updates on twitter, reddit and indiehackers that would hopefully help in connecting with audience interested in the product. Stratgey for marketing after product is built is TBD.
  • Who makes the purchase decision?

    • User of the product will also be the decision maker atmost they can delegate it to someone if they are not tech savy.
  • How will you find and contact of key decision maker?

    • NA
  • What is the sales strategy for this product?

    • Is it self serve product customers can buy and use from website and contact support if somehting is not clear
  • Resources for marketing and sales

    • NA

🧱 Development

  • What will be marketing tech stack?(landing page+blog)

    • There is no sepearate landing page. Personal domain will be used for landing page. There is no blog.
    • Progress updates will be shown in this same article. Tech stack is hugo ssg.
  • How will this product be developed?

    • By myself
  • What is the technology that will be used for backend and why?

    • Cloudflare workers for computing
    • Cloudflare D1 for storage
    • Drizzle orm for db
    • Typescript for development
    • Google/twitter/fb/github auth for login
  • What is the technology used for frontend and why?

    • Remix run for base framework
    • tailwind css for styling
    • chakra/mantine/arkui/shacdn for ui (TBD)
  • What is the software architecture?

    • SPA
  • What is the testing strategy?

    • playwright used for ui testing
  • What is the CI/CD strategy?

    • github actions will be used for ci/cd
  • What are the integration's that would be supported by the product?

    • telegram, email(optional)
  • What software products will this project require and for what purpose?

    • Gumroad/Lemonsqueezy for payment.
    • Github for hosting source code
    • Cloudflare for hoting the app
  • How will the payments be handled?

    • TBD
  • Tech resources

    • TBD

🛖 Execution

  • What are the milestones for this project?

    • Ability to login from social
    • Dashboard to see mock data
    • Dashboard to change mock data with user inputs
    • Dashboard to see real data
    • Dashboard to see real data change with user inputs
    • Dashboard with filtering options
    • Dashboard with searching options
    • Configuration for combining paths
    • Configuration for combining prameters
    • Documentation on using the product
    • Documentation on the working of the product
    • Documentation on use cases for the product
  • Where is the timeline for the project?

    • Timeline for the project is given below
  • Contacts for beta testing

    • Two people have contacted for beta testing

🕛 Timeline

🌕 Day 1 of 15

  • Todo

    • ☑️ Setup cloudflare worker
    • ☑️ Create rough project plan
    • ☑️ Create mockup of ui

🌑 Day 2 of 15

  • Learnings

    • 🎯 Setting up db with worker was easy with wrangler(cf cli)
    • 🎯 Site owners want to understand the journey of their users on website
    • 🎯 Url parameters are valuable to marketers for campaigns
  • Done

    • ✅ Setup cloudflare worker
    • ✅ Create rough project plan
    • ✅ Create mockup of ui
  • Todo

    • ☑️ Decide UI library between Chakra UI/Mantine/Ark UI
    • ☑️ Create social auth login functionality
    • ☑️ Create dashboard with fake data with basic fields

🌕 Day 3 of 15

  • Learnings

    • 🎯 Learned Figma from Figma Tutorial its good introduction
    • 🎯 Decided to go with mantine
    • 🎯 You can use figma template(mantine) of the ui library that you plan to use in frontend, it will save time
  • Done

    • ✅ Decide UI library between Chakra UI/Mantine/Ark UI
    • ✅ Create social auth login functionality
  • Todo

    • ☑️ Create dashboard with fake data with basic fields

🌑 Day 4 of 15

  • Learnings

    • 🎯 While tailwind is good for customization it is just too verbose for basic things like button
  • Done

    • ✅ Create dashboard with fake data with basic fields
  • Todo

    • ☑️ Create dashboard with custom fields like utm parameters

🌕 Day 5 of 15

  • Learnings

    • 🎯 Google is retiring GA3 without retaining history in GA4 there is opportunity if customers are given option to migrate without needing to learn new interface
  • Done

    • ✅ Create dashboard with custom fields like utm parameters
  • Todo

    • ☑️ Explore drizzle orm and design db interface

🌑 Day 6 & 7 of 15

  • Learnings

    • 🎯 Remix is not working well with mantine ui library. I may have to change the library to move forward or abandon 15 day deadline
  • Done

    • ✅ Explore drizzle orm and design db interface
  • Todo

🌕 Day 8 of 15

🌑 Day 9 of 15

  • Learnings

    • 🎯 Adding charts is not straight forward in remix as it does not have in built support for rendering on client side
  • Done

    • ✅ Register with twitter/github for oauth
  • Todo

    • ☑️ Add more fields to dashboard and fix ui
    • ☑️ Add charts to remix

🌕 Day 10 of 15

  • Learnings

    • 🎯 svg based charts like recharts will work fine on server side. canvas based charts like chartjs would required workarounds
  • Done

    • ✅ Add charts to remix
  • Todo

    • ☑️ Add more fields to dashboard and fix ui

🌑 Day 11 of 15

  • Learnings

    • 🎯 Adding responsiveness to charts would require round trip since everything is rendered on server now
  • Done

    • ✅ Add more fields to dashboard and fix ui
  • Todo

    • ☑️ create schema and seed db with mock data use it in ui

🌕 Day 12 of 15

  • Learnings

    • 🎯 prisma cannot be used with cloudflare. drizzle orm is another option however it lacks db introspection.
  • Done

    • ✅ create schema
  • Todo

    • ☑️ seed db with mock data use it in ui

🌑 Day 13 & 14 of 15

  • Learnings

    • 🎯 drizzle orm lacks certain db constraints like check/unique etc.
  • Done

    • ✅ seed db with mock data use it in ui
  • Todo

    • ☑️ wiring everything up with live data locally

🌕 Day 15 of 15

  • Learnings

    • 🎯 Simple logging to db is consuming 1/4th of cpu time. Rendering heavy ui on edge may not be feasible
  • Done

    • ✅ wiring everything up with live data locally
  • Todo

    • ☑️ Figure out deployment to pages

Conclusion

Product is live now, you can signup and test it here Easyanalytics

Related

I don't know what i did last summer
·918 words·5 mins
easyanalytics indiehacking
TLDR: How author forgot his own code, ended up wasting time and learned importance of documenting the code.
Use this Indiehacker template before you start your project
·847 words·4 mins
indiehacker
TLDR: project planning template for indiehackers
Migrating existing page to hugo static site generator
·1227 words·6 mins
hugo
TLDR: How to migrate existing site to Hugo