Open for client projects

Workbench Soft is an independent studio. It makes apps for Android, iPhone, the web, Windows and macOS, and takes each one from the first spec to the store, to search results and to the updates after.

Projects
16
Features shipped
170
Platforms
6
Ads on this site
0
AstroReact NativeExpoNext.jsReactTypeScriptRustTauriCapacitorCloudflare WorkersFirebaseWebGLMapLibreWeb AudioMIDIExifToolWebDAVTailscale.NETGitHub Actionsmise
01 / Services

What the studio builds for you

The same team that shipped the apps below can build yours. Each line of work links to the projects that prove it.

Mobile apps

Android and iPhone apps in React Native and Expo. Background services, wake words, maps, offline data and in-app purchases. Released to Google Play, or as an APK that updates itself.

Web apps and PWAs

Next.js, React and Astro apps that install to the home screen and open with no network. Hosted on Cloudflare Workers, with pages search engines can index.

Desktop and system tools

Native apps in Rust and Tauri for Windows and macOS. Keyboard hooks, tray icons, file sorting with undo, and installers that update themselves.

Maps, voice and audio

Live maps with turn by turn routes. Offline wake words and speech to text. Synths, effects and MIDI in the browser.

Launch and growth

Google Play listing and release, Search Console, sitemaps and structured data. AdMob and AdSense with the consent message, then a plan for the first users.

Engineering and AI tooling

CI on your own hardware, shared GitHub Actions, and skills that make coding agents follow a team's rules from the ticket to the merge.

02 / Projects

The work, feature by feature

Each project below lists what it does for the person who uses it. Press / to search any feature.

Apps

01 / MEM

Memories

On this day photos from your own NAS.

Platforms
AndroidWindowsmacOSNAS
Stack
ExpoReact NativeRustTauriWebDAVTailscale

Memories shows this day in earlier years, from the photos and videos on a home NAS. It works like the reminders in Google Photos, and the photos stay on hardware the owner keeps at home.

  • Daily reminderA notification at the chosen time names the year and the place, such as "3 years ago in Japan". Trips abroad go first.
  • TodayThis month and day in each year of the library. A tap on the date picks any other day.
  • TripsA run of days with photos abroad becomes a trip. One link opens its photos from the first day to the last.
  • Photos and archiveEach photo and video, newest first, under a header per day. The archive lists each year and month with a count.
  • PlacesEach day names where it was. A filter bar searches places and picks devices.
  • Camera and drone shotsShots from a camera or a drone get their own group beside the phone shots.
  • Pinch to resizeA pinch sets 1 to 6 tiles per line, shared by each grid and kept between launches.
  • Send many at onceA long press starts picking. The picked photos go to any app in one share.
  • Album linksPicked photos become a link. The other person opens the album in a browser, with no app or account.
  • OrganizeStep cards sort the photos on the phone, move them to dated folders on the NAS and free up the phone.
  • Sort on the NASPicked NAS files get their dated name and folder, on the NAS and in the index at once.
  • ViewerPhotos and videos full screen, with a swipe to the next. Videos play straight from the NAS.
  • Connect to the NASThe app finds the NAS on the Wi-Fi. One login opens the photo folder over WebDAV.
  • Away from homeA second address through Tailscale reaches the NAS without opening it to the internet.
  • Sync progressA banner tells what the phone and the NAS index hold, what runs now and what comes next.
  • Mobile dataThe first sync on mobile data asks first. A switch in Settings changes the answer.
  • Index on the NASAn indexer on the NAS reads the photos from its own disk, far faster than a sync over WebDAV.
  • Move to a new phoneThe new phone takes the index from the old one, in place of a first sync that takes hours.
  • English and RussianThe app follows the phone language. Android 13 and later set it per app.
  • Light and darkFollows the phone, or a fixed choice in Settings.
  • Remove adsA one time Google Play purchase hides the ads on each phone with the same Google account.
02 / STC

SpotTheCam

Speed cameras of Australia and New Zealand on one map.

Platforms
WebAndroid
Stack
Next.jsCapacitorMapLibreCloudflare Workers

SpotTheCam puts the official speed camera sites of the Australian states and New Zealand on one map. Each marker carries the limit that applies right now. The Android app adds voice warnings, a trip log and turn by turn routes.

  • On the map, in any browser
  • Live limitsEach camera shows the limit at this moment. In a school zone the number follows the zone's timetable.
  • Suburb searchType a suburb, and the map flies to its cameras.
  • Camera typesA press keeps only the types you need. The browser remembers the pick.
  • Follow meThe map follows you and turns to your heading. Street names and signs stay upright.
  • Camera detailsA marker opens the type, the address, the limit now and a link to the official source.
  • Works offlineThe camera list and each map area you opened stay on the device. It installs as an app.
  • Light and dark mapAuto matches the device, or pick one in the gear menu.
  • In the Android app
  • Speed badgeYour speed beside the road's limit. The badge turns red above it.
  • Camera warningsA beep about 20 seconds ahead, then "Speed camera ahead. Limit 60." It reaches the lock screen too.
  • Over the limit"You're doing 72. Slow down." Near cameras only, or on any road.
  • Trip logDrives and walks record on their own. Each route shows your speed at each camera, green or red.
  • Share a tripA link shows the route in any browser. Stop sharing removes it from the server.
  • DistanceLarge digits give the km of the current trip and the total for the day.
  • Turn by turn routesThe fastest order through the stops, turns called at 500 m and 200 m, around today's traffic. A wrong turn gets a new route.
  • Route optionsAnd back, on foot, or around toll roads. Favourites such as Home go on the route with a tap.
  • Hey Spot"Hey Spot, go to Bondi Beach, Manly and back." An offline model on the phone hears the wake words.
  • Screen stays onThe map stays lit on the dashboard while the app is open.
  • Self-updateThe APK checks GitHub for a newer release, with the size, progress and a cancel button.
03 / GUP

Guitar Upscale

A guitar you play in the browser.

Platforms
WebAndroid
Stack
Next.jsReactWeb AudioMIDICapacitorCloudflare

Guitar Upscale shows scales and chords on a virtual fretboard, records loops and saves them as MIDI. It edits songs note by note, shows them as tab, and installs to the home screen.

  • FretboardThe fretboard fills the screen, marks the notes of the scale and plays each note you tap.
  • Scale, tuning and capoOne button names the key and mode, and opens the pickers for scale, tuning and capo.
  • TunerListens through the microphone, with a dial that grows with the window.
  • Chords of the keyOne chord per scale note, such as Em F#dim G Am Bm C D for E minor.
  • StrummingA held chord strums a pattern in time with the clock. Patterns are editable.
  • Song listBuilt-in songs and your own. Songs that fit the current scale show in green.
  • Voice searchSay a song name. The words fill the search as you speak.
  • Hey Guitar"Hey Guitar, play Metallica One." The app answers "Listening" and plays it.
  • MIDI recordingRecords the notes and chords you play. Notes the app plays back stay out of the take.
  • LooperShort loops on several channels play together.
  • QuantizeOne length from 1/1 to 1/64 sets the grid, the recording and the looper, as in Cubase.
  • Piano rollDraw, move, stretch, copy and erase notes. The ruler marks verse, chorus, bridge and solo.
  • Tab viewA track as Guitar Pro style tab, with a playhead that follows the song.
  • Chord sheetChord names in bars that light up with the song. The words open on Musixmatch.
  • Song uploadGuitar Pro and MIDI files join your song list.
  • Find a song onlineSearches 4 song sites at once. A Songsterr song turns into a Guitar Pro file.
  • Chord and scale detectionPlay, and the app names the chord or the scale it hears.
  • InstrumentsLead and chord instruments apart: sitar, banjo, koto, strings and more.
  • EffectsReverb and delay, each with its own switch and sliders. The sound changes as a slider moves.
  • MIDI exportFiles download, or go out through the share sheet.
  • Paid tiersPatreon sign in or a Google Play purchase unlock the Explorer and Composer tools.
  • Install and offlineA PWA that opens full screen in landscape. The Android APK updates itself.
04 / TCK

Tickalot

Shopping, packing and sightseeing lists you share by link.

Platforms
AndroidWeb
Stack
ExpoReact NativeFirebaseOpenStreetMapWikipedia

The other person opens the link and ticks items, and each tick shows on both phones at once. There is no sign up. Lists stay on the phone, and a shared list also goes to the cloud.

  • Share by linkBoth phones see each tick live. Edits made offline sync once the network is back.
  • Base listThe things you usually buy. A few taps turn it into this week's list, with amounts and notes.
  • Type or say many items"Croissants 2 packs of 3, organic eggs" becomes 2 items with amounts. English and Russian.
  • PicturesThe app picks an emoji from each item's name. One tap adds a photo.
  • Store aislesPick the shop from OpenStreetMap and type an aisle once. The list then follows your walk.
  • Shared aislesAisles one shopper types fill in for each person who picks the same shop.
  • Coles and Woolworths pricesA unit price under each item, with the cheaper shop in green.
  • Packing for a tripEach trip starts as a copy of your usual packing list.
  • Things to seePlaces from Wikipedia, spread over the days of the trip.
  • Done listsA finished list tidies itself away, with no clean up by hand.
  • Light and darkFollows the phone, or a fixed choice.
  • UpdatesThe APK offers a newer release with its size and a warning on mobile data.
  • Remove adsA one time purchase. People in Europe see the consent form before any ad.
05 / KPD

Keeppad

Voice notes you start by saying "Hey Keep".

Platforms
AndroidiPhoneWeb
Stack
ExpoReact NativeFirebaseOn-device speechGemini Nano

Say "Hey Keep" and the app replies "Recording". It types out what you say next and files the note in the right group, with the app closed and the screen off.

  • Hey KeepA wake word the phone listens for in the background. "Эй, Кип" works too.
  • Stop and continue"Stop" ends the note at once. "Hey Keep, continue" adds to the newest note.
  • Record by buttonThe words show on screen as you talk.
  • RecordingsOn Android 13 and later and on iPhone, a note keeps its sound.
  • GroupsTo do, Shopping, Ideas, Work and more. On-device AI picks the group on phones that have it.
  • English and RussianA note uses either language or both. On Android 14 a note can switch language at a pause.
  • Share by linkThe other person opens the note in the app or a browser, and both edit it live.
  • Send to other appsNew notes go to Obsidian, Notion, Todoist, Google Docs or OneNote.
  • WebsiteShared notes open in a browser, beside the guides and the policies.
  • In-app updateThe APK finds a newer release, downloads it and opens the installer.
  • Light and darkFollows the phone, or a fixed choice.
06 / SVH

Servo Hop

Australian fuel prices on a map, with each servo's history.

Platforms
WebAndroidiPhone
Stack
ExpoReact NativeMapLibreCloudflare Workers

Servo Hop reads the state fuel price schemes and puts each servo on a map, coloured by price. It keeps the daily history and shows EV chargers too. It is free and needs no account.

  • Prices on a mapGreen pins for the cheapest third, amber for the middle and red for the dearest.
  • Station listThe servos in view, cheapest first, with brand, suburb and when the price changed.
  • Price historyThe daily average over a band from the low to the high, for 30, 90 or 365 days.
  • Driver reportsWhere no state feed exists, drivers send the price on the board.
  • EV chargersNetwork, plugs and top power. Drivers report the price per kWh, and the app keeps its history.
  • Search pagesA page for each state, suburb and servo, with structured data and a sitemap.
  • Self-updateThe APK checks GitHub on start and on each return, and shows the download in the header.
  • Remove adsA one time Google Play purchase, restored on a new phone.
07 / CNS

Consdr

Lease, loan or cash: what a car costs in Australia.

Platforms
WebAndroid
Stack
ReactViteCloudflare WorkersService worker

Consdr shows the total cost of the same car over the same term as a novated lease, a car loan and a cash purchase. Each fixed number in the working links to its source.

  • Three ways side by sideLease, loan and cash, each as one total for the whole term.
  • Where the money goesEach total splits into the car, finance, running costs, tax and missed interest.
  • Lease and loan settingsRate, balloon, fees, fuel through the lease and the FBT exemption.
  • FBT by car typeThe rule for an electric car, a plug-in hybrid or a petrol car, by start date and price.
  • Stamp duty by stateAll 8 states and territories, from the price, car type and start date.
  • Account interestThe money grows each month in a mortgage offset or a savings account, so the comparison stays fair.
  • Borrowing for a homeHow much less a bank would lend while the car is paid off.
  • Working and sourcesEach step of the sum, with a source for each fixed number.
  • Common questionsAnswers on leases, the EV exemption, balloons and home loans.
  • GuidesPlain pages on novated leases, FBT, balloons and stamp duty, with numbers from the same rules.
  • Saved inputsA reload keeps your fields. Reset to defaults clears them.
  • OfflineThe calculator opens with no network after the first visit.
  • Colour themeAuto, Light or Dark.
  • Remove adsA one time purchase in the Android app.
