My Latest Book

Product Details

Also available on,, and other Amazons and bookshops worldwide! 

To Think About . . .
The actions of men are the best interpreters of their thoughts. John Locke
My Other Books

Product Details

Product Details

Product Details

The Pathway to Awesomeness

Click to order other recommended books.

Find Us on Facebook Badge

Search This Site

FV and FVP Forum > amFVP - A Simple FVP Web App

Hello everyone,

I created a small web app implementing FVP for my personal use that I'd like to share with you:

This will not be for everyone since it's specific to my taste, which means the workings of the system including the actual list stay hidden while the user gets a very reduced, focused view.

So far it only implements the basic selection algorithm of FVP. Once you added a few tasks, you only ever see one of two screens:

1) A choice between two tasks
2) The task you should do now

== Data Security ==

After loading the app from the server, no data is sent back to it. Tasks you enter are saved in the local database of your web browser. This means your data remains on your device at all time. The drawback is that for now, no synchronisation between devices or even different browsers on the same device.

== Keyboard Shortcuts ==

I prefer using the keyboard over the mouse, so here are some shortcuts:

Anywhere (except while adding tasks):
a - Add new tasks

While adding tasks:
Ctrl+Enter - Add the entered tasks to the system
Esc - Cancel without adding the entered tasks

While doing a task:
f - Mark the task as finished
r - Re-add the task at the end of the list

When choosing between two tasks:
1 - Choose the first task
2 - Choose the second task

== Feature Requests / Feedback ==

Feel free to report bugs and request changes here.

So far I have:
- Mark said one should have the option to view the whole list. I will add this in the next version.
- Jesse expressed the hope that there would be not feature bloat. To address this, the current version will be available at even after I released a new version. So existing users can choose to keep using the old version or to migrate their tasks to the current version at any time.

== Planned Features ==

- Show whole list for review
- Remove tasks
- Re-prioritize
- Synchronization - That is a big maybe, since I don't need it. (I have my private list on my iPad and my work list on my work PC, which is sufficient for me.) Plus it opens a big can of worms like saving your data in the cloud after all, you'd need an account and so forth. I'm open for suggestions.
May 26, 2015 at 21:13 | Unregistered CommenterAndreas Maurer
I love it, but cannot use it (yet?) If you can allow hyperlinks for items, I would be all set. Currently I use excel and keep data on tasks in onenote, linking to there. If I could keep the link but use this I would be thrilled.
May 26, 2015 at 22:22 | Unregistered Commentervegheadjones

I added basic URL parsing to the current version (not the one at /v1). This creates hyperlinks out of web pages and email addresses. Does that solve your problem? If not, can you give me an example of how one of your links looks like?
May 27, 2015 at 6:40 | Unregistered CommenterAndreas Maurer
Maybe some stats info:
Number of items cleared/deleted/re-entered today or this week.

Number of items open month to month...trend.
May 27, 2015 at 9:31 | Unregistered CommenterNico
Thanks for this! I actually love that it hides the list from you and just tells you what to do next. I'd previously been using Trello for FV/P but there's so many extra widgets on Trello that you just don't need.

I've used the Dropbox Datastore API before and it is pretty nifty, but of course it is deprecated... :-/
May 27, 2015 at 19:03 | Unregistered CommenterSean Fellows
Hi Andreas-

Very nice and it is along the lines of an idea I had to do for an app for the original FV (but apparently never got actioned!!).

You mentioned that one of your potential future enhancements would be re-prioritization. Is that to handle the part of the FVP instructions that allows you to make changes to your selected tasks like this:

INITIAL chain:
• Go to the bank
Learn to juggle armadillos
• Invent a new language
Solve world peace
Eat ice cream
• Put on pants
File TPS report
Hide from manager when TPS report is late

Using your app, after I complete (or re-add) the "Put on pants" task, I would then be faced with doing the "Invent a new language" tasks. According to Mark's instructions though, I should be making a new decision: Which do I want to do more, "Invent a new language", or "File TPS report" (and then decide between "Invent a new language" or "Hide from manager" if appropriate).

Am I making sense here? Is this something you have in the works.

Again, nice job!

May 27, 2015 at 19:11 | Unregistered CommenterPat
This is great! I have a few questions....

1. Just to be clear, will be the most up to date version, and will be the original version?

2. If I put a task into the original version will that task carry over to the newest version? And vice versa? I'm worried about losing my data. On that note, is there a way for me to export my tasks just in case the site goes down?

3. A long task tends to overcrowd or spill out of the box. I've got some long sentences and url's for some of my tasks and when they are in the box on the top, the text overlaps the text in the bottom box making both hard to read. I end up zooming in and out of my browser quite a bit.

Even if you do no more work on the site, I really really appreciate this. I'm using it and it's a joy. I'm happy to use the newest version and any new features you add. I hope you stay with a focused view, though. That's really helpful as far as being motivated to stay on the current task.

I know it's not a priority for you (and I already have my own workaround solution), but synchronization would be game-changer. I'd pay money happily.

Thanks again!
May 27, 2015 at 21:04 | Unregistered CommenterJesse
As far as re-prioritization as a feature, I saw Mark's quote here:

"I'm actually coming to the conclusion that one should re-prioritize only as a last resort. I kept yesterday's prioritization going today and found it works better. If something becomes urgent or needs getting on with, then it's best to cross it out and re-enter it at the end of the list, rather than upset what is quite a delicate balancing act by the algorithm."
May 25, 2015 at 18:37 | Mark Forster
May 27, 2015 at 21:34 | Unregistered CommenterJesse

Noted, but stats will probably have to wait until v3 or so.


Yeah, Dropbox would have been nice. What actually should work without changing too much in the current implementation is synchronizing with a couchdb or couchbase database server. Unfortunately, that is not as trivial for a normal user to set up as something like Dropbox.


No, re-priorization means removing all the dots and starting from the first task again. Initially Mark recommended doing that daily, which is why I wanted to do it automatically in the app at midnight. But as Jesse points out above, Mark changed his mind about the importance/usefulness of re-priorization, so it will be just a button one can press if the need arises,

The behavior you describe should already work in the app. i just added the tasks from your list, selected the three you marked and after finishing "Put on pants", it did ask me to choose between "Invent a new language" and "File TPS report". If that does not work for you, that must be a bug. In that case please let me now and I'll look into it.


1. Yes, that's how it is right now. The difference is not great between the two versions right now. i'll probably add the bugfixes I did to the v1 version and start v2 when I add the list management.

2. I have to make some changes to the internal data format for v2, so the data from v1 will not be usuable as is. I will give you a means to export your data (coming soon) and migrate it to v2 (coming with v2), plus I will never delete the date for v1, so even if something goes wrong or you don't like v2, you can just go to the /v1 url and everything will be as you left it.

3. I think I fixed that issue in the current version, can you check?
May 27, 2015 at 21:59 | Unregistered CommenterAndreas
"3. I think I fixed that issue in the current version, can you check?"

It's fixed. Thanks!
May 28, 2015 at 0:02 | Unregistered CommenterJesse
Andreas... Perfect!
May 28, 2015 at 2:35 | Unregistered CommenterPat
Okay. I updated v1 to contain the following additional features compared to the first post in this topic:

1. Automatic detection of http links and email addresses and making them clickable

2. Additionally, you can use this markdown-inspired format to create links of any kind:
[display text](url)
For example. "Click [here](" will be displayed as "Click here" and "here" will be a link ot While auto-detection only works for http:// urls, this method should work for all kinds of urls, for example omnifocus://, evernote:// or similar.

3. A very basic way to get the tasks you entered back out of the system:
Note that this does not include tasks that have been finished.

4. Minor bugs and styling fixes.

If you prefer stability, I recommend starting to use exclusively now. It will not be updated again with the possible exception of bug fixes.
May 28, 2015 at 21:19 | Unregistered CommenterAndreas Maurer
I'm now at work and using on a different computer, which has a different list, my work-related tasks. It remembered everything and that's great, but the key commands don't work and the issue I mentioned with the text spilling out of the boxes is back.

I'm assuming it's because I'm using Internet Explorer 10, and not Chrome like I was at home.
May 29, 2015 at 3:18 | Unregistered CommenterJesse

That sounds like Internet Explorer has cached the old version locally and is not fetching the new version. Try the following:

1. Go to and copy your task list (just to be safe)

2. Go to and press Ctrl+F5, this should empty the cache. If it doesn't work, try Ctrl+R, or press F12 to open the Developer Tools and select Cache->Empty Cache from its menu bar.
May 29, 2015 at 4:33 | Unregistered CommenterAndreas Maurer
Correction: Don't try Ctrl+r if you're currently on the "doing" screen, the r causes the task to be re-added. - That would be a bug. :-/

Workaround: Switch to the "add tasks" screen before pressing Ctrl+r.
May 29, 2015 at 4:45 | Unregistered CommenterAndreas Maurer
Bug fixed:

Ctrl+r (Windows/Linux) and Cmd+r (Mac) now reload the page instead of re-adding the task.
May 29, 2015 at 7:10 | Unregistered CommenterAndreas Maurer

