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
effect
power for a database on the client
Result: let's build an IndexedDb wrapper for
effect
myself π―
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 π