Simply Shared Notes lets you create and share notes with others — no accounts, no passwords, no friction. Create a Space, add one or more notes in plain text Markdown, and share the Access Link to give others instant access.
Each Space has one or more Members, allowing people to identify themselves and have their contributions tracked — all without needing to register. It’s built on trust, designed for small private groups.
- ⚡️ No signup or login required
- 🔑 Multiple Access Link types
- Admin – full control
- Edit – can add/edit notes
- View – read-only access
- 📨 Recover lost Access Links via email
- 👥 Named Members for each Space
- Visitors select their identity from the Member list
- Their choice is remembered on the device
- Notes show who created or last updated them
- View-only links skip Member selection
- 📚 Activity history for each Space
- Tracks who did what and when
- Create, edit, and delete actions are recorded per Member
- 📝 Plain text notes in Markdown
- 📱 Mobile-friendly
- Minimal JavaScript, works on all devices
- Go: Programming language
- Chi: Router
- Templ: HTML templates
- SQLite with modernc.org/sqlite: Database
- sqlc: Generate code from SQL
- Dbmate: Database migrations
- Tailwind and daisyUI: CSS
- htmx: Client-side interactions
- Vite: Assets tooling
- Fly.io: Deployment
Install Go, for example using mise:
mise use -g go@latest
Install tools:
- Task:
brew install go-task/tap/go-task
- Templ:
go install github.com/a-h/templ/cmd/templ@latest
- sqlc:
brew install sqlc
- Dbmate:
brew install dbmate
Install Node and upgrade npm, for example with mise:
mise use -g node@lts
npm install -g npm@latest
Run project setup:
task setup
This only needs to be done one time, and will:
- Create an
.env
file - Create the
data
directory
Run SQL migrations:
task migrate
In one terminal, run the Vite development server:
task vite
In another terminal, run the application:
task run
For a full list of tasks run task -a
.
Additional documentation can be found in the docs directory.