I just want to say ditto to Mark's comment about your web app. It is seriously brilliant! I tried it out tonight after adding my very long list of items. I was going to make a few recommendations, but you already mentioned all of them in your comment of upcoming features you would like to add. I love the simplicity, but would like to be able to reprioritize the list at any point. Being able to see the whole list and bulk dismiss would also be nice. But it is already a very usable application as it is. I would also request the ability to view the history. That might be easier to implement than stats, but very helpful to review at the end of the day. Thank you for putting this together and sharing it with us!
May 29, 2015 at 8:30 | Unregistered CommenterBrad Mills
That worked. Thanks! Eagerly awaiting list editing to get rid of redundant tasks! Can I paypal you some money or something?

I'm planning to buy Mark's book as well to thank him.
May 29, 2015 at 9:48 | Unregistered CommenterJesse

Interesting you should mention money...
May 29, 2015 at 10:50 | Registered CommenterMark Forster
I believe you could use the Dropbox API (not their datastore API) to enable syncing between devices. That's how Fargo works:

It just stores regular files in your Dropbox account.
May 29, 2015 at 12:48 | Unregistered CommenterKevin Dangoor
Jesse, Mark:

I'm not planning to take money for this. In exchange I don't feel obligated to implement features that I don't find useful for my personal use.

If I did take money, it would be to cover costs (server costs if I were to implement my own server-side syncing, yearly account costs if I were to create a dedicated mobile app for the App Store for example, both of which are unlikely at the moment).

Plus I'd feel obligated to split the money with Mark, since my app wouldn't exist without his system. Which reminds me: I recently re-bought all of Mark's books for Kindle and don't need my paper editions anymore. If someone here wants "Get Everything Done", "How to Make Your Dreams Come True", and "Do It Tomorrow", post here and I'll send them to you as a gift. Conditions: You should live in the EU/UK and take all three of them (I don't want to ship them separately). First come, first serve.


Sounds interesting, I'll look into it.
May 29, 2015 at 13:19 | Unregistered CommenterAndreas Maurer
Small bugfixes for v1:

- Allow other common browser shortcuts other than Ctrl/Cmd+r (Most importantly Ctrl/Cmd+F and Ctrl/Cmd+A)

- If you were currently doing a task, it was missing from the export list under certain circumstances.

PS: How great is it that the favicon of is Clarus the Dogcow?
May 29, 2015 at 15:43 | Unregistered CommenterAndreas Maurer

Sorry, I wasn't aiming my remark at you. It was an attempt to nudge people towards the donation box in the right-hand margin. Since publishing FVP I have had a grand total of two donations (two more than for the rest of the year!).
May 29, 2015 at 19:22 | Registered CommenterMark Forster

No problem, I fully support that nudge.
May 29, 2015 at 21:22 | Unregistered CommenterAndreas Maurer
One little bug I noticed. 1 & 2 on the number pad don't work for options 1 and 2, but the numbers above the letter keys work fine. Might be me though.
May 30, 2015 at 7:14 | Unregistered CommenterJesse

It's not you, regular 1 and 2 and numpad 1 and 2 technically are completely different keys. I added handling for the numpad. Can you refresh your browser and try again?
May 30, 2015 at 8:05 | Unregistered CommenterAndreas Maurer
Andreas, that did it! I hope you don't mind the feedback...!
May 30, 2015 at 8:10 | Unregistered CommenterJesse

I don't mind at all. It gives me ideas and helps me discover problems I wouldn't have found myself. (My keyboard doesn't even have a number pad.)
May 30, 2015 at 9:06 | Unregistered CommenterAndreas Maurer
Big update:

Time for some serious browser refreshing. Being able to use an app to better develop the app itself is one of the perks of creating a todo app, I guess. I had a productive Saturday today thanks to FVP and here are the results:

1. will be a landing page in the future to host an instruction manual and to let you directly choose the version of the app you want. Most of that is yet to come, but the take-away is to directly go to /v1 or /v2 for the app in the future.

2. remains as it was as a fallback for everyone who has problems with v2.

3. now hosts the new version with some major new features. When you first visits, it creates a copy of your tasks from v1. From then on, the two lists are separate, which means if anything goes wrong in v2, you'll find your data untouched when going back to v1. The app is more complex now, so there is a larger probability of bugs, especially this early. You'll have to decide which one to use.

== New Features ==

- New layout. Less minimal, but still pretty minimal. I like it.

- A settings screen that for now allows you to

- Re-prioritise your list (as in "reset the pre-selection")

- Clear your list (as in "remove all tasks and start completely from scratch")

- A list view to show your whole list, and if you hover over a task you get

- An option to re-add/move it to the end of the list
- An option to delete the task

- When adding tasks, the text field start small now and automatically grows as you enter text. That looks pretty neat and fixes some weird scrolling behaviour on iPhone/iPad.

== Things Still Missing ==

The following things are still work in progress in v2 and I will address them in the next few days, hopefully tomorrow:

- Keyboard navigation for the new screens is basically non-existent. You can use the tab and enter keys to get around, but I'll add a lot more shortcuts.

- The list view is not very usable for mobile/touch devices, especially the iPhone. I think about a solution for that one.

== Next version ==

I actually did not change the data format yet, so in v2 there is still almost no metadata saved with a task, e.g. date added, date selected, date started, date finished. Also finished tasks are completely removed. To implement any form of stats, I need to change the data format for v3.

The data format is also something to consider when trying to add any form of synchronisation. I'm still not sure it can be done without saving anything on my server.

Well, that's it for now. I need to finish my day. If you have any feed back for the new features, or missing ones, let me know.
May 30, 2015 at 23:38 | Unregistered CommenterAndreas Maurer
Great update!! Thanks Andreas
May 31, 2015 at 1:53 | Unregistered CommenterNico
This is great! I was resisting my paper list because it's been getting kind of long, and scanning the list was feeling tedious. So I gave the web app a try and it made the whole process feel much faster and lighter, and really helped me get going today. So thank you!! :-)
May 31, 2015 at 2:28 | Registered CommenterSeraphim
Really great update! I've been using it all day. These upgrades are perfect! Thanks again for all your hard work.
May 31, 2015 at 2:42 | Unregistered CommenterBrad Mills
Thank You very much Andreas for letting us use your app.
As far as synchronization is concerned, I think that an import/export function with the conservation of the "selection" of items could solve the problem.
One could be able to export the list with pre selected items from one browser/device, send it to another one (via a few alternatives: email, dropbox, evernote, etc...) and start again from where he left.
This could also give the opportunity to have multiple lists, based on context, project, home/office, etc... the export/clear list/import functions could surrogate a more complex synchronization approach.
May 31, 2015 at 18:58 | Unregistered Commenternick61

This is kind of what I've been doing. I'm not sure if having two separate lists is more or less productive than two. I feel like the algorithm can handle contexts as well as anything else which is throwing up resistance to getting stuff done.

I do worry about my work context stuff getting buried in the back of the list when I'm at home and vice versa.

Still it would be nice to have one list and just let it sort itself out for everything. Right now if I think of a work task while I'm at home, I use Google Keep to capture it and then paste it into my amFVP when I get to work. So of course there are tasks on both of my lists about remembering to do that.
May 31, 2015 at 20:27 | Unregistered CommenterJesse
Looks like Mark has been testing the "exciting" question instead of the "want" question recently here

That leads me to a maybe dangerous request... A way to customize the question?
May 31, 2015 at 20:34 | Unregistered CommenterJesse
<< A way to customize the question? >>

I just do this mentally -- e.g., "if I could only get one of these tasks done today, which would I choose?" -- and it works fine.
June 1, 2015 at 4:46 | Registered CommenterSeraphim
Having it on the screen is pretty useful for me. If my brain or willpower is low, I often forget what I'm doing and having the question there to remind me is helpful.
June 1, 2015 at 4:54 | Unregistered CommenterJesse

I thought the same thing after reading Mark's comment. I added an option to change the question to the settings. As always, you may have to refresh your browser for it to show up.
June 1, 2015 at 8:42 | Unregistered CommenterAndreas Maurer
Added more keyboard shortcuts;

- s: Opens settings from main screen

- l: Opens list from main screen

- Esc: Now closes all screens that have a close button in the upper right and returns to main screen

- Down or j: Move downward through the visible buttons or list items

- Up or k: Move upward through the visible buttons or list items

- Delete or x: Same as clicking the delete button of the selected task

- r: Re-Adds the current task (either the current one on the main screen, as before; or the selected task in the list
June 1, 2015 at 20:07 | Unregistered CommenterAndreas Maurer
Really cool!

I'm running into a problem with my recurring tasks. It's not the app, it's just that I have a lot of routine tasks and the algorithm naturally starts looping them so that I'm constantly "re-adding" them, and I'm not going further up the list to the older items.

This is more an issue with my mindset and how I personally use the system. I'm going to try using version 1 for a while to see if I can figure out how to use the system without too much tinkering. The settings, changing the question, and even access to the list as a whole has me doing too many meta productivity tasks. (I have a couple of tasks which say to get rid of duplicate tasks!) I can go down a rabbit hole of productivity hacks, and the simpler, option free environment helps me cut down on that.

I'll let you know how it goes! If I feel like I can handle it, I'll move back to version 2!
June 1, 2015 at 20:36 | Unregistered CommenterJesse
I just ran into an issue. I clicked clear list on version 2 after exporting my tasks to a google document. I then emptied the cache and cookies and everything on both versions to start from scratch. I didn't want double the tasks in version 1. I then pasted my tasks from the google doc onto version 1. They stuck around and I started prioritizing. I closed and opened the site a few times and my data was still there. Now I go back and it's gone.

I'm pretty darn sure that I did something stupid myself, but any tips to get the app to remember to not dump my data would be great. I'm sure the last thing you want to do is play IT for a free app!
June 2, 2015 at 3:27 | Unregistered CommenterJesse
I also found a bug in v2:

While on the "add task" screen in Firefox and the text box selected, typing j or k will capture focus and select the 'Add Tasks' or 'Cancel' buttons instead of putting a j or a k into the text box. Right now I'm working around this by copy/pasting from an editor.

Please let me know if there's anything else you need.

Also, any thoughts on open-sourcing this? I'd be happy to contribute patches if it was under a FOSS license.

June 2, 2015 at 3:53 | Unregistered CommenterRyan Freckleton
Ok, weird. I restarted the computer and I go back to version 1 and all my tasks are back.

Ok. I'll just leave the tab open and hope that internet explorer is archiving it.
June 2, 2015 at 4:04 | Unregistered CommenterJesse
Ok, so with the data returned, I'm going through the list, making my decisions about which task I want to do more. (There's a lot because I copied the entirety of my task list. I know, I'm not too bright!) And of course I accidentally closed the tab. When I reopened it, it put me back about 10-20 decisions.

I'm assuming that it's just taking a while longer than I expect for it to "cache" the info and I need to wait for it to catch up. I'm crap at computers, as you can tell.
June 2, 2015 at 4:14 | Unregistered CommenterJesse
And now my data is gone again. Ok, I'll stop clogging up the thread with this. Luckily, I can use the paper version. And the Chrome version at home seems fine!
June 2, 2015 at 4:42 | Unregistered CommenterJesse

Sorry to hear about your troubles. As a web developer, my first guess is that you are faced with some IE10-specific problem. I guess using the latest version of IE or another browser is not an option at your work?

I'll look and see if I can find the cause and maybe a cure for your problems. If it's not too much trouble, can you let me know how many tasks you had and how many letters those contained in total? It might be storage-related.

Ryan Freckleton:

I fixed the bug, please refresh your browser.
June 2, 2015 at 5:20 | Unregistered CommenterAndreas Maurer

I don't think its a storage issue, the app has to adhere to a 250mb storage limit in IE10+.

It's highly unlikely that you exceeded 250mb with a pure text list.

It might be that your IT department configured your IE to be more restrictive.
June 2, 2015 at 7:15 | Unregistered CommenterAndreas Maurer
I'm thinking that's what it is. I'm just going to use my version one with my iPhone for a bit and see how that goes. I think Safari has a limit of 5MB on iOS for local data, but I'm assuming that shouldn't be an issue.

On the internet explorer, I pasted a huge list and there might have been some weirdness in the text.

This way I can also test having just one list for work and home.
June 2, 2015 at 11:19 | Unregistered CommenterJesse
Regarding the recurring tasks... (raised by Jesse earlier)

There are many recurring tasks I really just want to do once daily (or even less often). When that task is "potentially actionable", then I want it to show up on my list. But when I've actioned it recently, and don't want to see it again for a day or two, I'd like to "snooze" it so it doesn't show up.

This goes outside the scope of the FVP algorithm, of course. For most of Mark's systems, I've implemented this idea by keeping recurring reminders in a tickler -- either a paper tickler, or in Outlook reminders. When the tickler item comes due, I enter it into the list, and then snooze the tickler item again.

It would be really cool if this kind of snoozing could be done inside an app like amFVP -- but maybe this is the kind of feature creep you are trying to avoid. :-)
June 2, 2015 at 15:45 | Registered CommenterSeraphim
Little bug on version 1. When using Safari on iOS, The text: "Based on FVP Copyright 2015 Mark Forster" will sometimes appear in the boxes on either the decision or the "work on the following task now" screen.

June 3, 2015 at 2:20 | Unregistered CommenterJesse

InfoThis thread has been locked.