Case study 04 · My own product
Asklytics
An AI analytics product I founded and build: upload a spreadsheet or connect a source, ask a question in plain English, and get the answer as a chart. For agencies, the same engine writes and delivers client reports from GA4, Search Console, Google Ads and Meta Ads.
- Role
- Founder, architect and engineer
- Year
- 2026
- Status
- Live at asklytics.app
- Stack
- NestJS, Next.js, MongoDB, OpenAI, AWS

01The problem
Asking a simple question about company data meant waiting for whoever could write the query, and questions that spanned several systems meant exporting and joining data by hand. Dashboards answered the questions someone had thought of last quarter, not the one on the table today.
I kept seeing the same bottleneck from the engineering side: people with good questions waiting on people who could write queries. Asklytics is my answer to that, built as a product rather than a feature, which means I own every part of it, from the data model to billing to the privacy promises on the landing page.
02Architecture
A modular NestJS backend on MongoDB with OpenAI integration, and a Next.js client. A question goes in as plain English; the backend maps it to the real column names of the user's data, builds the query, runs it against every connected source and streams the answer back as it arrives, already shaped as a chart.
- Ingestion
- CSV, Excel and Google Sheets; files with millions of rows are split on upload and stored.
- Ask
- Plain-English questions mapped to the dataset's own columns, then turned into a query. No SQL, no formulas.
- Charts
- Bar, line, pie, KPI cards, tables and multi-chart dashboards generated from one prompt.
- History
- Every query saved with its chart and dataset reference, so any past analysis replays in one click.
- Workspaces
- Organisation-based teams with shared datasets, access control and audit trails.
- Agency reporting
- GA4, Search Console, Google Ads and Meta Ads per client; AI-written PDF reports, scheduled delivery and branded portal links.
Underneath: every organisation's data isolated at the database level, HTTP-only JWT cookies for sessions, TLS in transit and encryption at rest, and a stated rule that customer data is never sold, shared or used to train AI models.
03Decisions
- 01
The question is the interface
No dashboard to build first. A team connects a source and asks; the chart is the answer, not a project. That is what lets a team get its first answer the same day it connects its data.
Trade-off Every answer depends on reading the question correctly, so the mapping from words to columns carries the whole product.
- 02
Map questions to the real schema, not to guesses
The model works from the dataset's actual column names, and the backend builds and runs the query. Answers come from the stored data, not from the model's memory of what data like this usually looks like.
Trade-off Messy or cryptic column names make for weaker answers until the dataset is cleaned up.
- 03
Tenant isolation from the first table
Organisations are isolated at the database level, the same rule I hold on RepairCMS: a missed filter returns nothing rather than somebody else's numbers. For a product that asks companies to upload their data, that is the product, not a feature.
Trade-off Cross-organisation features, like agencies seeing many clients, have to be designed explicitly rather than queried freely.
- 04
Keep every answer replayable
Each query is stored with its chart and a reference to the dataset it ran on, so an analysis can be reopened, rerun and shared instead of rebuilt from memory.
Trade-off More storage per question, and history has to respect the same access rules as the data.
04Proof
- Live
- In production at asklytics.app
- 3
- Ways to bring data in: CSV, Excel, Google Sheets
- 4
- Ad and search platforms for agency reports
- Same day
- From connecting a source to the first answer
NextTalk
I build products end to end, not just features.
If you need someone who can take an idea from the data model to paying customers, let's talk.