Blog
Stories, insights, and lessons from building Fecit.
Adding memory to structure
What does it take to make people achieve more easily? After several wrong turns, the answer turned out to be: bolt time onto the structure Fecit already has.
One modal step, five problems
Just because the satisfaction step in our retrospect guide is a modal, five separate problems lined up after it. We eventually had to swap out RN Modal.
Likes, profiles, and one small UX correction
We added likes and a profile view to the community in one stretch. About the small decisions along the way — and the one I had to walk back.
Follow Is Subscription — So It's Asymmetric
The word "follow" actually carries two different meanings. Content subscription and social signal. Pick which one — and the design follows.
Rewrite Before It Breaks
The bookmark feature worked fine. But I could see exactly how it would break for a power user. So I rewrote it on the spot.
Split Daily/Weekly routines, then layered them onto the day timetable
Splitting a 1179-line screen pushed the shared utility out, and that utility brought routine backgrounds to the calendar's day view almost for free.
Refactored the Community tab into a side menu
Started with removing one Filter button. Ended up with a side menu, section switching, and a renamed Freeboard.
Putting Things Back Where They Belong
Moved a pile of menu items out of the "Me" tab and into their natural homes — Calendar and Checklist.
Hey Siri, Add a Task to Fecit
Wired up iOS Shortcuts and App Intents so a single voice command adds a task without ever opening the app.
The Day I Flipped the Default
I moved list item layout animations from 'on by default, off during transitions' to 'off by default, on only for the changing item.' Here's how I got there.
Another Day of Rejections
Continuing yesterday's efforts to make the focus slot stand out, I built and deleted a lot of things again today. Here's the log.
Closing the Day — Building the Daily Review Reminder
A look at the decisions behind a 22:00 reminder to do today's review — local vs server push, what 'completed' means, and a hidden gap in language settings.
Getting Technical Limits Acknowledged
Getting AI to say 'this can't be done with this tool' is surprisingly hard. AI leans toward 'we can do it.' Getting limits properly acknowledged turned out to be a skill of its own.
The Value of Abandoned Attempts
Working with AI, you pile up a lot of discarded attempts. They aren't wasted effort — they're information that reveals the outline of what to keep.
When Dialogue Becomes Questioning
Conversations with AI start as commands and end as questions. Not me asking AI — but AI's proposals asking me, 'why do you want this?' A reflection on those moments.
How to Refuse Suggestions
What I learned building a product with AI isn't the skill of accepting suggestions quickly. It's having the grounds to refuse most of them. The grounds for refusal become the product's philosophy.
The Language of Sorting
I added priority, difficulty, and satisfaction sorting to the Task Record list. But it wasn't just about sort order — it meant giving each axis its own visual language, and collapsible groups followed naturally.
I Built Six Animations to Emphasize the Focused Task, Then Deleted All of Them
A day of trying to make the focused task slot more visually prominent, building six different animations, deleting each one, and finally landing on an opt-in preference.
A Log of Rejections
I tried a bunch of things to make the focus item stand out more, and deleted most of them. Here's what I attempted today.
5 Task Management Apps That Go Beyond Simple Checklists (2026)
For tasks that need thinking, not just checking off. A look at five apps that treat tasks as more than line items.
How to Plan a Task You Keep Postponing
Why some tasks sit on your list for weeks, and a four-question framework that turns vague intentions into actionable plans.
Todoist vs Fecit — Which Task App Fits the Way You Think?
A detailed comparison of Todoist and Fecit. Both manage tasks, but they approach the process of getting things done from fundamentally different angles.
Start It, Focus It — The UX of Auto Focus
Why tasks automatically pin to the top when you start them, and the design decisions behind Fecit's auto focus feature.
The 0.4-Second Gap — Building Auto Focus
Implementing automatic task focusing on start and unfocusing on completion, and the timing, animation, and state synchronization challenges along the way.
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.