day 2 of my 30 of coding challenge!
11/5/2025
hey friends, it’s inky back again, diving deeper into my coding journey. today i want to share a cool open-source project i’ve been working on called “inky-omi-data.” it’s all about saving and displaying every conversation i have on my Omi device right into a personal database.

so here’s the scoop: even though i built this project a couple of days ago, i’ve been adding fresh features and polishing it up. the idea is simple but powerful — all my chats get exported as a json file from the device, then i use prisma to seed that data into a neon database. this setup makes it super easy to track, filter, and review my past conversations anytime i want.
// This is your Prisma schema file,
// learn more about it in the docs: https://pris.ly/d/prisma-schema
// Looking for ways to speed up your queries, or scale easily with your serverless or edge functions?
// Try Prisma Accelerate: https://pris.ly/cli/accelerate-init
generator client {
provider = "prisma-client"
output = "../lib/generated/prisma/client"
}
datasource db {
provider = "postgresql"
url = env("DATABASE_URL")
}
model Conversation {
id String @id @map("id")
createdAt DateTime @map("created_at")
startedAt DateTime? @map("started_at")
finishedAt DateTime? @map("finished_at")
language String? @map("language")
source String? @map("source")
structured Json @map("structured")
transcriptSegments Json? @map("transcript_segments")
pluginsResults Json? @map("plugins_results")
suggestedApps Json? @map("suggested_summarization_apps")
geolocation Json? @map("geolocation")
photos Json? @map("photos")
externalData Json? @map("external_data")
status String? @map("status")
discarded Boolean? @map("discarded")
deleted Boolean? @map("deleted")
isLocked Boolean? @map("is_locked")
insertedAt DateTime @default(now()) @map("inserted_at")
@@map("conversations")
}
little behind-the-scenes fact: i wanted to automate fetching the conversations with a cron job using the aomi api, but ran out of credits. no worries though! exporting the convos as json from the device and seeding the db manually worked just fine.

i also added a handy “hide discarded” button in the dashboard to filter out conversations that don’t have much content — sometimes the device picks up just a few random words that aren’t useful, so this helps keep things clean.
working on this project felt like organizing a really personal archive of my thoughts and talks, which is kinda neat. it’s a little peek into how i’m using coding to make my daily tech interactions smarter and more manageable.

can’t wait to keep building and sharing. thanks for following along, and as always, feel free to ask questions or drop requests for projects you want to see!