Skip to content

Repository files navigation

Simply

<<<<<<< HEAD A minimalist personal workspace: a dashboard, a customizable board, notes, tasks, a universal "Smart Ingest" capture bar, and a persistent AI assistant that understands your entire workspace — all powered by Groq.

How it's built

  • Frontend: plain HTML/CSS/JS, no build step, no framework. Data lives in the browser's localStorage and autosaves as you work.
  • Backend: two small Vercel serverless functions (api/chat.js, api/ingest.js) that call the Groq API. Your Groq API key is read from an environment variable on the server — it is never sent to the browser.
  • AI: every assistant reply and every Smart Ingest decision is generated by a Groq-hosted model, called only from the backend.
index.html            Page shell: sidebar, topbar (Smart Ingest), all views
css/styles.css         Design system + every component style
js/storage.js          Data model, localStorage persistence, import/export/reset
js/utils.js            Small shared DOM/format/toast helpers
js/markdown.js          Tiny safe renderer for AI text
js/api.js               Frontend → backend fetch wrapper
js/sidebar.js            View router
js/dashboard.js          Dashboard view
js/workspace.js          Board (columns/cards) view + modal system
js/ingest.js             Smart Ingest capture bar logic
js/assistant.js          AI Assistant chat view
js/settings.js           Settings view
js/onboarding.js         First-run walkthrough
js/app.js                Boots everything
api/chat.js              POST /api/chat   — assistant + dashboard insights
api/ingest.js             POST /api/ingest — Smart Ingest classification

Local development

You'll need a Groq API key: create one at https://console.groq.com/keys

  1. Install the Vercel CLI if you don't have it: npm i -g vercel
  2. Copy the env template and add your key:
    cp .env.example .env
    # then edit .env and paste your key
    
  3. Run the app (this serves the static files and the /api functions together, exactly like production):
    vercel dev
    
    Open the printed local URL. Don't use a plain static server (e.g. npm run dev from some other tool) — the /api routes only work through vercel dev or a real Vercel deployment.

Deploying to Vercel

  1. Push this project to a Git repository (GitHub/GitLab/Bitbucket) and import it in the Vercel dashboard, or deploy straight from the CLI:
    vercel
    
  2. In your Vercel project, go to Settings → Environment Variables and add:
    • GROQ_API_KEY = your key (Production, and Preview if you want previews to work too)
  3. Redeploy. That's it — no other configuration needed.

Notes on the AI design

  • Smart Ingest (api/ingest.js) reads your existing columns and decides whether pasted text should become a note, a task, or a board card — creating a new column when nothing fits. Every action shows a toast with an Undo.
  • AI Assistant (api/chat.js, mode assistant) receives your complete workspace as JSON on every message, so it can answer questions, search, summarize, and — when you ask it to — create, move, or delete notes, tasks, cards, and columns on your behalf. It only acts when you ask.
  • Dashboard insights (api/chat.js, mode insight) is the same backend endpoint used to generate the short productivity summary shown on the dashboard, cached until your workspace changes.
  • Change the model any time from Settings → AI configuration — everything runs on Groq, so switching is instant with no extra setup.

Data & privacy

Your workspace (columns, cards, notes, tasks, chat history) is stored only in your browser's localStorage. Nothing is sent anywhere except the specific text you send to Smart Ingest or the Assistant, which passes through your own backend to Groq. Use Settings → Export to back it up, or Import to restore it on another device/browser.

A minimalist to-do list with tags, categories, a calendar, and a context-aware AI assistant. No accounts, no passwords — just a name on first visit.

Stack

  • Next.js (App Router, TypeScript, Tailwind)
  • SQLite via Turso (libSQL) — same SQLite you know, but deployable on Vercel's serverless functions.
  • Groq for the AI assistant (llama-3.3-70b-versatile)

How identity works

There's no login. On first visit you're asked for a name, which generates a random id stored in localStorage (and a cookie as backup). That id tags every row you create in the database. Clearing browser storage effectively "logs you out" of that device — there's no recovery flow, by design, since there's nothing to recover.

Features

  • Quick add — type a task, use #tag and @category inline shorthand, optionally set a due date.
  • List view — grouped into Overdue / Today / Tomorrow / This week / Later / No date.
  • Calendar — month view with a dot on any day that has open tasks; click a day to filter the list to it.
  • Assistant — a chat panel that can see your current tasks (titles, tags, categories, due dates, completion state) and answer questions about them. It's read-only by design — it won't add or edit tasks for you, only talk about what's there.

Project structure

src/
  app/
    api/
      user/route.ts         # create/fetch identity by id
      todos/route.ts        # list/create todos
      todos/[id]/route.ts   # update/delete a todo
      chat/route.ts         # AI assistant endpoint
    page.tsx                # main app shell
    layout.tsx              # fonts + metadata
  components/
    Onboarding.tsx
    QuickAdd.tsx
    TodoList.tsx / TodoItem.tsx
    Calendar.tsx
    Chat.tsx
    RightPanel.tsx          # calendar/assistant tab switcher
  lib/
    db.ts                   # Turso client + schema
    identity.ts             # server-side header/cookie reader
    useIdentity.ts          # client-side identity hook
    api.ts                  # fetch helpers
    quickAdd.ts             # #tag / @category parser

f63c1e2 (Initial commit: Simply - minimalist to-do app with Next.js, SQLite, Groq AI) 384525ff301b1504bb1f98651ddbaa62dc048000

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages