This project from 2024-2025 is part of my journey, follow the other parts v1, v2 and v3.
Introduction: Pushing My Favorite App Beyond Its Limits
My note-taking app (v3) is my source of truth. I use it every single day because it’s offline, Markdown-based, and lets me organize my notes hierarchically. From book summaries to guitar tabs, everything goes in there.
As a natural consequence, I started wanting more. My list of requirements grew longer and more exigent:
- A powerful filter to search by content, not just by title.
- The ability to embed YouTube videos.
- Integrated Task Lists for my plans.
- Collapsible sections to manage long, content-heavy notes.
- A place to save reusable code snippets.
- An editor menu to insert an template of editor components
My current software development workflow was so streamlined that I could ship features, even if I have only 15 minutes.
Sidenote: I validated this architectural approach at a startup that had a huge frontend bottleneck. They gave me the green light for a full refactor, and I delivered a successful MVP in just 4 weeks. It was solid proof that a clean architecture is the foundation for speed.
The Challenge: From 12 Jobs to 100
My research into engineering, philosophy, and art sparked a creative fire 🔥. I was inspired by the 12 Jobs of Heracles and thought: “He became a great hero after completing the 12 jobs”. I wanted to grow, it motivates me to challenge myself. These thoughts culminated in my own challenge The 100 Jobs of elVengador!.
This wasn’t a literal number, but a guiding philosophy: tackle every real-world problem with a dedicated software solution.
Architecting the Ecosystem: The Right Tools for the Job
I started the challenge, my first Job was an app to help memorize some data, I set it up from scratch moving the best parts of my workflow, I noticed a bottleneck in my process for starting new projects. It took too much time, and I saw a clear pattern of repetitive steps. Here is the pattern:
“Stack of technologies: with Astro, React and Tailwind, the clean architecture, the ci/cd, Vitest, and other initial setups”
It result in the creation of my Frontend template helping me to create a new ev-job in just one click 👏.
I started implementing the UI and defining again the component guided with UX, it takes the normal time to create a new component library, after complete the view I notice another pattern:
“The primitive components had similar properties in both projects, I can reuse my component library from Royal Palace if I make it configurable from outside”
I created another private repository where I moved the common components. This expanded my scope of thinking, instead thinking only on a project now I’m architecting my private ecosystem, that improving my DRY. After create my private package I’ve installed on Royal Palace and my new Job as result the views looks amazing, consistent and with less effort.
In another Job I require the backend, I’ve used the Astro DB because is more simple than Cloudflare D1, it works perfect on my use case. Then I notice some limitation at that moment:
- Astro DB don’t expose the schemas types to reuse them into my clean architecture, the goal is to have only one source of truth, if tomorrow I need to change the DB or Astro, I will make small changes
- Astro DB wrap Drizzle to manage the DB but they don’t expose the complete Drizzle API, It limits the customization. I need to create systems not just write an app, I’ve decided to add Drizzle to my Backend template instead using the Astro DB
- Astro server don’t expose a WS protocol, this motivates me to search alternatives, my favorite is Durable Object, they use a worker behind, this allows me to improve my skills on cloudflare.
My Backend takes a different strategy based on requirements. After this improvements my challenge of 100 jobs start moving more quickly. Here is a list of some of the most important:
- Pocket Budget: A PWA for tracking my expenses.
- Image Optimizer: A tool to resize and convert images to WebP.
- Infinity Random Loop: An app to help practice memory.
- My Board: A simple, configurable Kanban board built for my needs.
- Error & Logs Managers: Services with dashboards to monitor my projects.
- …and many others.

Final Words: The Architect’s Mindset
This journey taught me to detect patterns. When things get complicated, I remember KISS. When a design is beautiful but not functional, I remember: functionality over design — user centric. Every decision is guided by a principle, every line of code has its purpose.
I learned to be critical of new technologies and understand if they offer real value or are just wrappers.
Not all was victories. Many ev-jobs never saw the light of day because I hit the limits of my knowledge at that moment. But I’m touching the edge of technology, and that’s what motivates me to innovate. These experiences prepared me to architect any software, small or large, because now I have a plan to manage complexity.