🗿 Project Showcase: MoaiTime

4/12/2024 at 9:49:20 AM • Updated: 4/28/2024 at 1:10:56 PM

For my third blog post, I though I would present the project that I have been working on for the past 6 months, called MoaiTime.

MoaiTime is now open-source! You can find the repository on GitHub.

Calendar

Plan your day, week, or year—without the paper cuts!

Tasks

Keep track of your daily, weekly, or monthly tasks.

Habits

Build habits like a pro, complete with cheering streaks and customizable pep talks.

Notes

Your ideas, our pixels. A WYSIWYG editor so simple a caveman could use it.

MoaiTime

The productivity app for the modern age.

Mood Tracking

Because your feelings are valid and deserve graphs.

Focus

Power up productivity with our pomodoro timer—work smarter, not harder!

Social

Connect and flourish! Follow friends, celebrate achievements, and share your journey.

Statistics

Quick stats to make you feel like a boss.

Command Palette

Your favorite features, on speed dial.

Settings

Tweak and tune like a tech-savvy orchestra conductor.

The Origins

For the past few years, I have been very keen to try and optimise some of the more important aspects of my life. I have tried many different apps and tools, but as time went on, I realised that I was using more and more of them, which was not ideal. I wanted to have everything in one place, so I could have a better overview of everything. That’s when I decided to create MoaiTime.

The Features

  • Calendar, where you can add your events, appointments and more. Additionally you also have the ability to subscribe to other external calendars
  • Tasks, where you can add lists, tasks, assign colours, priorities, durations, due dates, tags, hierarchy and more
  • Habits, so you can easily add your own daily, weekly, monthly and yearly habits. Again, you can set the colour, order, goal and at the moment we also have a couple dozen templates to choose from. You also have the ability to see your streaks
  • Notes, with a simple what you see is what you get editor
  • Mood tracking, to track your mood, with some additional information like the emotions you are experiencing and a note
  • Focus, which is at the moment basically just a pomodoro timer, where you specify the thing you want to work on, the durations for the focus and periods and the number of repetitions
  • Social, which is basically a simple social network type of thing, where you can follow, be followed, see achievements, find other users and post things. Still figuring out the last part on what the best way to implement that will be
  • Statistics, to have a quick overview of the number of entries we have for each feature
  • Notifications, that you get if you get achievements
  • Command palette, to get to things faster
  • Settings, where you set your profile, invite users, privacy, per-feature settings and much more
  • Misc
    • Dark mode, so your eyes won’t get hurt
    • Widgets, like a clock (analogue and digital), greetings, quotes, backgrounds, weather (soon!) and more
    • Teams, where you can create teams, invite users to them and are able to share calendars, tasks and notes with them. Oh, and you can also nudge them on to work on tasks
    • Real-time communication, so changes are instantly reflected on all your, and your team’s devices
    • Keyboard shortcuts, to save even more time
    • Search, including setting your preferred search engine
    • Responsive design, so you can use it on any device (native apps coming soon!)
    • Accessibility, so everyone can use it
    • Data exports, so you can take your data with you

The Stack

  • General: TypeScript
  • Tooling: Turborepo, pnpm, Vite, tsup, ESLint, Prettier, Husky
  • Frontend: React, Zustand, Jotai, Zod, React Router, TailwindCSS, Shadcn UI
  • Backend: NestJS, Drizzle ORM, BullMQ
  • Mobile: Capacitor
  • Testing: Cypress, Vitest
  • Databases: PostgreSQL, Redis
  • Storage: MinIO
  • CI/CD: Docker, Kubernetes, GitHub Actions, Portainer
  • Mailer: Nodemailer, Resend

The Result

The Future

Right now, the project is far from finished, but I think it is at a point where I have started testing it with a couple of beta testers. Here are a couple of things that I am working on right now:

  • Integrations with other services, like Google Calendar, Todoist, TickTick, Trello, etc.
  • More widgets, like a timer, countdown, calendar, weather, etc.
  • Real-time notes editing with other users
  • Implement search with RAG
  • Chrome extension to capture information in the browser
  • Goals functionality, where habits and tasks can be part of a long- or short-term goal
  • More gamification elements for the habits, tasks and focus features
  • Native mobile apps
  • More relevant statistics fro each feature

And much more! Those are just some of the things I have written down, but I have many more ideas that I want to implement in the future. We are currently testing the product and I am planning to release it in the next couple of months, so stay tuned for that! If you are interested in the project or have any ideas or suggestions, feel free to reach out to me on any of my social media platforms. I would love to hear from you!