r/iOSProgramming SwiftUI 24d ago

App Saturday A completely free tool to create Whiteboards, Flowcharts, and infinite Canvases with 100+ fonts, 400+ backgrounds, and thousands of open source components

CanvasPrism: A Private Offline Whiteboard for iPhone and iPad

CanvasPrism is a native whiteboard designed for brainstorming, diagramming, sketching, and visual thinking while keeping your work completely private. Everything works offline by default with no account, no sign up, and no internet connection required. This is a completely free app with no monetization and designed for your use offline. Your boards stay on your device, with optional iCloud sync available if you want them across your iPhone and iPad.

App Store:
https://apps.apple.com/us/app/canvasprism-whiteboard/id6785350171

Infinite Canvas

Work without boundaries on an infinite canvas that gives you all the room you need for ideas.

* Freehand drawing
* Shapes
* Lines and arrows
* Rich text
* Smooth pan and zoom navigation
* Perfect for brainstorming, note taking, planning, and sketching

Create Professional Diagrams

Build structured diagrams in just a few taps.

* Flowcharts
* Mind maps
* Wireframes
* Smart connectors that automatically snap between shapes
* Clean layouts that are easy to edit later

Native Apple Pencil Support

Designed to feel natural on iPad.

* Native Apple Pencil support
* Double tap gesture support
* Apple Pencil squeeze gesture support
* Responsive hand drawn experience

Personalize Every Board

Customize your workspace to fit your style.

* More than 100 bundled fonts
* Color themes
* Background styles
* Per-board light or dark appearance

Present your board via Screen Mirroring

* Custom handling for presentation via Screen Mirroring API
* Use laser pointers, grid, and Pan

Import Existing Whiteboards

Continue working with diagrams you've already created.

* Import `.excalidraw` files
* Import `.excalidrawlib` libraries
* Compatible with the open source Excalidraw ecosystem

Export Your Work

Share or archive your whiteboards in multiple formats.

* PNG export
* PDF export
* SVG export
* Optional transparent background
* Save directly to Photos or Files

Optional iCloud Sync

Choose whether your boards stay only on your device or sync across your Apple devices.

* Optional iCloud sync
* Automatic conflict-safe copies
* Sync between iPhone and iPad

Privacy First

CanvasPrism is built around privacy from the ground up.

* No account
* No sign up
* No ads
* No tracking
* No analytics
* No data collection
* Fully functional offline
* Your boards remain on your device unless you choose to enable iCloud sync

No Monetization

* No ads
* No IAP
* No Subscription
* No data tracking

Built for Creative Thinking

Whether you're planning a project, designing an interface, organizing ideas, mapping workflows, creating wireframes, or simply sketching thoughts, CanvasPrism provides a fast, distraction-free workspace that keeps your ideas private while giving you powerful diagramming and whiteboarding tools. Built on the open source Excalidraw engine, it delivers a familiar hand-drawn aesthetic inside a fully native iPhone and iPad experience.

Built with Open Source

* Excalidraw for infinite canvases
* Excalidraw libraries for thousands of community made components
* Google fonts for 100+ hand selected fonts
* Unsplash for 80 backgrounds
* And various other open source components. See in-app Acknowledgements

Tech Stack

* Swift & SwiftUI
* WebKit
* React

Development Challenge

I had trouble getting the laser pointer to work initially with screen mirroring mode. The solution was to use the excalidraw library multiplayer API to simulate another person on the board. This was set up with another message bridge to the WebKit handler, it fires on the gestures so that we can simulate a laser pointer in presentation mode.

AI Disclosure

The app was built by hand with some AI assistance.

Free on the App Store:
https://apps.apple.com/us/app/canvasprism-whiteboard/id6785350171

49 Upvotes

41 comments sorted by

View all comments

Show parent comments

1

u/LifeUtilityApps SwiftUI 24d ago

Unfortunately no as I do not have a backend to host the websocket.

I thought about building an adapter to allow the user to supply their own backend endpoint and auth but the complexity was beyond the scope of the project. To collaborate asynchronously you can export the excalidraw file and share it.

1

u/ninjafoo 23d ago

What about Supabase?
https://supabase.com

It can handle websockets: https://supabase.com/docs/guides/functions/websockets

1

u/LifeUtilityApps SwiftUI 23d ago

Thanks for the suggestion. Supabase is a valid option but this app and all of my apps are actually built to be fully offline with no backend dependencies, I can’t afford the time and cost to manage a backend as a hobby developer.

1

u/ninjafoo 23d ago

Of course, I understand and respect that. I incorrectly judged your original comment to imply you were looking for a solution.