08 / LFP

Langflip

Fixes words typed in the wrong keyboard layout.

Platforms
WindowsmacOS
Stack
RustWin32Dictionaries

Type ghbdtn with the wrong layout on, and Langflip types «привет» in its place and switches the layout. English works the same way. It runs offline and keeps no log of what you type.

  • Fix while typingFrom the 4th letter, a word that only makes sense in the other layout gets typed again in it.
  • Short wordsWords under 4 letters change on Space, Enter or Tab, only when the other layout gives a real word.
  • Digits keptьз3 turns into mp3.
  • Undo a fixPause right after a fix brings the word back and remembers it.
  • Convert by handShift+Pause converts the last word to the other layout.
  • Skip apps and fieldsPassword fields, admin windows and any app in the settings stay untouched.
  • Layout on the iconThe tray shows EN on blue or RU on red for the window in front.
  • Pause with a clickA click on the tray icon turns fixing off, and the icon turns grey.
  • Switch with a double clickA double click on the icon switches the layout of the window in front.
  • Start at loginTurns on at the first start, with a switch in the tray menu.
  • Settings fileExcluded apps and words to keep, in one TOML file.
09 / MOR

Media Organizer

Sorts photos and videos into folders by date and place.

Platforms
WindowsmacOSAndroid
Stack
TauriRustReactExifToolLeaflet

A desktop app that reads when and where each photo was taken, then moves it into a year, place and day folder. It shares the folder rules of Memories, so the phone and the computer sort the same way.

  • ScanLists each file of the picked folder while it walks the folder.
  • Capture datesA bundled ExifTool reads the date, the camera and the GPS of each photo and video.
  • Places offlineGPS turns into a place folder with no network.
  • Plan firstThe app shows the new folder and name of each file before any file moves.
  • MovesConfirmed files move, with pause, resume and cleanup.
  • History, undo and redoEach run goes in a log and replays either way.
  • SettingsDestination folder, rename only, group by place and the home location.
  • File tableRows with statuses, filters, a place map and a status bar.
  • Self-updateChecks at start and on return, shows the download, then asks to restart.
  • One command installOne PowerShell line installs the latest release, with no admin rights.

Developer tools

10 / SKL

Agent Skills

Skills that make a coding agent work like a studio.

Platforms
Claude CodeCodexCopilot
Stack
MarkdownShellPowerShellHooks

A set of skills for coding agents: write like a person, plan in a spec, do a ticket, open a pull request and answer its review. Other skills audit a whole app, or take a site live with search, ads and Google Play.

  • Plain writingRules that strip the AI tone from chat, commits, docs and UI copy.
  • Specs firstEach feature starts as a spec in the repo, and the work follows it.
  • Ticket to mergeReads a ticket, builds it in its own worktree, opens the PR and moves the ticket.
  • Pull requestsShort PR bodies with flow diagrams, and one commit per review thread.
  • Code reviewA review against a checklist, with each finding checked against the code.
  • App auditParallel reviewers per lens, such as security and performance. The safe findings get fixed.
  • Architecture and monoreposLayered packages, shared API contracts and CI per app.
  • LaunchSearch setup, AdMob and AdSense, Google Play release and a marketing plan in one run.
  • In-app updatesSelf-update for sideloaded apps, left out of the Play build.
  • Repo careWorktrees, repo moves, history resets and secret rotation.
  • Names and domainsChecks a name against domains, the business register and trade marks.
  • VoicesPlays each text to speech voice, so a person can pick one.
11 / LCI

local-ci

One script sets up a dev machine and makes it the CI runner.

Platforms
WindowsmacOS
Stack
PowerShellShellGitHub Actionsmise

