Omnicodoro – Building a Complex App in Coda

Welcome! I am sharing my Coda doc, as a template, so that others can learn from what I have done, and hopefully others can also contribute to the doc in meaningful ways.

For reference, I have been building this doc for the past 6+ months, and converting this doc into a template (including making the “Info & Guide” page) took about 16 hours of work. I appreciate questions or comments, but please read the “Info & Guide” section of the doc in full first, because I explain a lot in that section.

Main Features

  • Project and Task Tracking
  • Time Tracking (Pomodoros)
  • Repeating Tasks
  • Collapsible Nested Projects

The Omnicodoro Template

Video Walkthrough

Feedback for Developers

Templating a Coda Doc

HAVE YOU TRIED DOING THIS YOURSELF? Sorry… It’s been, like, 4+ hours of just trying copy my data from one doc to the other JUST to clear the history. Countless doc crashes, browser freezing, broken formulas, and many minutes of "uhhhh, do I restart now? or wait a bit… Simply deleting my data is not enough when you keep track of a doc’s history, AND you don’t let us delete doc history.

The Proposed Solution: A Coda user wants to share their doc with the world, but the data is sensitive. They click the context menu next to the doc title, and underneath “Copy doc” is “Template doc”. This option does the same thing as “Copy doc”, but it then clears the document history.

The Current Solution: For those of you wondering how I created a template of my document, I copied all content into a single page, and then copy-pasted into a new Coda doc, thus avoiding moving my history too. I had to delete all of my data from the tables first, otherwise it kept crashing. I’m sure smaller amounts of data would work, but it was not feasible for me given the formulas I had running against the data.

Template Mode for a Doc

There are some things that separate a regular Coda doc from a template Coda doc. Here are my thoughts on how Coda should support this (given that sharing templates is half of the fun).

Document Temporal Context: When a template is created, it is meant to exist in a particular place in time. A template is not a live document. Every new visitor is designed to view the template as if the creator had JUST created it. So, I propose that a Coda doc in Template Mode should have a “Document Date” option, so you can freeze the date that the Coda doc thinks it is. This would make temporal views useful beyond the exact date the template was created.

Understanding Formulas & Columns & Rows, and their Usage

Try creating a complex document with many formulas, then leave it alone for 6 months, and then come back and try to remember which formulas are used where. I tried cleaning up my doc before posting it as a template, but understanding which formulas, columns, and rows are being used or reference elsewhere is near impossible. I did my best with guesswork, and had to correct broken elements where I realized I had made mistakes. Please make this traceability better.

Summary

Thank you for taking the time to read through this post, and hopefully my “Info & Guide” page as well. I am grateful to the Coda team for building such an amazing application ecosystem, and grateful to the community for helping me understand and implement on these concepts.

Let me know if you have any questions, comments, complaints, etc., and I will get back to you.

Lloyd

43 Likes

Holy hell that looks complicated, but also impressive!

••••••••••••This is amazing!•••••••••••

:star::star::star::star::star:

I just watched the video, and I’m even more impressed. This may be the best personal task/project tracker on Coda and the most well thought out work flow I’ve seen. It is exactly the type of system that I’ve been trying to find in countless apps (Nirvana, Omni, Thing3, Anydo, Nozbe…the list goes on and on).

Package this up Lloyd.

2 Likes

Haven’t watched the whole video yet, but again, that’s some monumental work!

Speaking of templates and specifically the “sample data will expire with time” problem. A super-easy solution will be to:

  1. Introduce a boolean variable indicating whether it’s demo mode or production.
  2. Introduce custom named formulas for Now() and Today() that show an arbitrary value when in demo mode, and true value when in production.
  3. Base all time-dependent formulas on those.

Also what I like doing is adding a “Nuke the doc” button somewhere that would clean up all the sample data and reset the doc to its sterile state.

But yeah, a simple way to nuke the history would be super cool. I just made a doc for myself for tracking my Coda consulting gigs, and I’d like to share it eventually without leaking my clients’ info (especially since Coda is launching a platform for such gigs, and other makers could make good use of my template).

1 Like

Hey thanks for the positive feedback. I’m actually building this plus a couple more key features in a VueJS app in my spare time. Unfortunately, there is not much free time… I’ll definitely reply to this thread with the functioning replica if I ever get it up.

Lloyd

3 Likes

Hey @Paul_Danyliuk, I did consider doing this. However, the formulas are already complicated enough, that I didn’t want to add in more logic just so the demo looks good. That, and I had dedicated enough time to this project already.

Good idea though. I wish it was integrated already into Coda.

Lloyd

That’s a great doc @Lloyd_Montgomery!!!

The write up and video is fantastic! Thank you so much for sharing with the community!

Some of my favorite features are being able to hide the tasks for a project, which helps for not feeling overwhelmed when looking at your whole day, and the :heavy_check_mark: and :heavy_multiplication_x: showing the button state. Great styling on top of great features!

Very well done!

1 Like

This is a beautifully constructed doc @Lloyd_Montgomery. Would you be open to publishing the template in our template gallery as well?

Regarding your feedback on understanding formulas, this is something I face pretty often in spreadsheets and in Coda as well. Have you encountered examples from other platforms where traceability helps you with “picking up where you left off?”

