Geüploade afbeeldingen tonen in chatvenster
Geüploade afbeeldingen en bestanden moeten zichtbaar zijn in het chatvenster, zodat je altijd kunt zien wat er is geplaatst. Op dit moment verschijnt er wel een reactie, maar het plaatje zelf verdwijnt uit het overzicht. Het is handig om zowel afbeeldingen als andere bestanden in de chat te blijven tonen.
eenvoudig
Interactieve multiple choice en checkbox antwoorden in chatvenster
Voeg klikbare UI-componenten toe aan het chatvenster zodat de assistent structured vragen kan stellen:
- Multiple choice knoppen (bv. 'Aanpak A | Aanpak B | Weet ik niet')
- Checkboxes voor meerdere opties tegelijk
- De gekozen optie wordt als antwoord teruggestuurd naar de chat
Dit maakt de interactie veel natuurlijker dan altijd typen. De assistent kan deze componenten triggeren via een gestructureerd response-formaat (bv. JSON met type: 'choice' of type: 'checkbox').
hard
Chatassistent slimmer maken met gerichte vragen voor betere notities
De backlog chatassistent moet slimmer worden in het begrijpen van de gebruiker voordat hij een notitie voorstelt. Dit door gerichte vervolgvragen te stellen zoals:
- Welke aanpak past beter? (optie A vs B)
- Is dit een bug, feature of refactor?
- Hoe urgent is dit?
Dit kan via prompt-engineering: de systeemprompt uitbreiden met instructies om bij onduidelijkheid eerst te vragen, niet meteen een notitie voor te stellen. Denk aan een beslisboom-achtige flow: context verzamelen → oplossingen afwegen → pas dan voorstel doen.
medium
Uitlijning backlog linkerkant fixen na toevoegen checkboxen
De checkboxen voor bulk-selectie staan naast de cards en verstoren de uitlijning van de linkerkant van de backlog. Fix de layout zodat de cards altijd op dezelfde x-positie beginnen, ongeacht of checkboxen zichtbaar zijn.
Context:
- Checkboxen zijn altijd zichtbaar (geen hover/toggle)
- Doel: bulk notes verplaatsen naar project of verwijderen
- Checkboxen staan als los element vóór de card
Mogelijke aanpak:
- Geef het checkbox-gebied een vaste breedte zodat de cards altijd uitlijnen
- Of gebruik een flex container met `items-center` en een vaste `min-width` op het checkbox-wrapper element
- Zorg dat titels en metadata van alle cards weer op één verticale lijn staan
easy
Afbeeldingen en bestanden uploaden via chatvenster
Voeg ondersteuning toe voor het uploaden van afbeeldingen en bestanden (bijv. PNG, JPG, PDF) direct vanuit het chatvenster. De gebruiker kan via een knop of drag-and-drop een bestand toevoegen aan het chatbericht. Het bestand wordt meegestuurd met het bericht naar de AI (multimodaal). PDF-support bestaat al deels — uitbreiden met visuele preview van bijlagen in de chat-UI.
medium
Chatvenster uitbreiden naar meer pagina's
Het chatvenster is nu een zwevende balk op de backlog-pagina, maar wat mij betreft mag die ook verschijnen op de clusterspagina en op de activiteitenpagina.
eenvoudig
Scroll-gedrag backlog verbeteren na commit
Als een note gecommit wordt terwijl je op de backlog-pagina staat, schiet de hele pagina nu naar beneden naar de note die gecommit is. Maar de pagina mag niet meebewegen: de note verdwijnt gewoon uit de lijst, maar de scrollpositie blijft waar die was. Daarnaast wil ik dat er linksonder in beeld een pijl omhoog verschijnt zodra de gebruiker onder de fold komt, zodat je in één klik weer naar boven navigeert.
gemiddeld
Raketje icoon op verzend- en stopknop in chatvenster (web)
Het SVG-raketpictogram (consistent met iOS app) toevoegen aan zowel de blauwe verzendknop (tekst) als de rode stopknop (audio-opname) in het chatvenster op web. Momenteel staat er 'stop' op de rode knop — dit wordt vervangen door hetzelfde raketje. Zo is het visueel duidelijk dat klikken op het raketje de actie beëindigt én direct verzendt, en is de UI consistent tussen web en iOS.
easy
Chatvenster als full-height side drawer op desktop
Op desktop moet het chatvenster als een side drawer van de rechterkant inschuiven, consistent met de animatiestijl van andere pagina's in de app. Het venster beslaat de volledige hoogte van de pagina (100vh), zodat er voldoende ruimte is voor de chatgeschiedenis en invoer. De bestaande pagina-inhoud blijft zichtbaar links ernaast, of het drawer legt er overheen — afhankelijk van wat het best aansluit bij de rest van de UI.
medium
Chat-inhoud persistent bewaren tijdens en na sessie
De inhoud van het chatvenster (zowel ingevulde tekst als chatgeschiedenis) moet bewaard blijven tijdens de sessie én actief weggeschreven worden naar de server. Dit voorkomt dat een gebruiker een idee opnieuw moet uitleggen na een onbedoelde sluiting. Strategie: sla tussentijds op in local storage als snelle buffer, en schrijf async weg naar de backend. Bij heropenen van het chatvenster wordt de sessie hersteld.
medium
Chatvenster beeldvullend maken op mobiel
Op mobiel moet het chatvenster beeldvullend (fullscreen) worden weergegeven. Momenteel is het mogelijk om buiten het venster te klikken, waardoor de content verdwijnt. Door het venster beeldvullend te maken voorkom je onbedoelde sluitingen en verbeter je de focus tijdens het invoeren van een idee.
easy
Modellen dynamisch ophalen via API in chatvenster
Kunnen we de modelselectie voor de chat in To:Co — het chatvenster — zo aanpassen dat de beschikbare modellen dynamisch worden opgehaald via de Anthropic API en de OpenAI API, in plaats van hardcoded in de code te staan? Dat is handiger zodra er nieuwe modellen beschikbaar komen. Misschien kunnen we ook een polling-mechanisme toevoegen, zodat een nieuw model dat beschikbaar komt automatisch verschijnt in het chatvenster.
gemiddeld
Transcriptie bewaren tot bevestiging ontvangst
Soms gaat een teksttranscriptie via de chat mis, misschien door een verbindingsprobleem of iets dergelijks. Het is heel vervelend als dan je verhaal weg is. De oplossing: wis het geheugen pas op het moment dat de transcriptie goed ontvangen is. Tot die tijd blijft de transcriptie ook in het geheugen bewaard.
gemiddeld
Conversatie-flow toevoegen aan iOS app
In de iOS app van To:Co wil ik dezelfde conversatie-flow inbouwen als die we nu bouwen voor het chatvenster op de webinterface. De gebruiker moet een echt gesprek kunnen voeren voordat er een notitie wordt aangemaakt — dezelfde flow, maar dan native in de app.
complex
Visuele effecten (matrix, crystal, fire, ember, DNA) toevoegen aan chatvenster achtergrond (web)
De visuele effecten die al beschikbaar zijn in de iOS app (matrix, crystal, fire, ember, DNA) ook implementeren als achtergrondanimatie in het chatvenster op de webversie. Gebruiker kan een voorkeursstijl instellen via settings.
gemiddeld
Roterende werkwoorden tonen tijdens AI-response
In de chat, terwijl de AI bezig is met reageren, wil ik een effect toevoegen vergelijkbaar met hoe Claude dat doet: een reeks werkwoorden die continu wisselen, zodat zichtbaar is dat de AI aan het werk is. Die werkwoorden moeten thematisch passen bij plannen, productiviteit en organisatie — dus woorden zoals 'plannen', 'organiseren', 'prioriteren', 'analyseren', enzovoort. Het is een leuk visueel effect dat de wachttijd aangenamer maakt.
eenvoudig
Projectcontext automatisch meeladen in chat na projectherkenning
Zodra een project herkend of geselecteerd is in het backlog chatvenster, wordt de volledige projectkennisbank als context meegeladen in de conversatie. De AI heeft hierdoor direct toegang tot de projectbeschrijving en alle gerelateerde informatie, zodat antwoorden en kaartjesvoorstellen direct relevant zijn voor dat project.
medium
Automatische projectdetectie in backlog chatvenster
Na elk verzonden bericht analyseert de AI de conversatie om het meest waarschijnlijke project te detecteren. Zodra een project herkend is, wordt dit bovenaan het chatvenster getoond (bijv. 'Je werkt aan: To:Co development'). De gebruiker kan het gedetecteerde project altijd handmatig overschrijven via een dropdown met alle beschikbare projecten. De dropdown is altijd zichtbaar, ook vóór detectie.
medium
Chat blokkeren zonder API-keys voor Pro-gebruikers
Als een Pro-gebruiker geen eigen API-keys heeft ingevuld in de settings, wordt de backlog chat geblokkeerd. Toon een duidelijke melding met een directe link naar de settings-pagina om keys toe te voegen. Geen fallback naar To:Co keys.
easy
API-key beheer toevoegen aan settings voor Pro-gebruikers
Pro-gebruikers kunnen in de settings-pagina hun eigen API-keys koppelen per AI-provider (Anthropic, OpenAI). Zodra een key is ingevuld, verloopt alle chatverwerking via die key en niet via To:Co's eigen keys. Ondersteun minimaal Anthropic (Claude) en OpenAI (GPT-4o) als eerste providers.
medium
Modellenkeuze toevoegen aan backlog chatvenster
Voeg een modelselector toe aan het backlog chatvenster waarmee Pro-gebruikers kunnen wisselen tussen beschikbare AI-modellen (bijv. Claude, GPT-4o). De keuze wordt opgeslagen per gebruiker. Alleen zichtbaar/beschikbaar voor Pro-tier gebruikers.
medium
Transcriptie-statusfeedback tonen na verzenden audio
Na het verzenden van een audio-opname is er geen feedback dat er getranscribeerd wordt. Voeg een zichtbare tussenstap toe: toon een 'Bezig met transcriberen…' status (bijv. spinner, gedimd tekstpreview of statuslabel) terwijl de transcriptie verwerkt wordt. Inspiratie: Claude toont spraak al gedimd in het invoerveld terwijl je spreekt, en finaliseert pas daarna.
medium
Duidelijkere visuele feedback bij starten audio-opname
Het is niet duidelijk genoeg dat een opname is gestart — alleen een subtiel pulserend icoontje. Verbeteren naar een prominente visuele indicator (bijv. rode opname-indicator, animerende waveform, of een duidelijke statusbalk) zodra de opname actief is. Inspiratie: Claude macOS toont een opvallende oranje cloud + live waveform zodra de microfoon actief is.
easy
Meerdere notes tegelijk verwijderen in To:Co
Het zou fijn zijn als je meerdere notes tegelijk kunt verwijderen. De toggle- en verplaatsfunctie kunnen we daarvoor hergebruiken. We moeten alleen een verwijderknop toevoegen. Misschien kan dat in de balk onderin: als je meerdere notes hebt geselecteerd, krijg je ook de optie om ze te verwijderen.
eenvoudig
Chat blijft open na toevoegen kaartje
Na het accepteren van een kaartje via de chat wordt de hele chat gerefresht/gereset, waardoor de overige voorgestelde kaartjes verdwijnen. De chat moet open blijven staan na het toevoegen van een kaartje, zodat de gebruiker ook de andere kaartjes uit hetzelfde gesprek nog kan opslaan. Het geaccepteerde kaartje mag wel visueel worden gemarkeerd als 'opgeslagen', maar de rest van de conversatie blijft intact.
medium
Chat input redesign naar Claude-stijl inputvenster
Herbouw de chat input in de backlog assistant naar een Claude desktop-achtige interface. Onderaan een strak inputvenster met:
- Links een **+** knop voor document/bijlage upload
- Rechtsonder een **microfoon-icoon** voor audio-invoer
- Nette multi-line textarea die meegroeit met de tekst
- Verzendknop rechtsonder
Styling volgt het bestaande To:Co thema (kleuren, typografie, border-radius).
medium
Nieuwe note aanmaken via chat interface backlog
Op de backlogpagina in To:Co wil ik een functionaliteit bouwen waarmee je via een plusknop direct een nieuwe notitie kunt aanmaken — ook vanuit de backlog zelf, prominent bovenaan. Het gaat om een chatinterface waarmee je een gesprek voert zoals hier met Claude (via Sonnet, of misschien ook andere modellen). Vanuit dat gesprek komen dan concrete notities, goede prompts en to-do-items tot stand.
complex
Servers testen voor quotes en daily summaries
Ik ga testen of de servers die we net hebben gebouwd voor de quotes en de daily summaries nu goed werken.
eenvoudig
Commits en note matching verbeteren in To:Co
Ik wil nadenken over de manier waarop commits worden gedaan, want dat gaat nog heel vaak mis. Ik wil dat strakker aanpakken en daar hulp bij. Dit betreft To:Co. Daarnaast gaat ook de matching van notes naar de juiste projecten nog steeds vaak fout.
gemiddeld