Skip to content

Case study

Notes app

A markdown notes application with a Django REST API behind it, a React front end with a live editor, and sign-in through Google rather than another password to remember.

Overview

Markdown notes with an account behind them. A Django REST API for storage and auth, a React front end with a live markdown editor, and Google sign-in so there is no password to invent or forget.

What I own

Both halves, the API and the interface.

Complexities tackled

Delegating identity rather than building it. Storing passwords means salting, resets, lockouts and a breach you now own. Signing in through Google removes that entire category of work and risk from a personal project, at the cost of one integration.

A live markdown editor is a rendering problem, not an input one. Typing is easy. Keeping a preview in step without re-rendering the document on every keystroke, and without losing the cursor, is where the actual engineering sits.

Two codebases in one repository. The API and the web client live side by side with their own dependency sets, which keeps them independently runnable while making the pair easy to check out and start.

Authentication that is not mine to invent. Sign-in goes through Google rather than a home made username and password table. That removes password storage, reset flows and breach exposure from a personal project’s surface entirely, at the cost of a dependency, which is a trade worth taking every time on something one person maintains.

Notes are markdown, and markdown editing is a real component. A textarea is not a notes app. The editor has to preview, handle formatting and keep the source recoverable, which is why it is a dedicated editor component rather than a form field.

It has tests. A personal project usually has none. This one has a front end test setup, which is the difference between a project that can be picked back up after six months and one that has to be re-read first.

Stack

Django and Django REST Framework with JWT, React and TypeScript with Tailwind CSS on the front, Google OAuth for sign-in.

Working on something similar?

Tell me what you are building and what is in the way. I will tell you honestly whether I am the right person for it.

Start a conversation

Last updated: