Building Askie, your friendly helper to explain you things in Layman terms
Askie is an AI assitant powered by Gemini to take care of your all sorts of queries specifically build for making things simple
Yes, you heard it right.
We are going to build an AI assistant which will answer your all kind of queries in Layman terms.
You’ve got any text query, we’ve got you covered.
You’ve got any image to analyze, we’ve got you covered.
You’ve got any PDF to summarize, we’ve got you covered.
You’ve got any URL to extract data, we’ve got you covered. 😉
Motive behind the project
So the core reason behind this theme was our internal hackathon, where we as a team competed individually to build something unique on different themes. I picked this theme because It had a lot of new things that I could learn throughout the journey such as vector DB, text embeddings and semantic search etc.
What are we building
So we’ll be building a platform or we say an assistant which can take any kind of inputs and answer your queries on that and the most important thing, it will be having Context Memory, Yes you read it right, context awareness is the most important aspect of this assistant.
Tech Stack
Frontend:
React Typescript
Tailwind for stylings
Shadcn for UI Elements
Supabase for authentication
Backend:
Node JS runtime with ExpressJS and Typescript
Gemini Models for querying and vector embeddings
Supabase for DB
Firecrawl for scraping URLs
Tesseract JS for OCR
PDF Parse library for reading PDFs
Prerequisites
We won’t be convering the setup related things like Supabase project creation, enabling email auth or frontend/backend project setup. We’ll cover the code functionalities of the product.
User Journey

Above is the detailed workflow how an input is processed from client to backend to DB and then response going back to client.
Cool, lots of theory, lets go into the tech side of it. We’ll start with Authentication from frontend.
Since we’re already using Supabase for DB, we’ll be using the same for auth as well. It’s one of the simplest auth ever.
Create a re-usable supabase client inside lib folder, it’ll help us to avoid creating config everytime we need supabase instance.


