Okay, so today I’m gonna share my experience with something I’ve been tinkering with lately: “jamie xie”. Sounds mysterious, right? Well, it’s just the name I gave to this little personal project I’ve been diving into.

It all started with a problem. I was wrestling with organizing my notes, recipes, and random bits of information. You know, the usual digital clutter that accumulates over time. I tried a bunch of apps, but nothing really clicked. Everything felt too rigid or too complicated. So, I thought, “Why not build something myself?”
First thing I did was brainstorm. I grabbed a notebook (yes, a real paper one!) and just started scribbling ideas. What features did I absolutely need? What would be nice to have? I jotted down things like:
- Simple text editing
- Tagging system
- Search functionality
- Markdown support (because who doesn’t love Markdown?)
Next up was choosing a tech stack. I wanted something relatively quick to set up and easy to maintain. I ended up going with:
- Python (because it’s my go-to language)
- Flask (for a lightweight web framework)
- SQLite (for a simple database)
Alright, time to get my hands dirty. I fired up my IDE and started with the basic Flask app structure. Created the necessary files, set up the routes, and connected to the SQLite database.
Then, I focused on the core functionality: creating, reading, updating, and deleting (CRUD) notes. I spent a good chunk of time wrestling with HTML forms and database queries. Let me tell you, there were definitely some moments where I wanted to throw my laptop out the window, but I persevered!

After getting the CRUD operations working, I tackled the tagging system. This involved creating a separate table in the database to store tags and setting up a many-to-many relationship between notes and tags. It was a bit tricky, but I eventually got it working smoothly.
Implementing search was the next big challenge. I wanted to be able to search for notes based on keywords in the title or content. I ended up using SQLite’s full-text search capabilities, which worked surprisingly well.
And of course I added markdown support. I used the `markdown` library, which made the task a breeze, so users can format their notes nicely
Once I had all the main features in place, I started focusing on the user interface. I’m no designer, so I kept things simple and functional. I used Bootstrap for basic styling and made sure the app was responsive so I could use it on my phone.
Along the way, I ran into a ton of roadblocks. There were countless bugs, errors, and moments of frustration. But each time, I learned something new. I debugged, I Googled, I Stack Overflow-ed, and I eventually figured things out.

After a few weeks of evenings and weekends, “jamie xie” was finally in a usable state. It’s not perfect, but it does exactly what I need it to do: help me organize my thoughts and information. And the best part is, I built it myself!
What did I learn from all this? A ton! I gained a deeper understanding of Flask, SQLite, and web development in general. I also learned the importance of breaking down complex problems into smaller, more manageable tasks. And perhaps most importantly, I learned that I’m capable of building things I never thought I could.
This project is far from over. I have a long list of features I want to add and improvements I want to make. But for now, I’m happy with what I’ve accomplished. And who knows, maybe one day I’ll even share it with the world.