whelton
As a solo developer, I avoided building a desktop app for months, mainly due to worrying about the maintenance overhead. I built the desktop app within a single day with ToDesktop Builder, and there has been no notable maintenance/overhead since (other than me over-engineering some features/enhancements).
ToDesktop's deployments are super smooth. The API and docs are pleasant to work with, which made integrating Conjure's habit and time tracking through the menu bar, native notifications, and multiple windows fairly straightforward.
I did worry about the performance and resource consumption with Electron-based apps, but the Apple M1/M2 Chips absolved that concern. Most of my users (mainly Mac and Windows) don't seem to mind/care/notice the Electron nature of the app.
Disclaimer: I'm also friends with the founder, he's from the same town as me in Ireland.
I've focused more on metrics, behavior, and achievement, with a rules engine for automatically completing habits and goals off those.
As you identified, the biggest obstacle for users has been the friction and overhead of tracking at scale. Integrations and automations have decreased that a lot. Transforming unstructured input through AI is super promising, and probably will make it more accessible to people who are less of the power-user/productivity-junkie persona type.
I’ve been using https://akiflow.com/ for tasks for several months now (I switched from Omnifocus) and I love it.
I also use https://one-sec.app/ on my phone to add friction to opening apps I want to limit time on and try reduce distractions.
I’ve been using https://akiflow.com/ for tasks for several months now (I switched from Omnifocus) and I love it.
I also use https://one-sec.app/ on my phone to add friction to opening apps I want to limit time on and try reduce distractions.
Just released a free plan, after a mere 2.5 years of solo and bootstrapped dev.
Feel the primitives are in place now (even down to a Habit version control system for the rules engine) and have daily users who are getting value, so focusing now implementing user feedback and trying to get it out there (as have done no real marketing), before I tackle the next big feature I'm excited about.
Building it solo and bootstrapped I ensure I track a minimum amount of time every day to maintain momentum.
It's focused on personal objectives, habits, time and behaviour tracking. It has also has an API and several integrations (including Health Kit).
For some of the methodologies you can implement with it (eg time based goals and habits), check out the guides[1].
I explored a variety of things prior including Habitica, Beeminder, Forte, Everyday, Nomie (all excellent and strong in various dimensions).
Some of the use cases I had were:
- Be real time across web and mobile
- Keyboard shortcuts and a command Menu
- Automatically completing habits through rules and automation
- Have time based Habits (eg do 30 mins of reading a day)
- Habits be linked to Objectives/Goals and personal KPIs
- API and integrations with Apple Health, Zapier and others
- Variations of Habit Completions (eg Sick Days, Emergency Modes, etc)
- Different views (eg Day View, Week View)
- Dashboards and reporting
I’ve been using Conjure to build Conjure for myself these past 2 years, bootstrapped and solo.
It fits my daily needs and those of a growing community of users, but I learned in the process, different solutions work best for different people. Some people want a very simple solutions to track 2-3 habits a day, others want to track 18 things a day in a sophisticated manner.
Having worked with Vital’s API and Webhooks, I am so excited for our use of it in Conjure to go live. I really love their normalization of data (such as sleep[1]).
I build Conjure[0], a habits and goals platform, solo and bootstrapped, and have worked on it for 496 days in a row (at the time of writing) and have tracked over 3000 hours of development on it.
I have a daily habit[1] to do at least 1 minute of work a day (also known as a 'Habit Emergency Mode') to maintain a sense of momentum and progress. This helps me through my 'off days', have no 'zero days', and reduce negative emotions associated with the process.
Starting off, I had to manage my expectations and accept it may be a 2 year journey before I started getting any traction, and would commit to 1000 hours before I allowed myself to second-guess myself. I used objectives (within Conjure itself) to track these various time-based objectives.
As you can't always control the outcome, but you can control the process, I focus on making the activity the reward and enjoying the process[2] as best I can, even if I have to go slower at times.
Keeping in mind "you are a product of your environment, " I generally try to consume material and be around people with similar values and ambitions for motivation and peer accountability. I have tracked personal KPIs at various times to ensure I do this enough.
[1] https://conjure.so/guides/time-based-habits-and-objectives
I’m building Conjure[1] a habits, behavior and goals platform, so I track everything from ‘habits’/‘productivity’/‘quantified-self’ type keywords, to people looking for alternatives to XYZ product name, to specific questions I’ve answered before (eg organization, time tracking, building exercise habit, achievement, etc).
This varies by habit, but includes tracking at least one minute of work on a project per day, or just going for a walk if don’t have the energy to workout.
I think one has to manage expectations and factor ‘off days’ and ‘rest days’ into their model of productivity and routine.
I treat myself like a server with a bad uptime SLA. I aim for >= 90% adherence to habits, which over a long time horizon compounded is pretty meaningful.
I wrote a guide around this for a product I’m building if of interest: https://conjure.so/guides/habit-completion-types
From building in public, I have built a waitlist, gained customers and built a modest following for Conjure's Twitter account. A decent number of people are more interested in following the journey, rather than becoming a user.
While I've mostly optimized for building and learning to date rather than growth, I haven't worried about the cadence of posts nor let it overly distract me.
I've output more content when it has served me (eg get users) and less when I've been focused on development or implementing learnings.
For me there has also been a catharsis from building in public, having leaned into the transparency and vulnerability aspect of it. I used to be very concerned with what people thought of me. It feels like such a relief to openly share metrics (currently ~$800 MRR) and celebrate each minor win, without self-diminishment.
After this major update I'm finishing up, I'll now go more frequently on comms and growth as it can better serve me now, given the substantial product development now done, learnings implemented and evidence of the product providing value having had daily active users for several months now.
I imagine for legacy support or business reasons they maintain the OAuth API, but I too wish they add granular repo support to the OAuth API and existing tokens were migrated to an all repos scope, while new tokens were encouraged to be per repo scoping.
GitHub has 'OAuth Apps' and 'GitHub Apps' [0]. The former's scopes do not permit such granularity (eg the `repo` scope gives access to all repos of the account [1]).
The latter is much more granular, allowing the user to select specific repos to grant permission [2]. The 'GitHub App' owner can see their installations and also determine if the user chose access for all repos or on a per repo basis.
Netlify does such granular installation and will prompt you if you don't see your repo listed in their dashboard to check permissions.
[0] https://docs.github.com/en/developers/apps/getting-started-w...
[1] https://docs.github.com/en/developers/apps/building-oauth-ap...
[2] https://docs.github.com/en/developers/apps/managing-github-a...
1. Personal Todos
- - I use a Omnifocus[0] like webapp I built for myself
- - Every item has a date (even if I have to push it back when time comes)
- - Certain ongoing items will have a link to a Roam[1] page with more details (which is great as can collapse blocks of text, embed files, etc)
- - I have a "Backlog"/"Some Day" list of items I want/need to do, but don't have a clear date yet, I review this once a week
- - This system provides my day plan
2. Recurring Daily & Weekly Habits
- - I use Conjure[2] (disclaimer I've built this)
- - This includes habits such as daily planning, weekly planning with 'Backlog' review on Mondays, or weekend planning on Wednesdays
3. Per Project Task System
- - Each project has it's own Linear or Trello project/board
- - I keep a separation between Personal and Work/Project tasks, but sometimes will reference Work items in my Personal tasks if important
4. Comms List
- - I keep a checklist of various comms channels (email, slack, whatsapp, twitter, etc) that I periodically work through 2 - 4 times a day, to ensure I didn't miss anything, or can close that 'loop' for a few hours
I generally triage and balance time across items based on expectations I've set with others and my own goals. I use time tracking (in Conjure) and blocking to understand if I'll deliver on time, and reprioritize accordingly.
Lot of the above is influenced by the book "Getting Things Done".
[0] https://www.omnigroup.com/omnifocus/ [1] https://roamresearch.com/ [2] https://conjure.so
- Health & Well-being: Step count (Apple Watch). Weight (Withings Scale). Meditation minutes. Sleep (Whoop). First sunlight exposure (circadian entrainment). Lunch and dinner times (circadian entrainment). Water consumption.
- Work: Time spent on Conjure. Time spent on client work.
- Self Development: Books read. Time spent reading. Time spent consuming inspiring material (mindset).
I mostly track them manually or automatically in Conjure[1] (disclaimer I'm building it) and then link them to Habits and Objectives in it.
I also tend to add and remove different measures/metrics at different times based on what is going on in my life, or pause certain ones for a while if I'm burnt out and need less overhead in my day-to-day.
Rewriting from Ruby to Go, some benchmarks for calculating long streaks showed going from ~5 sec to ~0.04 sec [2].
Conjure's habits use the iCalendar Recurrence Rule format (RRULE [3]) for their frequency, along with one or two other considerations (like Habit Completion Types and streak effects), which makes evaluating streaks more expensive (as you have to work backwards through habit completions one by one based on the next occurrence).
Data is still fetched from Postgres in Rails and passed to the compiled Go library and Ruby/Rails handles the results (persisting, notifying over web sockets, etc)[4]. I modified Conjure's Heroku buildpack to install Go and build on deploy.
No doubt there is further optimizations that can be made, but this approach has allowed me to sprinkle Go into a Rails app and progressively optimize certain things when needed.
[1] https://conjure.so/ [2] https://twitter.com/Whelton/status/1370482793558458370 [3] https://icalendar.org/iCalendar-RFC-5545/3-8-5-3-recurrence-... [4] https://jondot.medium.com/ruby-and-go-sitting-in-a-tree-38c1...
I have a recurring task to create a weekly plan on a Monday (in Notion) and then review my progress on it on Wednesday and Friday, course correcting accordingly.
I do a day plan first thing most mornings. I plan my day in hourly blocks (9am → 10am: Call X, 10am → 11am: Project A, 11am → 12pm: Project A + Laundry, etc). I populate it with items from my calendar, task list, habits list and weekly goals (outcome based or time based, such as spending 10 hours on Project B).
I create the day plan, either line by line in a notebook (1 line per hour), or in the Mac OS Stickies app, or create events in my calendar, depending on how the mood takes me, and keep it visible all day (either open on a secondary monitor or having the notebook open on my desk).
Web app to browse all Instagram pics & download favs in fear of FB nuking them
Regarding abuse, people using it as a glorified babysitting service, etc. We have a rule that if a kid is 12 or under, they must have a parent or guardian there responsible for them. As we're extremely over booked (waiting list of 200 in Dublin), we reserve spots for extremely interested kids, who keep coming back and producing things and leave other slots open. If a kid is being disruptive and won't stop, we tell the parent to calm them down (Extremely useful when working with kids that have autism as some have behavior issues that parents can address there and then)or to take them home.
To date, running it for free has worked extremely well and in every Dojo, theres been little, if no issues. People are volunteering, giving up their time for free and volunteers are normally blunt with parents if its being abused.
We try to remove as much financial dependency from CoderDojo so its easier to set up anywhere and run, individual Dojos can arrange donations or sponsor if they want. In my case, I'm looking for some assistance if people want to give it, helping me setting them up.
@thepreacher thats awesome that you're starting something! If you want a hand please drop me an email: [email protected], theres definitely some advice on things we've learned and resources we can give you!