Skip to main content
← Home

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.