Welcome to the series! In this introduction episode, we kick things off by showing you exactly what you’ll be building: a fully functional Notes app using AlpineJS. The entire project leans heavily on Alpine’s store functionality, which helps us keep things organized and manageable as our app grows.
If stores are new to you, don’t worry—we mention a separate series you can check out for the basics before diving in. But in this demo, you’ll see how the finished app works: when you load the app, you instantly get an untitled note ready to go. Start typing, and you’ll notice the title updates in real-time, and there’s a timestamp showing when your note was last edited. The body of the note gets truncated in the preview, so long notes don’t clutter up the interface.
You can create new notes, switch between them, and thanks to a handy getter, the notes list automatically keeps your most recently updated notes at the top. All the data stays in local storage for now, so your notes persist even if you refresh the page, though you could swap out for an API later. There’s even a confirmation dialog when you delete a note, and the app ensures there’s always at least one note to work with.
Throughout the rest of the series, we’ll break down how to build all these features (and more) with Alpine stores, so you’ll get a really practical look at state management in action!