mirror of
https://github.com/actualbudget/actual.git
synced 2026-05-06 07:01:45 -05:00
Closed
opened 2026-04-26 01:31:47 -05:00 by GiteaMirror
·
36 comments
No Branch/Tag Specified
master
claude/hide-default-categories-1cwBZ
matiss/crdt-source-loading
youngcw/unlock-duplicates
matiss/crdt-protobuf
release/26.5.0
claude/update-issue-template-ykMNn
claude/fix-issue-7667-DPXi3
cursor/formula-feedback-improvements-4223
cursor/resolve-pr-7449-ee11
claude/fix-typescript-build-error-JPtZ5
jfdoming/api-tokens-part-3
jfdoming/api-tokens-part-2
jfdoming/api-tokens-part-1
claude/speed-up-vrt-workflow-ZAyI5
claude/crdt-version-auto-publish-Ph1BH
copilot/add-repository-configs-to-packages
worktree-compressed-drifting-ritchie
worktree-mellow-strolling-dawn
matiss/browser-api
claude/api-consumer-verification-kfz1K
feature/enable-banking
cursor/transaction-table-rewrite-f077
pr-7454
claude/fix-issue-7410-LLLQ4
release/v100.0.0
revert-7350-trim-deps
revert-7220-sankey-report
revert-7242-fix/split-parent-update-corruption
revert-7281-generate-icons
claude/electron-to-tauri-migration-LjBN8
worktree-remotion
release/vv26.4.0-pre
claude/browser-compatible-api-QbhHh
claude/improve-cli-transactions-waTUY
claude/publish-react-native-ios-j8qoT
js-proxy
claude/fix-flaky-ci-job-5gDdz
react-query-rules
react-query-useSchedules
claude/nightly-theme-validation-scan-DzOGD
claude/debug-simplefin-error-ZuKzB
matiss/desktop-client-subpath-imports
claude/fix-simplefin-ssrf-T31gX
claude/release-notes-validation-X7rvR
add-claude-github-actions-1772738270730
cursor/sync-performance-notification-9899
react-query-prefs
matiss/chunked-sync-and-progress-ux
v26.2.1
copilot/sub-pr-6880
fix-react-query-clear-on-close-budget
copilot/sub-pr-6140
feat/auto-note
feat/scoped-bank-sync
cursor/desktop-transactions-react-table-1d0c
fix-exhaustive-deps-App
copilot/fix-find-replace-bug
release/v26.2.0-pre
matiss/browser-tests
mobile-fix-drag-and-drop-across-groups
budget-table-v2
PayeeAutocomplete2
pglite
bugfix/plugins/fix-plugins-sw
feat/plugins/plugins-core-package
prerelease
matiss/unicode-minus-fix
cursor/fix-actual-github-issue-6206-gemini-3-pro-preview-9c37
TransactionFormPage
cursor/implement-mortgage-and-loan-account-type-78ca
tests-update-fill-with-pressSequentially
mobile/link-modal
deps/25.11
cursor/fix-update-vrt-apply-ci-job-dispatch-b324
sync-server-plugins
cursor/propose-patch-for-github-issue-5680-2a18
fix/compiler-preserve-inner-dollar-escapes
cursor/analyze-actual-budget-issue-and-propose-fix-5b70
coderabbitai/docstrings/0c070e5
cursor/add-wip-prefix-and-comment-to-prs-d78d
jfdoming/08-21-auto-focus-on-navigate-in-all-browsers
show-totals-on-mobile-budget-banners
allow-child-transactions-make-transfer
mobile-calculator-keyboard
payee-geolocation
enhance/restore_scroll_position
dm-fix-second-click-on-mobile-new-transaction-2
scrollToLocationBudget
alert-autofix-38
tsconfig-composite
mobile-fix-uncategorized-transactions-on-tracking-budgets
server-budget-handlers
fix-sql-injection-in-cleanup-template
non-chrome-draggable-workaround
mobile-budget-page-swipe-navigation
ts-db-all
stable
dark-theme-with-brand-colors
fix-mobile-delete-group
ts-db-select
UnderKoen/reconcile-context-menu
master-before-server-merge
v25.2.1
ts-runQuery
rename-redux-hooks
UnderKoen/3557-persist-state-in-history
remove-redux-CLOSE_BUDGET
fix-exhaustive-deps-errors-FinancesApp
redux-toolkit-createSlice-backup
accounts-function-component
ts-useSplitsExpanded
loot-core-server-package
useTransactios-in-TransactionEdit
react-aria-input
move-redux-to-desktop-client
QueryState-type
fix-themes-applied-late
mobile-vrts
revert-3295-spendingCardFix
react-aria-button-4
split-payee-on-mobile
twk3/pin-apis-crdt
notes-tag-autocomplete
ts-LoadBackup
dnd-kit
package-upgrades
v26.5.0
v26.4.0
v26.3.0
v26.2.1
v26.2.0
v26.1.0
v25.12.0
v25.11.0
v25.10.0
v25.9.0
v25.8.0
v25.7.1
v25.7.0
v25.6.1
v25.6.0
v25.5.0
v25.4.0
v25.3.1
v25.3.0
v25.2.1
v25.2.0
v25.1.0
v24.12.0
v24.11.0
v24.10.1
v24.10.0
v24.9.0
v24.8.0
v24.7.0
v24.6.0
v24.5.0
v24.4.0
v24.3.0
v24.2.0
v24.1.0
v23.12.0
v23.11.0
v23.10.0
v23.9.0
v23.8.1
v23.8.0
v23.7.2
v23.7.1
v23.7.0
v23.6.0
v23.5.0
v23.4.2
v23.4.1
v23.4.0
v23.3.2
v23.3.0
v23.2.9
v23.2.5
v23.1.12
v22.12.9
Labels
Clear labels
AI generated
API
bank sync
budgeting
bug
can’t replicate
dependencies
docker
documentation
electron
experimental feature
feature
feedback
goal templates
good first issue
help wanted
importers
maintenance
needs info
needs testing
needs triage
needs votes
openid
payees
pull-request
regression
reports
responsive
rules
schedules
server
✨ merged
split transactions
tech debt
theme
transaction import
transaction reconciliation
transactions
translations
upstream
user interface
✅ approved
wontfix
Mirrored from GitHub Pull Request
Milestone
No items
No Milestone
Projects
Clear projects
No project
No Assignees
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: github-starred/actual#41967
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @trevdor on GitHub (Mar 22, 2023).
Original GitHub issue: https://github.com/actualbudget/actual/issues/804
Verified feature request does not already exist?
💻
Pitch: what problem are you trying to solve?
RFC: Actual Mobile Strategy
Note: Throughout, I’ll use the terms “desktop” and “mobile” as shorthand for wide vs narrow viewports. It’s just a convenience. The switch could just as easily be based available screen width, and in any case, a preference could be stored to allow folks to set a preferred view independent of device or viewport. But all that is a separate discussion.
Purpose of this Document
Mobile Support Goals
A. On mobile, Actual will focus on the most common budgeting tasks and on-the-go transaction entry and editing. Some extended budgeting features will be limited to the desktop version.
B. Actual should feel like a native app whenever possible. Besides look and feel (app icon, styling, page transitions, etc.), it should leverage best practices for progressive web apps including offering installation on platforms that offer it, offline awareness, etc.
C. Actual should feel comfortable on small phones. We will likely not be able to fit all components in such a small space, but Actual ought to offer a good experience down to 375 x 667 pixels (that is, 750 x 1334 with pixel device ratio
2). This is equivalent to iPhone SE.Intended Feature Comparison
For now, it is not a community priority to bring other features to mobile. Specifically, this means we do not currently want to build mobile features to manage Settings, Payees, Rules, and Schedules, nor to view Reports.
Methods
Wherever practical, pages should be mobile-first responsive. For certain complex pages, we'll render different components for desktop and mobile.
Maintain a top-level
React.Contextto track which mode we're in, mobile or desktopUse CSS media queries for responsiveness within a component or view, not for deciding whether we're desktop or mobile
Utilize distinct routes where mobile components or interactions differ from desktop. Same route means same view.
/accounts/<uuid>/transactions: account transaction list/accounts/<uuid>/transactions/new: transaction entry modal/accounts/<acct_uuid>/transaction/<tx_uuid>: transaction edit modalDesktop components should still be responsive
Areas of Work Related to Mobile Support
Global desktop/mobile context 🚀 Merged
Basic mobile transaction entry/edit 🚀 Merged - thanks, @Cldfire
Split transaction support on mobile
Mobile budget editing
Desktop responsiveness
PWA Support
@modrzew commented on GitHub (Mar 22, 2023):
Hey there! Raising my hand for the mobile transaction entry/edit screen. As I'm using Actual now this is a feature I'm missing much from the YNAB mobile app. I'm happy to try diving into the old code and salvage what can be reused.
As for the RFC itself, it looks really solid 🚀 that being said, I'll probably have more constructive feedback once I get to play with how Actual used to look like on mobile 😄
@Sinthoras7 commented on GitHub (Apr 8, 2023):
Yes, I also want to say thank you for developing this software and that it is in my opinion essential to create a possibility to add transactions on mobile (and that a PWA would be great).
@edersong commented on GitHub (Apr 8, 2023):
Agreed!!
If a pool is created, it will win for sure!!
@aaroneiche commented on GitHub (Apr 9, 2023):
I've only begun to use Actual, so I'm still getting my feet wet. I wanted to add that a mobile interface (especially a responsive one) needs to be quite flexible to the different screen sizes out there. I raise this personally because I'm an iPhone 12 Mini user - my screen dimensions are substantially smaller than many mobile users.
@trevdor commented on GitHub (Apr 9, 2023):
@aaroneiche That’s a good call-out! I‘ll add a note to the RFC when I’m back at my computer. We’ll definitely accommodate the smallest phones. I’m on an iPhone 13 mini myself.
@trevdor commented on GitHub (Apr 19, 2023):
@modrzew Any luck reviving those React Native components for web?
I think I'll find time soon to help move this forward, but want to make sure I don't start a separate effort from you.
@modrzew commented on GitHub (Apr 25, 2023):
Hey @trevdor, nope, sorry — I attempted to run the React Native app a few times since then, and each time I went down the rabbit hole of why it's not working on my Mac, until real life called me back 😞 that's the bad news. The good news is, because of that I'm not blocking you 🙂
@Meganitrospeed commented on GitHub (Apr 25, 2023):
Is there any reason we just dont modify the current Play Store and iOS app and make them compatible with Self-Host?
Ofc it costs money to host at iOS and Play Store, there are free repositories though or we can just make it available on the github repo
@alekslyse commented on GitHub (Apr 28, 2023):
First I want to say its a great project and I actually had no idea it existed before just stumbling over it today. Currently using ynab and can just speak for that.
is it more than the mobile ui of the server version? I spun this up in docker and at least me, I found the mobile version lacking in basic things like assigning categories and payees on mobile. Would it not be natural to be able to sort transactions on the phone?
I sadly don’t have time to start with helping too much, though maybe I will!
The creator should setup a sponsorship option as at least I would be more than happy to sponsor with some bucks pr month.
I also agree with those who said why not let the native apps use the self hosted?
@aaroneiche commented on GitHub (Apr 28, 2023):
Yes - That's in fact what this particular issue is all about. Actual started out as proprietary code sold as a service. When it became an open source project the focus became getting a working version and accommodating the immediate needs of the community. There are few of us, so it's up to whomever wants to work on the code and work on what. The reason for the mobile version's limited functionality is of necessity.
That's certainly an option. I think the problem at this point comes down to:
With Apple (and to a lesser extent Google) there are a number of hoops to jump through to get an app to run on a device. It has to be built, signed, and distributed (the last one requiring a paid Apple Developer Account) This is why it's appealing to work on the mobile version of the server frontend - It's automatically part of the deployment, it's free, and doesn't require any additional monetary cost. Android's a little easier because you can side load, but it's still a hassle.
@aaroneiche commented on GitHub (May 1, 2023):
I realize that templates are still an experimental feature, but thinking on it I feel like we need a proper "template constructor" tool rather than just writing something out in the category notes, as this experience is likely to be pretty awkward on a mobile screen.
@j-f1 commented on GitHub (May 1, 2023):
Agreed, see my comment on #496.
@ashutoshsaboo commented on GitHub (May 10, 2023):
Hi all, just stumbled upon this issue. I was searching for a similar mobile support of actual budget and came across this ios app - https://apps.apple.com/in/app/actual-budget-your-finances/id1444818585 . It uses Actual Budget not just in name, but also if you expand it's overview/app description section it has links pointing to same domain name: actualbudget.com as well, which makes me wonder . Just wanted to double check is this an official app by Actual budget or a bad impersonation of actual budget by some other company?
@YagiOoda commented on GitHub (May 10, 2023):
This is from the previous Actual Budget before it went open source. It points to the old website which is currently transitioning to the community! That app will not be able to connect to open source instances.
@jlongster commented on GitHub (May 10, 2023):
@ashutoshsaboo that is the official app for the hosted version of Actual. I'm the creator of Actual and it used to be a closed source subscription and I supported these native apps. The hosted subscription is being wound down however, along with these apps. I'm working on this right now.
The code for the mobile apps still exists; it used to be in this repo but because it's not supported has been moved here: https://github.com/actualbudget/actual-mobile-archive. Overall, getting it to build is complicated, but you could theoretically do it and get it working with your own version. It's complicated by the fact that Actual is a fully local app, so the entire app has to run on mobile. I did this by using nodejs-mobile which is unfortunately not being maintained anymore.
@ashutoshsaboo commented on GitHub (May 10, 2023):
Ohh thanks @jlongster , @YagiOoda for clarifying!
@jlongster : Would it be please possible to add a "configure remote host" base url at the login time in the ios/corresponding platform apps? That ways everyone could just plug in their own base remote actualbudget host instance urls - and the same app could make those requests dynamically to the correct host? Many apps do it similarly - for example check out https://standardnotes.com they also support logging in using self hosted instances from their own original web/ios/android app itself. This is because for everyone to build their ios app clone and listing it on ios app store for updates, is a much more complicated process rather than just self hosting the backend server which the same common actualbudget app can invoke? Thoughts?
It also stays much more safer that ways.
@rich-howell commented on GitHub (May 10, 2023):
Hello,
Thanks for your message, the mobile apps are no longer supported by the Actual Budget OSS project, if we start making changes for one person then we will have to make changes for everyone, you are however free to clone them, edit as you wish but they will not be included in the Actual repo.
We have a responsive mobile version of the web app which is the focus for actual budget now.
The mobile apps are and will not be revived into support for Actual Budget.
Thanks
Rich
@jlongster commented on GitHub (May 10, 2023):
@ashutoshsaboo To add more to what Rich said, distributing native apps is extremely difficult, requiring fees, configuration, certs, complicated build processes twice (for iOS and Android which have 2 completely different systems). I should have made the webapp responsive from the beginning and avoided the native apps. It would have freed up a lot of my time. There won't be any more updates to the mobile App and it'll be removed soon.
It's not as simple as just updating it once for the self-hosted version; as the webapp changes the community would have to also deploy a new mobile app each time. This is especially the case with Actual which is a fully local app, so the entire app runs on your phone. Any logic that changes for the app would have to be deployed there. Like Rich said, the community decided to invest in the webapp (which I think is a smart choice)
@ashutoshsaboo commented on GitHub (May 10, 2023):
Thanks @jlongster @rich-howell for chiming your thoughts! I agree a responsive PWA with mobile support would indeed be far more sustainable and easy to manage in comparison to apps for various platforms.
Just one small query @rich-howell : when you mentioned above that the current focus is to make a "responsive mobile version of the web app" - i understand responsiveness, but are you also planning to make it a PWA so it can be installed on mobile homepage (as well as on desktops) to give a native feel of an app? That should give the best of both worlds too. What do you think? Is that something that could be doable?
@trevdor commented on GitHub (May 10, 2023):
Definitely, @ashutoshsaboo! That’s where we’re headed. Installable with offline support (we’re a local-first app, after all).
I think once the mobile UI is a little further along, it will be appropriate to start adding things like a manifest, service worker, and all the stuff installable apps need. Something I’m interested in working on, among others.
@ashutoshsaboo commented on GitHub (May 10, 2023):
That's really nice to hear, @trevdor ! 🚀🚀 Really looking forward to more updates for mobile PWA support!!
@ezra-en commented on GitHub (Jul 12, 2023):
Just wondering, what's stopping us from having the native app point to the webapp? As long as the webview supports PWAs, we shouldn't have too much of a problem if we solve the storage portability issue.
Seems like there are other, slightly different alternatives as well: https://developer.mozilla.org/en-US/docs/Web/Progressive_web_apps/Guides/Making_PWAs_installable#installation_from_an_app_store
@rmarfil3 commented on GitHub (Jul 23, 2023):
I think the issue is more than just maintaining separate code bases for different platforms, but also the overhead of setting up pipelines, going through app reviews, dev subscriptions/payments, resolving specific platform issues, etc. for each of the popular app stores. Going with webapp, those overheads are eliminated and devs can just focus on the app.
@CharlieMK commented on GitHub (Aug 6, 2023):
Hello! Very recent user of Actual here. I’m still exploring the options. But also happy to think along and provide feedback. After reading through this RFC, I understand the reason for focusing on the web app. I do have two comments:
What puzzles me a bit is why there does seem to be focus on developing a desktop app while for mobile there seems to be agreement to use the web version. Were there specific reasons that led to this decision? I would guess these reasons would also apply to the native app discussion (personally I’d like to use my mobile phone for day to day budgeting and use a pc more sporadically for the reporting functionalities).
I’m using IOS lockdown mode. The web app simply does not work currently. I have attempted to investigate why, but I was unable to find out. Going for a native app would allow users like me to whitelist the native app. I know I am an edge case, but I came to Actual mostly because of a distrust in others apps that host data on private servers using proprietary code. I think the focus on security, privacy, and local first is a major advantage. This will attract more users like me who may have lockdown enabled.
@Keboose commented on GitHub (Aug 13, 2023):
Is the current state of this issue implying that transactions can be added and edited in a mobile browser? I just want to make sure before I open a redundant one, because I can't seem to interact with my instance at all on mobile.
I'm running the docker image behind a reverse proxy, version 23.8.1, and my phone is a Galaxy S20 5G running Android 13 and the latest version of FireFox for Android. I also tried Chrome, with the same results. This is what I see on my phone (using the demo account rather than my real one for privacy's sake). I can't open any expense categories or edit any transactions in the Accounts page, or add any new info anywhere. If I flip the phone horizontal, it reverts back to the desktop screen, which is fully functional as far as I can tell. My real Budget account has the same behavior as the demo:

Did I mess up somewhere during setup? Or is there something else going on?
*Edited to combine images, since they were way too big stacked up.
@Kidglove57 commented on GitHub (Aug 13, 2023):
@Keboose the mobile transaction entry is working really well in the latest "edge" version. If you prefer to stick with "latest" then this should go live at the beginning of September.
@Keboose commented on GitHub (Aug 13, 2023):
Excellent, you're correct, I was running the
latesttag: I re-deployed withedgeand now I have the little plus button in my accounts. I'll stick to that tag until the features are more fleshed out and merged withlatest.Thanks!
@rougsig commented on GitHub (Sep 3, 2023):
Hello, what team are thinking about 3rd party uikits. For example https://github.com/ionic-team/ionic-framework
This uikit, have Android/Ios/Mobile components, web components and more.
Or use two uikits one for mobile, another for web.
Or use only 3rd party mobile uikit, do web by own.
I think its not good idea to create mobile basic components from scratch. We can use 3rd party components.
@Jackenmen commented on GitHub (Sep 8, 2023):
I don't see this mentioned explicitly so I figured I'll drop a note here - the account list and single account views do not have a button for doing the bank sync, it would be great if that were added in the future in some manner.
@shall0pass commented on GitHub (Sep 8, 2023):
Did you see this PR that was just merged? https://github.com/actualbudget/actual/pull/1663
Does this satisfy the request?
@Jackenmen commented on GitHub (Sep 8, 2023):
Awesome, thanks! I should have checked the PR list too 😄
@Jackenmen commented on GitHub (Sep 8, 2023):
Feedback: It's incredibly easy to trigger the bank sync accidentally. I think there are probably a couple of reasons for this, I can think of three in particular:
Now onto other feedback:
@yaomtc commented on GitHub (Sep 20, 2023):
A bit unclear on how mobile works. So Actual is a web app, self-hosted, right? When run locally on a PC, the server would run in the background, so it's fully local... but I'm thinking the server won't be running on mobile devices, so
If I'm using my phone somewhere without a network connection, how would Actual work?
To use this on-the-go I would need to have the server exposed to the Internet for remote access, right? Would have to set up port forwarding, dynamic DNS...?
@Jackenmen commented on GitHub (Sep 20, 2023):
The server is pretty much used only for the budget file synchronization (and GoCardless bank sync if you use that), all the actual functionality is implemented in the client, this includes operations on the database which is local to the device you use it on. This is the same for both mobile and desktop. So how it works is that without a server running, the app can still work, just can't sync.
@yaomtc commented on GitHub (Sep 20, 2023):
Ah, thanks for clearing that up! So it has to be accessed from a server at least once, right? And it stays on the mobile browser storage indefinitely? Similarly to a PWA, without the other PWA features? (For now)
@trevdor commented on GitHub (Nov 13, 2023):
Closing this RFC as we're well on our way with mobile features yet this document requires a ton of reading to see what's left.
Split transaction handling and then broader PWA support can be handled without this issue open.