1 Like

Hey @Al_Chen_Coda,

Publishing the template in your gallery for me to see is certainly something I am up for. What needs to be done to do that?

For traceability, I don’t have any clear examples in my head, I already like Coda’s DocMap and perhaps it is almost there in providing this full functionality. As far as I know, the DocCamp doesn’t allow for you to see—at a column level—where data is being used. It shows which tables are referencing other tables though. Is there something I am missing?

Lloyd

I’ll message you separately about what’s need for the template gallery :). You are correct that the Doc Map doesn’t allow you to see where data is being used at the column level. You can, however, see formulas you’ve created in the canvas (which isn’t that helpful in this case given you want to see how tables are connected by their formulas):

+1 for accessible list of dependents at the column level. Was itching for this today, actually.

@Lloyd_Montgomery @Al_Chen_Coda

1 Like

Hi All,

To those interested in the template “working” in an active and useful sense, I have taken a screenshot of the most powerful feature of this template (in my opinion). After a slow week of work, I checked in on my progress towards my projects, and this is what is displayed:

From this you should get an idea for how my daily/weekly tracking looks when you have many Focus and Active projects you are tracking.

Lloyd

3 Likes

Brilliant document, thanks for sharing

1 Like

Brilliant work and thank you for detailed explanation.

2 Likes

This is incredible work @Lloyd_Montgomery, so many amazing ideas, cleverly implemented.

Respect! :facepunch: :slight_smile:

This is wonderful & demonstrating Coda possibilities that many would desire, I wonder if with the help of the community, this can be turned into a multiplayer user for a team for paid work spaces.

I thought of a few additions that would make a very game changer, however, peeking into the formulas and the var DBs, I realized this is beyond my humble technical depth, and found the “theme” fuzzy, but would love to see Omnicodoro 2.0 for the OCD, i’ll leave the reasons for the suggestions to your imagination, please let me know if this is possible or not:

Introduce a " Master Delegator " section

  • Owner - Assignee - reviewer ( People/Alias layer ) that could be cross-doc imported from HR doc.
  • Departments layer VS. themes ( squad layer )
  • Task Subtype ex: " Support Ticket , User Story, Meeting, CRM Activity, SysAdmin, Other, " whose each can have additional unique attributes that appear in view based on filters.
  • Columns to associate OKRs cross-doc imported from Strategy doc.

Introduce "My View"
Using this.user() capabilities a dynamic console can be dedicated for team users on this doc.

A Team Retro view would be :crazy_face:
Adding a Pomodoro sub select for flexible size layer like Small, Medium, Large to count 15,30,60 min blocks

Adding burn down, Gantt charts, for projects and introducing 2wk sprints into the capacity variables mix.

Utilizing the comments & mentions section on an expanded row can leave the document a super Hub for cascading team and organization goals.

What do you think ?

1 Like

Hi @Khalid_Zamer,

Thank you for the time spent looking through this doc. I appreciate that you have found some desire to use it.

All of the features you mention are probably possible, particularly if they just involve more data or different views. However, what I found with my Coda experience (and in particular this doc), is that as I make things more and more personalised to my desires, the formulas become harder and harder to manage, and I start to lose control over things such as readability (because of lack of formula editing features, see Formula Formatting - WE HAVE NEWLINES), but also computational speed and rendering issues.

Coda is great because it convinces people that they can build anything, which is almost true. However, they mean “anything” unless you are a true power user. Truly powerful and customised docs are slow, hard to maintain, and now with the new pricing model, will cost you 30$ a month.

While your features make me excited to get back into Coda and improve my doc, I just can’t justify 30$ a month as a student. As someone in the software field, I believe in paying for the tools I use. For that reason, I already have 65€ a month in subscriptions. As powerful and fun as Coda was to use, Todoist offers an 18€ a year plan for students that just makes sense. I really have to watch where I put my time and money to not overload myself, and Coda is just not that place right now. I am interested in coming back in 2-3 years when Coda has some more central features such as native apps, notifications, better UX (formulas…), and an appreciation for large docs that don’t slow down.

PS - If you invest some time into learning about my doc and starting your own, I’d be happy to set aside time to dive into your doc when you are having issues with formulas and such. That was one of my favourite parts of the Coda community: helping others.

Thank you again for your time, I hope you find the time to dive in and make this doc yours,
Lloyd

4 Likes

Amazing work! I feel overwhelmed by the amount of work you put in this doc :smile:

@Lloyd_Montgomery I think you deserve a premium coda account free for life! but its not my decision hehe! maybe a gentle request to the codans would help :wink:

Good things you pointed out and I’ve been using the doc for a week now and getting in the zone, now its on a special tab when I wake up until I sleep, thank you so much for it! the Master section is a Masterpiece, and now adopting the PDs to track my productivity, I’m experimenting with adding "assigned to/ People alias " and considering tasks dependencies next to invite the team gradually.

The way I see it in terms of cost, it allows me to totally abandon other apps and manage time for value that exceeds the doc maker fees, and will stay in touch with you for help, thanks for your efforts Lloyd🙏 .

3 Likes