Easy and complex are both not fun 🤨
I reached a point where most of my personal project ideas are either too easy or too complex:
- Easy: I already know the solution, I would just need to code fast 🫠
- Complex: I have an idea of the solution, but I know the scope of the project is huge 🤯
The key is finding something both meaningful and challenging, but also manageable 👀
This is what I mean 👇
Unknown and growth
As you get more and more competent on a subject, the surface of what you consider "fun" shrinks.
Initially, everything is a challenge full of discoveries. But after a while, most projects have no unknowns, just execution.
And it's less fun 🤷🏼♂️
I don't enjoy something I know how to do in advance. That's my current state in frontend development: only few "real challenges" are left that would push my curiosity 🤔
Without growth, there is not much fun.
Challenge and complexity
That's not to say I know "everything". Quite the opposite. But:
As you master a subject, "challenge" and "complexity" tend to grow together 🤯
That's to say: projects that challenge me usually have a large scope and complexity.
And high complexity means months of work. And that goes against the idea of a "(small) personal project" 💁🏼♂️
Meaning
Then there is the question of meaning:
I don't like "learning" in a vacuum, I want to create something meaningful for me or people around me (i.e. something that someone will use after I am done with it) 🫡
Every (personal) project starts with meaning. I have a need, building an app can solve it, so I do it.
Does't matter if later it turns out I didn't really need it after all, but at least the initial spark was there ✨
That's a problem when you are minimal and focused (like me). I don't distract myself with too many interests, because I prefer investing time in mastering a few skills at the time (vertical investment).
But that also means that I have few needs, and therefore a small poll of "ideas" at the time (outside of what I am already doing) 🤔
Example of meaning and challenge
Sometimes I find something. A recent example is my IndexedDb PR for effect:
- I am missing a powerful (and usable) database on the client
- Dexie works, but it's not as type safe as I like
- I want the
effectpower for a database on the client
Result: let's build an IndexedDb wrapper for
effectmyself 💯
This combines challenge, meaning, and manageable complexity:
- Challenge: learn about IndexedDb and more about the internals of
effect - Meaning: I will personally use this module a lot if it works
- Complexity: it's a single module, with a limited scope
When all the pieces fit together, I am lost in the flow of the work for weeks ✨
As mentioned, my PR for IndexedDb in effect is live:
Sent PR for IndexedDB in @EffectTS_ 🚀 It reduces the chaos of IndexedDB into a simple and type safe API, migrations included Now a long process of review ahead 🫡 github.com/Effect-TS/effe…
Meanwhile, I also started exploring LiveStore for local-first:
I am experimenting with @livestoredev 👉 SQLite with @EffectTS_ schema 👉 Event-based 👉 Minimal but extensible setup 👉 Sync API Predictable and reactive, looking great ⚡️
Meanwhile, if you have an challenge that you think may interest me, send me an email to let me know 🫵
See you next 👋