local-ci gives a Mac or a Windows PC the same dev tools, then registers it as a self-hosted GitHub Actions runner. CI for private repos then builds on that machine at no cost.

  • Mac setupHomebrew tools, mise, the shell and the git config in one run.
  • Windows setupThe same tools through winget. A second run skips what is in place.
  • Self-hosted runnerThe machine builds CI jobs for the org's repos.
  • Start buttonA double click starts the latest version of the CI.
  • CI status pageA local page shows the runner and the jobs at a glance.
12 / CI

ci

Shared GitHub Actions steps for each repo.

Platforms
GitHub Actions
Stack
YAMLmisepnpmDependabot

One fix here reaches each repo on its next run.

  • Setup stepInstalls the tools a repo pins in mise, then its packages from the lockfile.
  • Dependabot detailsStores the update type of each Dependabot PR for the merge job.
  • Auto-mergeMerges a Dependabot PR once each check passes. A major update waits for a person.
13 / GIT

git-aliases

Short git aliases, ready for any machine.

Platforms
WindowsmacOSLinux
Stack
ShellPowerShellfzf

Each alias is a small script in one repo, so the same commands work on each machine.

  • git aLists each alias with what it does.
  • git sbPicks a branch with fuzzy search and moves into its worktree.
  • git dbPicks branches to delete with fuzzy search.
  • Safe installersThey ask before each change and back up each file they edit.
  • Lint hookEach commit to the repo runs the lint.
14 / GRN

gh-review-notify

A Mac notification for each review on your pull requests.

Platforms
macOS
Stack
ShelllaunchdGitHub CLI

GitHub sends reviews by email, so an approval can wait for hours. This tool checks every 3 minutes and pops a notification. A click opens the comment.

  • Reviews and commentsEach review and comment on your open PRs, within 3 minutes.
  • Review requestsA notification when someone asks you by name to review.
  • Comment burstsMore than 4 new comments on one PR come as 1 notification.
  • Quiet first runThe first run records the last 3 days and shows none of them.
  • Bot filterComments by bots stay silent unless you turn them on.
  • Status and testOne flag prints the state, another sends a test notification.
15 / ORR

Open in Remote Repo

A VS Code extension that opens a file on GitHub, GitLab or Bitbucket.

Platforms
VS Code
Stack
TypeScriptVS Code API

A fork of Open in GitHub by Stanislav Sysoev. It opens or copies the link to the file, its blame or its history, with the selected lines marked.

  • File, blame and historyOpens each one on the remote host, with the selected lines.
  • Copy a linkThe same links go to the clipboard, with a notice that shows the URL.
  • From the ExplorerA right click on a file or folder opens or copies its link.
  • Main or master firstLinks point at a branch that already holds the file.
  • Hosts and mapped URLsGitHub, GitHub servers, GitLab, Bitbucket and Bitbucket Server.

Archive

16 / MWN

Memories for Windows

The first Memories: a tray app with a sync service on the NAS.

Platforms
WindowsNAS
Stack
.NETWPFDockerLiteDB

A service in Docker on the NAS read the date of each photo into a database per day. The Windows app sat in the tray and opened the photos taken on this day. The phone app replaced it.

  • TrayThe app waits in the tray. A click opens the gallery.
  • Daily reminderOnce a day a notification calls you to that day's photos.
  • Gallery by periodPick a day or a span of years, and the photos load as you scroll.
  • Photo windowOne photo large, with the next and the previous a key away.
  • Details and mapThe camera details and the place on a map.
  • SendPicked photos go out in one action.
03 / Process

From the first spec to the store

Each project above went through the same steps. A client project goes through them too, and sees each one.

  1. 01

    Spec

    Each feature starts as a written spec in the repo: what it does for the person, the flows and the limits. You read and approve the same file.

  2. 02

    Build

    The work happens on its own branch, with its own database, port and emulator. Each step is a commit with passing checks.

  3. 03

    Review and ship

    A pull request with diagrams of the user flows, then CI. Green checks merge, and the docs change in the same PR.

  4. 04

    Launch and run

    Store release, search setup and updates inside the app. The README, architecture and feature docs stay true after each change.

04 / Contact

Have an app in mind?

Write a few lines about the idea, the platforms and the deadline.

$ mail workbench.soft@gmail.com

Write an email
Esc