Skip to content

bernaferrari/markor

 
 

Repository files navigation

Re-Markor (Compose + KMP + M3)

Re-Markor overview

Local-first, Markdown-centric, Multiplatform notes.
Built with Kotlin Multiplatform and Compose Multiplatform.

Try the Web Demo

Kotlin 2.4.0 Compose Multiplatform License Platforms


Re-Markor is a modern, cross-platform port of the original Markor project. It preserves the core philosophyโ€”plain text files, offline-first workflow, and no account lock-inโ€”while leveraging Kotlin Multiplatform (KMP) to bring a unified experience to Android, iOS, and the web.

Try it in your browser: markor-five.vercel.app

๐Ÿš€ Key Features

  • ๐Ÿ“ Markdown-First: Fast editing with live preview and syntax highlighting.
  • ๐ŸŒ Multiplatform: Shared business logic and UI across Android, iOS, JVM, and Web (Wasm).
  • ๐ŸŒ Web Demo: Run Markor in the browser via Compose Multiplatform for Web.
  • ๐Ÿ“‚ Local-First: Your data stays on your device in plain text files.
  • ๐Ÿท๏ธ Smart Organization: Pinned notes, archive, labels, trash, and recents.
  • ๐ŸŽจ Modern UX: A complete redesign using Material 3 and Compose Multiplatform.
  • ๐Ÿ–ผ๏ธ Asset Aware: Built-in support for images and attachments within your notes.

๐Ÿ“ธ Screenshots

Comparison

๐Ÿ› ๏ธ Tech Stack

This project is a showcase of modern Kotlin Multiplatform development:

๐Ÿ—๏ธ Project Structure

The project follows a standard KMP layout:

  • shared/: The heart of the app. Contains common UI (Compose), business logic, and data layers (Room, DataStore).
  • app/: Android-specific entry point and resources.
  • iosApp/: iOS-specific Xcode project and Swift entry point.
  • webApp/: Wasm browser entry point for the GitHub Pages demo.
  • metadata/: App store metadata and screenshots.

๐Ÿ Getting Started

Prerequisites

  • JDK 17 or higher.
  • Android Studio (Koala or newer) with the KMP plugin.
  • Xcode 15+ (for iOS development).
  • CocoaPods (if applicable) or Swift Package Manager.

Build & Run

Android

./gradlew :app:installFlavorDefaultDebug

iOS

  1. Open iosApp/iosApp.xcodeproj in Xcode.
  2. Select a simulator or device.
  3. Click Run.

Alternatively, via CLI:

./gradlew :shared:embedAndSignAppleFrameworkForXcode

Web (local dev server)

./gradlew :webApp:wasmJsBrowserDevelopmentRun

Production build:

./gradlew :webApp:wasmJsBrowserDistribution

Web deploy (Vercel)

Simulate the CI build locally before pushing:

./scripts/simulate-web-ci.sh

Deploy manually (after vercel login or with a token):

./scripts/verify-web-deploy.sh --ci
VERCEL_TOKEN=... VERCEL_ORG_ID=... VERCEL_PROJECT_ID=... ./scripts/deploy-web-vercel.sh

Pushes to master run .github/workflows/deploy-web-vercel.yml, which builds the wasm bundle and deploys to Vercel. Add these repository secrets:

Secret Where to find it
VERCEL_TOKEN vercel.com/account/tokens
VERCEL_ORG_ID Vercel project โ†’ Settings โ†’ General
VERCEL_PROJECT_ID Vercel project โ†’ Settings โ†’ General

๐Ÿ“œ Credits & License

  • Original Project: Markor by Gregor Santner.
  • License: Apache License 2.0. See LICENSE.txt for details.

Made with โค๏ธ using Kotlin Multiplatform

About

A full Material 3 Expressive redesign of Markor

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Kotlin 98.5%
  • Other 1.5%