Mahmoud Yosristuff maker
All projects
case study, 2024 to 2026

CodeNote

A note app for developers. Text, Markdown and code live together in one note, and anything you share from another app turns into a clean code note.

Role
Designed and built end to end
Status
Live on Android and Windows
License
Community edition, AGPL-3.0
Built with
Flutter, Clean Architecture
codenote
CodeNote: the note app for developers
the full edition adds chat and cloud sync
the problem

Code doesn't fit in normal notes

Developers keep snippets in chats, screenshots, text files and note apps that break the formatting. I wanted one place where code stays readable, where a photo of code becomes real text, and where sharing a file from any app takes one tap.

What it does

1

Block-based notes

Each note is a stack of blocks, like a Jupyter notebook. Mix text, Markdown and code, then add, reorder and edit freely.

notebook-style blocks
notebook-style blocks
2

20+ languages highlighted

Python, Dart, C++, Go, Java, JavaScript, TypeScript, SQL, Kotlin, Bash, Arduino, assembly and more. Highlighting runs asynchronously, so long notes stay smooth.

syntax highlighting
syntax highlighting
3

Photo to code

Point the camera at code on a screen or in a book. Google ML Kit reads it on the device and turns it into an editable block.

scan, extract, code
scan, extract, code
4

Share from anywhere

CodeNote is a share target and an Open With handler for source files. It detects the language and builds a formatted note instantly, and shares notes back as .py, .txt or other files.

the sharing workflow
the sharing workflow
5

Tags, groups and chat

Group and tag notes by topic. The full version adds real-time group chat that keeps code formatting, plus cloud sync and notifications.

grouping and tagging
grouping and tagging
developer chat
developer chat

Clean Architecture, two editions

open source edition is fully offline
PresentationWidgets and BLoCs. The UI updates first, then saves.
depends on
DomainNoteEntity, NoteBlockEntity and use cases. Pure Dart.
implemented by
DataRepositories and sources: Hive locally, Firestore in the full edition.
Parts
No.PartUsed for
01flutter_bloc, dartzState and error handling
02GetItDependency injection
03HiveOffline-first storage
04Firestore, FCMSync, chat, notifications
05ML Kit, TFLiteOn-device AI
06SDK 36, Java 17Forced across every plugin
next on the benchArgon