Skip to content

SLKK-design/NotionClassic

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

37 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Notion Classic

Edit Notion on a 1989 Macintosh: over real HTTPS, no proxy.


Notion classic for Macintosh System 7.5

The current version supports 1 custom Notion page to be fully edit on your classic Macintosh. Read, edit and add blocks, pick emoji, set icons: all from a 9-inch black-and-white CRT, over a real encrypted HTTPS connection.

Tested on a real Mac SE/30 running System 7.5 at 16 MHz.

"SE/30 over HTTPS. That's genuinely impressive —
 a 16MHz 68030 doing P-256 ECDH and TLS 1.3 against Cloudflare."
                                         — Claude Code, after many, many attempts

The origin story

It started with a Notion documentary: an interview with the people who built the original Macintosh. Watching Andy Hertzfeld and the original Mac team talk about their work, a stupid idea formed: what if you could run Notion on that machine?

The first attempt happened during COVID. Built in CLion, with out code support, pieced together from a handful of heroic open-source projects:

Unfortunately I couldnt make the page scroll with multible textfields and theprojct stalled: Then came Claude Code. Asking it to fix my scrolling issue.. he just fixed it. So I pushed more and more ending up wrestle TLS into shape on a 35-year-old CPU: after many failed attemepts from trying C libs for esp32 microcontroller or feeding it with algorithmic papers and then it starting to work.​​​​​​​​​​​​​​​​

My goal was to finish on the 1 April: the end of #MARCHintosh and Apple's 50th anniversary. That deadline was missed. But I have something actually works now...


What it does

  • Read and edit 1 Notion page
  • Rich text formatting
  • Block creation
  • Toggle headers
  • Emoji picker
  • Notion Page Icon's picker
  • Full Width / Full Screen mode:

HTTPS on a 35-Year-Old Mac

A 16 MHz 68030 was never meant to negotiate a modern TLS handshake. 8 problems stood in the way. Claude Code helped crack them.

1: TLS library: mbedtls-Mac-68k (built by Anthony · antscode)

Lightweight TLS for embedded systems, compiled for 68k via Retro68.

2: Bridging to MacTCP: MacTCPHelper (antscode)

Add net_sockets_mac.c bridges mbedTLS's POSIX socket calls to the Classic Mac networking stack.

3: Embedding a root certificate

Off course the Classic Mac doesnt have System certificates. Add a GTS Root R4 baked into the binary. WE1 intermediate skipped: P-384 is too slow on 68k.baseline was arround 2,250 s

4: Faster ECC: micro-ecc (Kenneth MacKay, BSD 2-clause) Replaces mbedTLS's ECC math.

Compiled with -m68020 to use the 68020's 32-bit hardware multiply instructions for ECC field arithmetic.
~5× speedup.

5: Add Shamir's trick + Montgomery ladder (Rivain, 2011)

Add Point multiplication via Montgomery ladder algorithm + ECDSA verification using Shamir's trick adds
~2× improvement.

6: ChaCha20-Poly1305

Switched from AES-GCM to ChaCha20-Poly1305, With CPU without hardware AES acceleration was about
~3–4× faster.

7: Custom memory allocator

64 KB static pool overrides malloc/free during ECC, bypassing the slow Classic Mac heap.
~20× faster handshake.

8: Pre-computed ECDH key

Add a WarmUp() to pre-computes the ephemeral key pair before the TCP connection opens. The first attempt times still out at
~15-16 s
My SE/30 make the claudflare 15s time limit in the first try, But by cachesing the enough state the second attampt completes in
~6.5 s.

🏁 2,250 s → ~6.5 s: ~ 346× faster


Hardware & OS

  • Any 68020+ Mac: Mac II, IIx, IIcx, IIci, IIsi, SE/30, Classic II, LC, Quadra, Centris, Performa.
  • System 7.5 +
  • 4 MB+ recommended for TLS buffers and icon cache
  • Any MacTCP-compatible Ethernet: Uthernet II, Asante, Farallon, Apple Ethernet, etc.
Notion classic running on a Mac SE/30

Tested on

SystemNotes
Mac SE/30, System 7.5Primary target: real hardware with PiSCSI Raspberry Pi modem
BasiliskII, OS 7.5Emulator, works well for development
PowerBook G4, OS 9Tested via Classic environment

How to Connect your Notion

You need two things: an integration token and a page ID. Takes about 2 minutes.

  1. Get a token: Go to notion.so/my-integrations → New integration → Internal → Save → copy the ntn_... secret
  2. Share your page: Open the page in Notion → menu → Connections → find your integration → Connect
  3. Get the page ID: Copy the page URL, or just the ID from the end of it (hyphens optional)
  4. Open Connection: In Notion Classic: Notion menu → Connection → paste your token and page ID → Save

Credits

Built by Lin van der Slikke with Claude Code.

The real brilliant minds behind the magic!


And the developers @ Notion who made the API possible





About

Notion client for classic Macintosh computers. Read pages, edit blocks, pick emoji, set icons — over a real encrypted HTTPS connection

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors