Repository navigation
Releases: RejwanShafi25/RejBoard
Release list
1.3.3
Added
-
Version history. Every board keeps earlier versions automatically (at most one every 10 minutes while you edit, thinned to hourly, daily and weekly, up to 60 per board). Restore one (the current state is saved first, so it can be undone), open it as a copy, or save a named version. Export → Version history or a board's ⋮ menu.
-
Automatic daily backups (desktop) into the app's data folder, keeping 7 daily, 4 weekly and 6 monthly copies, with Back up now, Open folder and Restore… in Settings → Storage. Restoring saves each replaced board to its version history first.
-
Real encryption for password-protected boards. Ink, text, pictures, PDF pages, thumbnail, search text, history and voice recordings are encrypted (AES-256-GCM, key protected by PBKDF2-SHA-256 with 600,000 iterations). New Change password; growing waits after wrong passwords; boards locked with an older version are encrypted on their next unlock; copies, sync files, LAN shares and backups of locked boards stay encrypted.
-
Markdown export of a board, or of the whole library in its folders (Settings → Storage), as a .zip with images and a picture of the ink.
-
Better search: every word must match (any order, accents and capitals ignored); shape labels, graph formulas and the text of imported PDF pages are searchable; the 4,000-character limit per board is gone; on desktop, handwriting and scanned pages are read on-device while you are idle so search finds them (Settings → Handwriting to text → Search my handwriting).
-
Handwriting → LaTeX (✍→∑). Lasso a handwritten formula and press ✍→∑ to turn it into LaTeX, check it in the LaTeX editor with a live preview, then insert it at the size of your handwriting, optionally replacing the strokes (one Undo restores them). Uses the pix2text-mfr model (MIT) in a background worker, in both the desktop and web app. The model (about 126 MB) is downloaded once, only after you agree, verified by SHA-256 and kept on your device; recognition then runs offline. Manage it in Settings → Handwriting to LaTeX.
-
The new screens (version history, backups, protected boards, Markdown export, ✍→∑) are translated into all 22 languages, and version times ("5 minutes ago", "Yesterday") follow the app language.
-
Cancel while ✍→∑ is recognizing a formula.
-
Diagram tools. Elbow (right-angle) connector routes, line jumps at crossings, text labels on lines, arrowhead styles for each end (arrow, triangle, dot, diamond, bar), shapes that grow to fit their text, containers and swimlanes that carry what is inside them, Snap to grid, Smart guides (hold Ctrl to move freely) and one-click Auto-layout of connected shapes. All translated into the 22 languages.
-
New board dialog. Every New button (home screen, + New, the round + button, the Boards menu, Note here) asks for the board size, orientation, paper colour, pattern, spacing and line weight, and shows a live preview before the board is created. The last choice is remembered.
-
Templates. 61 templates in six groups (Notes, Study, Planners, Creative, Business, Diagrams) with thumbnails, search and category filters: open one as a new board or add it to the current board. Reachable from the New board dialog, the tools panel (▦ Templates) and the Boards menu. Template text follows the app language.
-
New paper: engineering, millimetre, hexagons, music staff, guitar tab, handwriting practice and calligraphy guides; mint, sky, blush and forest paper colours.
-
Shape picker sections (Basic, Lines, 3D, Containers, Flowchart, BPMN, UML, ER) with about 45 new diagram shapes, including UML classes and ER tables with compartments, and crow's-foot line ends for ER diagrams.
-
Text → diagram (Mermaid). Paste a Mermaid flowchart to get shapes and connectors, laid out automatically (loops curve around the outside); Copy board as Mermaid exports the selection or the whole diagram.
-
Database schemas. Paste SQL
CREATE TABLEstatements or dbdiagram.io DBML (shape picker → 🗄 SQL / DBML → tables) to get tables with keys and crow's-foot relationships, laid out automatically; Copy board as SQL / DBML exports them again. Tables show column names on the left and types and keys on the right. -
EER notation: ISA triangle, disjoint/overlap circle, associative entity, partial key attribute; double lines (total participation) and end text (cardinality, multiplicity) on any connector.
-
Cloud / DevOps, Network and Architecture shape sections with about 35 generic icons and C4 shapes, and four more templates: database schema, cloud architecture, office network and C4 context.
-
SysML, Computer science, Security, Wireframe and Planning shape sections (about 60 shapes): SysML blocks and requirements, arrays and stacks that split their text into cells, logic gates, flip-flops, DFD and threat-model shapes, UX wireframe controls and planning icons. Connector ends gain a hollow triangle (inheritance) and hollow diamond (aggregation).
-
PlantUML in and out: class, use case, component and sequence diagrams (shape picker → 🌱 PlantUML → diagram, Copy board as PlantUML).
-
draw.io in and out: Export → Export diagram for draw.io (.drawio), and Export → Import diagram for draw.io (compressed pages too), PlantUML, Mermaid, SQL and DBML files.
-
All the above translated into the 22 languages.
-
Hold to snap: hold the pen still at the end of a stroke to turn it into a clean shape.
-
Checklists with reminders, including system notifications (desktop and web) for items that are due, whichever board is open.
-
Sticker library: badges, shapes, emoji and your own stickers.
-
App lock PIN with a recovery code and an idle lock.
-
Notebooks with coloured sections and ordered pages, and a navigation bar on each page.
-
Split view: look at another board while you work on this one.
-
Find while presenting (Ctrl+F in Present mode), with next and previous and a highlight on each match.
-
PDF outline and bookmarks, kept in step with page reordering.
-
Notes synced to voice recordings: replay notes with the audio and tap a note to hear that moment.
-
Document scanner with automatic page detection, perspective correction and clean-up filters.
-
Web clipper in the in-app browser: selected text, article text, screenshot or link.
Changed
- Protected boards save as fast as unprotected ones: ink is encrypted as binary numbers instead of text (about 250 ms → 35 ms per autosave on a 210,000-point board), and the thumbnail is no longer redrawn on every save. Boards protected earlier still open.
Fixed
- Several wrong translations shown by the new screens (for example German Grid was "Grill" and Boards was "Vorlagen"; Close, Done, Start, Letter, Portrait and the paper and pattern names in many languages).
- Long words in shape labels are no longer broken in the middle; the text gets smaller instead.
- A language pack downloaded by an older version is refreshed quietly, so new screens are translated without removing and re-adding the language.
- Web app: an update could pair the new page with an older script still in the browser's HTTP cache, leaving the app broken until the next update. New versions now fetch every app file fresh.
- Replacing the open protected board from the sync folder, or restoring a backup while it is open, no longer lets the editor's old copy be autosaved over what was just put back.
1.3.2
Added
- Equation solver (🧮 in the dock) with step-by-step working: solve equations and systems, differentiate, integrate (indefinite and definite), simplify, expand, factor, limits and plain calculation. Exact answers where possible (fractions, radicals, complex roots, general trig solutions), every answer is checked, and an equation with no closed form falls back to labelled numeric roots. Insert the answer or the grouped steps on the board.
- Graph plotter (📈 in the dock): graphs are board objects. Explicit
y = f(x), implicitx^2 + y^2 = 9, polarr = f(theta)and parametric(cos(t), sin(2t))curves, sliders for any extra letter (with animation), labelled intersections, zoom and pan, double-click to edit; included in PNG / PDF / SVG exports. The math libraries load only when used. - Straight lines with Shift. Hold Shift while drawing with any pen, the pencil or a highlighter to get a straight line; close to level, upright or 45° it snaps exactly onto that direction (music staves and guitar tabs come out truly parallel).
- Start-up window. On a slower computer a small window with the RejBoard logo names the board being opened while the app starts; the main window then opens once the board is ready.
- Settings → Storage → Compact board storage (on by default). Turn it off before installing an older version of RejBoard: every board is converted back to the classic format.
- Automated tests: unit tests (
npm test) and an end-to-end desktop smoke test (npm run test:smoke), run by the new Tests workflow, the installer build and the website deploy. - Writing sounds. Optional natural sounds while you draw: every pen (fountain, calligraphy, soft brush, ballpoint, pencil), the three highlighters, the eraser and the tape tool has its own sound. They are synthesized live (no audio files) and follow your drawing speed and pen pressure, and are silent when you pause or lift. Turn them on in Settings → Writing sounds (off by default), with an extra switch for eraser/tape and a volume slider.
- Sync folder (#2). Save selected boards (select mode or a board's ⋮ menu) or all boards as one
.rjwbfile each into a folder inside OneDrive, Google Drive, Dropbox or Nextcloud, and import them on a second PC from ☁ Sync folder on the home screen. Files carry ink, text, PDFs, tags, voice recordings and linked boards. Importing asks to replace, keep both or skip when a board already exists, and warns when the file is older than the board in the app. A lock file (computer name + heartbeat, stale after 5 minutes) keeps two PCs from writing at once. Chrome/Edge use the folder directly; other browsers download one file per board.
Changed
- Faster start. The board you had open last is opened directly (no scan of every board), and a small index of your boards (title, dates, tags, thumbnail; never the strokes) keeps My boards quick even with a large library or on a slow disk. The index rebuilds itself if it ever disagrees with the boards.
- Much faster on crowded boards and old PCs. Scrolling a board with lots of ink now shifts the already-painted picture and paints only the newly exposed strip (about 4x less work per frame in our test). Starting or finishing a stroke no longer repaints the whole screen or copies the whole board for Undo (a finished stroke used to cost ~350 ms on a 3,000-stroke board, now about 1 ms), and Undo/Redo entries for new strokes are tiny. The eraser skips strokes that are nowhere near it and repaints only the area it changed. Saving crowded boards is about 3x faster, happens later (never while the pen is down), and the board thumbnail is refreshed at most every 8 s while you work. Boards are stored with compact stroke data; existing boards open as before. The speed-ups also apply to boards with only a few long calligraphy, soft-brush or highlighter strokes, which are expensive to repaint on every pen move; the screen cache is rebuilt in the background while you are idle, so the next stroke starts instantly. Zooming now scales the cached picture while you zoom and sharpens it once you stop, drawing a Lasso loop or clicking to select no longer repaints the board, and dragging a selection repaints only the moving items.
Fixed
- Moving a selected shape or connector threw an error on the first mouse move of every drag, so the "Move connected shapes together" setting never worked (the first move was also dropped). It now works as described: dragging a shape or connector moves everything linked to it (hold Alt to move only the selection).
- A voice recording could be saved to the wrong board if you switched boards while the microphone permission prompt was open (#1). The board is now captured when you press Record, and if you switch boards before the prompt is answered the recording is cancelled instead of starting on the wrong board.
1.3.1
Added
- Tool shortcuts.
1–8pick the fountain pen, calligraphy pen, soft brush, ballpoint, pencil and the square, chisel and round highlighters;Ttext,Wtape,Eeraser.Hconverts the selected handwriting to text and only works while handwriting is selected. Shortcuts are shown in the toolbar tooltips and ignored while typing. - Connected lines. Lines, arrows and double arrows have a new Connect to shapes toggle (shape options and the selected line's style bar). Drop an end anywhere on a shape and it snaps to the shape's edge and follows it when the shape moves; turn it off to keep a line free.
Fixed
- Pressing Distribute evenly (the button at the right end of the selection toolbar, previously shown as ⋯) with handwriting selected no longer spreads the letters apart. Handwriting and groups are now treated as one object each, and a toast explains when there is nothing to distribute. The button now has a clearer icon.
- The home sidebar showed a double
#in front of tag names. It also listed every tag, which got very long with many tags; it now shows the 3 most recently used tags (plus the one you have open), and the Tags section still lists all of them. - Newly drawn lines and arrows never connected to shapes automatically, and had to be dragged by hand; they now connect when drawn.
- Pasting copied objects sometimes seemed to do nothing: they were put back at their original position, which could be off-screen or outside the current page. Paste now places them where you last clicked (or the centre of the view), on the page you are on in page mode. Ctrl/Cmd+C and X also work with Caps Lock and non-Latin keyboard layouts.
- Deleting a layer (e.g. an imported PDF) no longer leaves an invisible, still-selectable area behind, and Undo now restores the layer along with its items.
1.3.0
Changed
- Pages overview. New ▦ Pages button in the page bar opens thumbnails of every page. Select one or several pages (click, Ctrl/Shift-click) to move them earlier/later (also Alt+←/→), swap two pages, copy (each copy lands right after its original, with its own groups and connector links), delete, or insert a blank page. Pages can also be dragged to reorder, and a double-click opens a page.
@board links that point to a specific page of the board (from the same board or any other board) follow the pages when you reorder, swap or delete them; a link whose page was deleted falls back to just opening the board. All of it is undoable (Ctrl+Z restores the page count and the links too).
Fixed
- Deleting (or trashing/locking) your last board no longer creates a new empty "Untitled" board. The board list now stays empty, and a blank board is only created once you start drawing or press New board. The same applies when the app is launched with no boards.
- Pressing + or - alone zoomed the canvas. Keyboard zoom now needs Ctrl/Cmd + + (zoom in) and Ctrl/Cmd + - (zoom out), and the browser's own page zoom no longer fires on top of it.
- Pencil brush strokes (e.g. handwritten labels) looked blurry. The pencil now has a crisp graphite grain (a light body plus device-pixel speckle) instead of three translucent, sub-pixel-offset copies, so it stays sharp at any zoom and still looks different from the ballpoint; pen-tilt pencil strokes no longer bead at segment joints, and SVG export uses a matching opacity.
1.2.11
Added
- In-app desktop updates through
electron-updater, with differential downloads where supported, opt-in automatic checks (off by default), explicit download/restart confirmation, platform-specific manual-download fallbacks, and activity guards for recording, LAN transfers and unsaved changes. - GitHub Release publishing for platform update metadata and blockmaps; macOS ZIP target and future code-signing/notarization guidance.
Security and privacy
- Update checks use HTTPS and are made only after a manual check or explicit opt-in. Pre-releases and downgrades are disabled; update checksum verification remains enabled.
v1.2.10
Changed
- Bento UI across the whole app. Home, sidebar, folders, tags, boards, the board header, canvas, tool dock, zoom controls, pop-ups, dialogs and Settings now share one bento-style tile design (rounded tiles, soft shadows, a mosaic of wide and regular board tiles, colour-tinted folder tiles). All 12 themes, the light/dark modes and the phone layout are supported; no board data or features changed.
- Added windows portable build.
Fixed
- Minimizing the in-app browser / video window after it had been dragged or resized only moved it instead of collapsing it; it now collapses to the title bar and restores to its exact size and position.
Full Changelog: v1.2.9...v1.2.10
v1.2.9
Changed
- One offline handwriting engine on every platform. On-device recognition now uses a bundled Tesseract.js engine on Windows, macOS and Linux. Apple Vision, Windows.Media.Ocr and the system
tesseractcommand are no longer used (because they were not working perfectly all the time). All installers include the engine and English data. From source, runnpm run libsonce (replacesnpm run libs:linux; theocr-linuxfolder is nowocr-engine).
Fixed
- Minimizing the in-app browser / video window after it had been dragged or resized only moved it instead of collapsing it; it now collapses to the title bar and restores to its exact size and position.
- Moving a shape or connector now moves everything linked to it (shapes and connectors, transitively). Toggle in Settings; hold Alt to move only the selection.
- Lines, arrows and connectors now attach to the true outline of a shape (cone, triangle, star, heart, cylinder, rotated shapes...) instead of its bounding box, so there are no gaps.
- Text color picker now always registers a pick (e.g. black) - it follows the color of the selected text.
- Selecting a sticky note shows its color swatches + custom picker in the text bar.
- Paper color changes are non-destructive: original colors are remembered and restored exactly when you return to the old paper; pale fills/stickies are no longer darkened on white.
- "Fix shapes" is now off by default
- The LaTeX placement, the layer deletion that left imported pages visible, and Page Up/Page Down in present mode on an infinite canvas.
- A new Added entry for dragging layers to reorder them.
Full Changelog: v1.2.8...v1.2.9
v1.2.8
Added
- Multilingual interface. The application is now available in 22 languages: English, Arabic, Bengali, Chinese (Simplified), Dutch, French, German, Hindi, Indonesian, Italian, Japanese, Korean, Persian, Polish, Portuguese, Russian, Spanish, Tamil, Thai, Turkish, Urdu and Vietnamese.
- Language selection in [Settings → Language].
Notes
- Machine-translated strings. The non-English translations were generated with Meta AI's
facebook/nllb-200-distilled-600M(NLLB-200) neural machine translation model and have not yet been reviewed by native speakers. Some strings may be inaccurate, unnatural, or inconsistent in terminology. We apologize for any inconvenience and welcome corrections from the community (see Contributing translations in the README).
Full Changelog: v1.2.7...v1.2.8
v1.2.7
Added
- Downloadable language packs. Choosing a language in Settings → Appearance → Language downloads its pack once, saves it on your device, and translates the whole interface, including tooltips, placeholders and notices. It works the same in the desktop app and the web app, and offline afterwards. Packs live in
locales/and are keyed by the English text, so no UI text is hardcoded per language. 22 languages are listed (English, Spanish, French, German, Bengali, Hindi, Arabic, Chinese, Portuguese, Italian, Russian, Japanese, Korean, Turkish, Indonesian, Vietnamese, Tamil, Persian, Urdu, Polish, Dutch, Thai). Arabic, Persian and Urdu switch the layout to right-to-left. - Delete downloaded language packs. A new Downloaded language packs row in Settings lists every pack on the device with a Delete button. Deleting the pack you are using switches back to English first.
tools/extract-strings.pyandtools/translate-packs.pyto rebuildlocales/en.jsonand fill missing translations.
Changed
- Language switching no longer depends on Chrome's on-device Translator API, which the desktop app doesn't have. The built-in dictionaries in
index.htmlwere removed in favour of pack files. - Strings that include changing values (for example "Grouped N objects") stay in English for now.
Fixed
- Choosing a language in the desktop app did not translate the interface.
Full Changelog: v1.2.6...v1.2.7
v1.2.6
Added
- Infinite-canvas PDF export is always one page. An Infinite board now exports as a single PDF page containing everything on it. Bounds account for rotated items and full pen width/glow, so nothing is clipped. Very large boards lower the pixel density (and scale the page to a size PDF viewers accept) instead of failing or cutting content off.
- On-device handwriting recognition (offline). New Handwriting to text setting with two engines: Online (Google, unchanged) or On-device. On-device draws the selected strokes to a small in-memory PNG and pipes it to Apple Vision (macOS), Windows.Media.Ocr (Windows) or Tesseract (Linux). Linux builds also bundle Tesseract.js plus English data (as an extra resource, Linux packages only) so on-device recognition works out of the box and fully offline. No network, no API key, no temp files, one job at a time, image capped at 1600 px.
- Laser fade time. Double-click the laser tool to set how long the trail takes to fade (0.2-5 s) and the dot size. The trail is now a smooth, tapered, glowing curve with a bright head dot.
- Automatic contrast when the paper colour changes. Switching paper (white, cream, light gray, black, slate, navy) now checks every pen stroke, shape, tape, text, sticky note, formula and table (cell text and borders) and adjusts only the colours that would be hard to read on the new paper, keeping their hue where possible. Sticky note backgrounds follow the paper too (a yellow note turns a deep yellow on dark paper and back again, and always stays distinct from the paper), and their text is checked against the note's own background, as is text in filled table cells. Pen, text and shape colours for new objects are adjusted too. Previously only a light↔dark switch recoloured, so e.g. black ink stayed invisible when changing from black to navy paper.
- Created and modified dates on every board card (Home, Favorites, Protected, folders, tags and Trash). Modified only changes when you edit the board's content or title; opening, favouriting, moving or locking a board does not change it. Boards made before this update show their real creation date, recovered from the board's id, and use their last save as the modified date.
- Sort boards by name (A→Z / Z→A), date created or date modified (newest / oldest) from the new Boards selector at the top of the Home page. The choice is remembered. Default is Modified: newest.
- Sort folders by name (A→Z / Z→A) from the new Folders selector wherever folders are listed. The choice is remembered.
- Text styling inside table cells. The table bar has a new Text row: font (Handwriting, Sans, Mono, Marker, Serif), size, text colour and B / I / U for the selected cells, plus Reset (back to the table default) and ▦ All cells (select every cell). Each cell keeps its own style, so a header row can be large, bold and red while the body stays normal. Rows grow automatically so bigger text is never clipped. The in-cell editor shows the real font and colour while you type, new rows/columns inherit the style of their neighbour, and SVG export keeps the styling. The controls follow the cell you click.
- Maths in table cells.
$x^{2}$(alone or mixed with text, e.g.$x^{2}$ is a square) is typeset as a formula when you finish editing a cell. With Auto-math on, typingx^2/3+sqrt(y)in a cell becomes a typeset equation, like in text boxes. Formulas wrap with the text, rows grow to fit them, and they appear in SVG export. Cells starting with=stay spreadsheet formulas, and plain amounts such as$5 and $6are not treated as maths. - Border line style. A new Solid / Dashed / Dotted selector next to border thickness and colour (board and SVG export).
- LaTeX button works inside tables. With a table cell selected (or just edited), the LaTeX dock button now inserts the formula into that cell. The dialog title shows the target, e.g.
LaTeX → cell B2; the formula is added after any text already in the cell. Without a selected cell it inserts a free-floating formula as before. - Style bar for selected objects. Selecting objects with Select / Lasso now shows a style bar just above the selection bar:
- Strokes: change the brush (fountain, calligraphy, soft paint, ballpoint, pencil, square / chisel / round highlighter), the brush size and the line type (solid, dashed, dotted, dash-dot, long dash, short dash). The stroke is redrawn with the new brush and width, and highlighter brushes pick up their usual opacity.
- Shapes: change line type, corner type (rounded / sharp), border width, border colour and fill colour (swatches, any colour, or no fill).
- Colour for any selection: a colour row (swatches plus any colour) recolours every selected stroke, shape, tape, formula, text and table. It also appears alone when you select a mix of different objects. Several strokes or several shapes can be restyled together, and every change can be undone with Ctrl+Z.
Fixed
- Table colour. The main colour palette ignored tables. It now recolours the whole selected table (text, borders and per-cell text colours), and the light/dark theme switch also flips per-cell text and border colours so they stay readable.
- Border thickness, colour and style. These controls did nothing until you pressed a border button. They now update the selected borders immediately (re-applying the last border mode, or All if none was chosen yet).
- Selecting a table. Selecting a table with Select / Lasso (no cell chosen) now means the whole table: fill, text style, borders and colour apply to every cell instead of only A1, and the highlight covers the whole table. Clicking or dragging across cells still selects just those cells.
Improved
- Smoother ink. Pen input uses every coalesced pointer sample, redraws once per frame, and fountain/calligraphy strokes are curve-smoothed at render time (saved data is unchanged).
- Smoother eraser. The eraser sweeps the gaps between pointer samples, so fast strokes no longer skip over ink.
Full Changelog: v1.2.5...v1.2.6