Blog
Stories, insights, and lessons from building Fecit.
Trying to add a tiny review marker — a yellow palette rewrite and an API bug
What started as 'show which tasks have a retrospect written' became a full SECONDARY palette overhaul and a backend sync bug fix.
A Landing Page Without a Story
The page had good pieces but no structure. Adding sections, rethinking copy, and learning that a landing page is a conversation — not a list.
Created on Friday, Registered on Wednesday
A bug I found while demoing to my son. It was a long commute.
Making 20 App Store Screenshots Without a Designer
How I built App Store screenshots with Claude and Python Pillow — gradient backgrounds, logo placement, and the copy that took the longest.
Making AI Subtasks Appear One by One
Parsing OpenAI streaming responses in real time and delivering them to the client via SSE, so subtasks show up as they're created.
Finding First Users — Marketing an App That's Hard to Explain
An honest account of trying to find users for a task app that's intentionally complex. Reddit filters, Google Ads, and learning to be honest about what Fecit is.
ASO Journey — Rewriting Everything from the App Name Down
How we rethought fecit's App Store title, subtitle, keywords, and description from scratch. An honest log of the ASO process.
Guide Mode Animation — All I Wanted Was a Simple Slide
Adding a slide animation to GuideBar turned into a battle with SafeArea, keyboards, and mount/unmount timing.
When the App Speaks — Conversational Guide Mode
Building a guide mode that walks users through task creation like a conversation. The fecit icon asks questions, encourages, and wraps up.
Putting a Price on Preparation
Adding cost tracking to preparation items — unit price vs total, free-text currency, auto-calculation, and default currency settings.
Wait, Which Field Am I Editing?
Implementing focus highlighting for editable fields in a document-style task editor.
Your Content Shouldn't Vanish When the Network Does
How we built an AsyncStorage-based draft system to protect user content from network failures — without changing the UX at all.
Dragging Multi-Day Events in a Daily Timeline
How we improved drag & drop for multi-day events that extend beyond the visible day in a daily timeline view. Clamping, resize handles, and visual feedback.
Is a Day Always 86,400 Seconds?
What looked like a Hermes engine crash turned out to be a one-line bug in addDays.
Between Now and Where You Want to Be — Three Lines Is Enough
Gap Analysis sounds like a business framework, but it's really just three simple questions.
One Icon, One Comment
Adding icons to field labels and comments to Tasks — small changes that make a real difference.
Reminders Were Easier Than Expected
Adding pre-start reminders to tasks. Turns out a single computed field was all it took.
Auto-Scroll During Drag: Harder Than It Looks
Implementing auto-scroll while dragging inside a ScrollView. Three failures and one success.
March Update: App Review, Calendar Crash, and Desktop Improvements
From Apple review rejection to Hermes GC crash debugging and a major Desktop UI overhaul. Two days of work.
First Milestone Complete — Fecit Through AI Eyes
A reflection on Fecit's first milestone from Claude Code's perspective. Exploring the codebase, building together, making mistakes, and arriving here.
Adding Photos to Preparation Items
Materials, tools, and venues can now have photos attached. Reusing the existing attachment pattern while adapting it for preparation item context.
Controlling Section Visibility
Sections were piling up and making the screen feel heavy. We built per-document and default visibility settings — for sections and preparation categories alike.
Refining the Preparation Section — From a Shared Model to Category-Specific Separation
We were handling five categories with one PreparationItemModel. We split the models, screens, and components — and fixed a cache bug along the way.
Building the Project Assignee Feature
The server was already prepared. Adding UI, building a search screen, and filling in the missing data.
Why Weekly Routine Notifications Stopped Working
Daily worked fine. Weekly didn't. The cause was a single empty field.
Rebuilding the Address Input
After two days and ten different approaches, we stopped solving the problem and removed it instead.
Address Autocomplete vs. The Keyboard
Why tapping a dropdown while the keyboard is up is unreasonably hard in React Native.
Implementing SSE Real-Time Sync
Adding SSE to a FastAPI server and connecting desktop and mobile clients — the problems we hit along the way.
Syncing Mobile and Desktop in Real Time
How we chose SSE to keep two clients connected to the same API in sync.
Making the Desktop Calendar Feel Alive
Drag-and-drop across three views, guide lines that follow your cursor, optimistic updates, and the design shift that made everything more readable.
Adding a Sense of Place to Your Tasks
Building address autocomplete with Apple Maps API, map previews, and the unexpected TextInput bug along the way.
Labels as a Lightweight Classification
When tasks pile up, you need a way to classify them. The story of building a flexible, lightweight tagging system alongside projects.
Refine, Refine, and Refine Again
The story of rewriting a single line on a landing page over and over. There's no finish — only refining.
Connecting things, and the challenge
Easy and hard. Solo and team. Familiar and new. Can one app really bridge them all?
Realigning the landing page message
There are plenty of todo apps. Why Fecit? To answer that, we rewrote the entire landing page.
Building a desktop app with Tauri — 3 hours of despair
Why is the icon so big? Why won't the window move? The most frustrating 3 hours of building a desktop app with Tauri.
Deploying Fecit for the web
Server setup, proxies, and the Apple/Google login struggles of bringing a mobile app to the web.
75% bounce rate — rebuilding the landing page in a day
139 visitors, 75% bounce rate. A record of how we rebuilt the landing page to improve conversion.
Which todo app should you use?
Todoist, TickTick, Things 3, Microsoft To Do, Apple Reminders. And Fecit. Honest thoughts after trying them all.
Routines Now Have Days
From daily habits to weekly routines. Building the weekly routines and the decisions along the way.
Working with Claude Code
I'm pair programming with AI. How I actually use it, what's great, and what's not.
Where We Use AI
What AI does in Fecit. Recommendations, generation, suggestions. Things still being figured out.
Anatomy of a Task — How a Task is Built
From a single title to retrospect. The story of designing the structure behind one task.
Building a Drag & Drop Calendar from Scratch
No libraries. Infinite scroll, timeline views, and drag-and-drop scheduling — built from zero.
The Step Indicator — A Small Map Inside the List
Adding a git-graph style flow diagram to the subtask list. Lanes, bezier curves, a blue dot — and a lot of trial and error.
Building the Subtask Graph
What if you could see the flow of your tasks? The story of building an interactive graph editor — and stumbling through it.
Minimal to Maximal — The Design Philosophy Behind Fecit
Building a structure where a title is enough, but depth is always available. The story behind the effort.
Templates as a Tool
Where do you put the experience you gain from finishing tasks? The story of building templates as a tool for growth.
About Fecit — It Is Done!
Fecit means 'It is done' in Latin. The story of why this app was built and where it's headed.
Here We Go, VauDium!
From VolunTas to VauDium. A domain we couldn't afford led to a name change — and a new direction for the company.