* Revise reconciliation instructions for clarity
Updated the reconciliation documentation to clarify the process and improve readability.
* Update button text for reconciling action
Changes wording of 'Done reconciling' button to 'Exit reconciling'.
* Modify button text for reconciliation process
Updates button wording based on reconciliation status.
* Update button wording in release notes
* Refine language in reconciliation documentation
Updated wording for clarity and consistency throughout the reconciliation documentation.
* Add files via upload
* Update reconciliation screenshots
* Update reconciliation images for 2025
* Add files via upload
* Clarify exit option in reconciliation process
Added a note about exiting reconciliation without locking transactions.
* Fix cleared transactions total in reconciliation guide
Corrected the cleared transactions total from 324.82 to -82.60 in the reconciliation instructions.
* Update reconciliation.md
* Update reconciliation.md to resolve conflicts
* Add files via upload
* Update reconciliation.md unlocking transactions
* Update 6220.md
* Update 6220.md
* make it easier to download the desktop app artifacts
* release notes
* naming the artifacts *.zip becuase zips are mandatory
* Revert "naming the artifacts *.zip becuase zips are mandatory"
This reverts commit 02f9fcaa69.
* update downloads page table to have less duplication
* color from variable
* add component to exclude for spell check
* adding workflow to docs files for release notes exclusion
* release notes
* cli tool added to the server download list
* Rename button text from 'Done reconciling' to 'Complete Reconciling'
* Change button text from 'Done' to 'Complete'
* Update button text in reconciliation test
* Update button text for reconciliation completion
* Modify reconciliation completion messages
Updated reconciliation messages to provide clearer instructions.
* Change button text from 'Complete Reconciliation' to 'Exit reconciling'
* Fix capitalization in 'Exit Reconciling' text
* [autofix.ci] apply automated fixes
* Update release notes for reconciliation changes
Changes wording for clarity and adds exit option.
* Update release notes with button wording changes
Changes wording for clarity and adds a new exit option.
* Update category and button wording in release notes
Changes the category from 'Changes' to 'Enhancements' and updates button wording.
* Clarify wording for reconciliation exit options
* Update test expectation for reconciled message
* Update test to check for reconciled message
* [autofix.ci] apply automated fixes
* Clean up reconciliation view text
Removed unnecessary line breaks and exit message from the reconciliation view.
* [autofix.ci] apply automated fixes
* Update reconciliation test for improved text matching
* [autofix.ci] apply automated fixes
* Update packages/desktop-client/src/components/accounts/Reconcile.tsx
Co-authored-by: Matt Fiddaman <github@m.fiddaman.uk>
* [autofix.ci] apply automated fixes
* Change button click from 'Exit reconciling' to 'Lock transactions'
* Enhance release notes for reconciliation button changes
Updates authors and clarifies button wording for reconciliation.
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Matt Fiddaman <github@m.fiddaman.uk>
* Exclude test files from build artifacts
- Update crdt tsconfig.dist.json to exclude test files from dist output
- Update desktop-electron tsconfig.dist.json to exclude test files from build output
This prevents test files from being compiled into dist directories and
ensures they won't be picked up by test runners in CI/CD.
* Add release notes for PR #6216
---------
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* update pwa icons to new one
* release notes
* icon
* color update for menu
* icon tiny bit smaller
* favicons as well - why not
* keeping the old icons for reference
* last icon archived
* Update VRT screenshots
Auto-generated by VRT workflow
PR: #6204
---------
Co-authored-by: youngcw <calebyoung94@gmail.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* Update index.md
New screenshots. Add new settings
* Add files via upload
New screenshots for setting page
* Update index.md
Small adjustments
* Update VRT screenshots
Auto-generated by VRT workflow
PR: #6197
* Update index.md
More small adjustments to formatting.
---------
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
- Created ScheduleEditForm component with all form fields, transactions table, and footer buttons
- Moved NoTransactionsMessage component to ScheduleEditForm
- Updated ScheduleEditModal to use the new form component
- Form component is now reusable for mobile schedules page
* Allow category to be added from sidebar group
* [autofix.ci] apply automated fixes
* Small add category adjustments
- Add tooltip on add button hover
- Fix NotesButton padding for proper border radius rendering
- Add ability to disable tooltip pointer events so that the tooltip does not float when the trigger disappears
* Update VRT screenshots
Auto-generated by VRT workflow
PR: #6110
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Matt Fiddaman <github@m.fiddaman.uk>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* Combine bundle stats comments in PR
* Refactor bundle stats comment generation to use a mapping approach for base and head stats, improving argument parsing and validation in the CI action.
* Enhance size comparison workflow by adding steps to checkout the base branch and set up the environment, ensuring accurate build status checks for pull requests.
* Implement size comparison job in GitHub Actions workflow, replacing the deprecated size-compare.yml. This new job downloads build stats from both the base and head branches, processes the stats files, and generates a combined comment for pull requests, enhancing visibility into bundle size changes.
* Add release notes for bundle size stats update, consolidating workflow and PR comment generation.
* Refactor GitHub Actions workflows by removing the deprecated size comparison job from build.yml and introducing a new size-compare.yml workflow. This new workflow enhances build status checks and ensures accurate reporting of bundle size changes for pull requests.
* chore: update action versions and improve error messages in bundle stats scripts
- Updated GitHub Actions to specific commit versions for `upload-artifact` and `checkout`.
- Enhanced error messages in `bundle-stats-comment.mjs` and `update-bundle-stats-comment.mjs` for better clarity and consistency, replacing standard quotes with typographic quotes.
* fix: standardize error messages in bundle-stats-comment.mjs
- Updated error messages in `bundle-stats-comment.mjs` to remove typographic quotes for consistency and clarity.
* fix: do not clear notes field on action.op change
* [autofix.ci] apply automated fixes
* Update upcoming-release-notes/6046.md
Co-authored-by: Matt Fiddaman <github@m.fiddaman.uk>
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Matt Fiddaman <github@m.fiddaman.uk>
* feat(currency): add currency support to templates and goals
* fix: linting
* fix: add weekly guard as per coderabbit suggestion
* fix: add decimalPlaces to removeFraction
* test: add tests for JPY
* simplify currency usage in template
I am unable to upload images from my fork. They are here:
[images](https://github.com/Juulz/docs/tree/master/static/img/credit-cards)
Updated Credit Cards:
- Rewrote index.md to explain how Actual treats credit cards
- Split off Paying in Full - Within the Budget and rewrote with
screenies
- Rewrote Carrying debt with screenies
Please add Citi and Citibank to allowed words. Thank you.
---------
Co-authored-by: Matt Fiddaman <github@m.fiddaman.uk>
* Add Crossover Report
* Fix lint and typecheck
* Use useFormat hook for formatting, make spreadsheet always return cents
* Change defaults to all categories and accounts. Return 0 when no categories selected
* Change error handling to use addNotification
* Detect if crossover has already happened before projecting
* [autofix.ci] apply automated fixes
* lint:fix. Only get first crossoverIdx
* Annualize historical return via compounding, not multiplication
Use effective monthly rate from annual return
Guard against undefined starting balance
* Optional guard in median helper for future-proofing
Use consistent rounding when checking the projected crossover
Avoid O(n^2) lookups when aggregating balances by month
* Add Crossover Report Feature Flag
* Add option to show hidden categories
* Remove estimated return placeholder text since the formatting was unclear
* Initialize defaults when widget meta is absent
* Hidden categories remain in expense totals
* [autofix.ci] apply automated fixes
* Update packages/loot-core/src/types/prefs.ts
Fix merge conflict semi-colon
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
* Update prefs.ts
Try again to fix merge conflict.
* Fix percentage inputs showing trailing zeros for some numbers
* Fix projection not happening if crossover happens historically but then reverts
* some tweaks for consideration. Remove if undesired
* go back to original math
* Fix change in percentage formatting for CrossoverCard
* Optimize date range calculation and add cleanup to CrossoverCard
Use format utility for years to retire
Replaced hardcoded color with theme token
* [autofix.ci] apply automated fixes
* Try again to standardize display and storage of percentages without repeating decimals
* Add tooltips with descriptions to crossover chart inputs
* Refactor Crossover component to use translation for 'N/A' strings and simplify estimatedReturn assignment
* Refactor Crossover components to improve date range calculations and ensure proper handling of the latest month
* Fix typo in Crossover component: corrected "retirment" to "retirement" in user instructions
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: youngcw <calebyoung94@gmail.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
The current roadmap only contained a subset of the options for setting
up a server. Rather than maintain two copies of the same information (or
preferring one method over the other), I think it's best to simply link
to the relevant section.
* add ctrl/cmd + enter as shortcut to only add single transaction
* note
* add same logic to add button
* add keyboard shortcut
* Update VRT screenshots
Auto-generated by VRT workflow
PR: #6037
---------
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* fix server sync file download when server-files are in .config directory on linux
* extra security
* release notes
* putting it back after testing
* also accounting for directories
* derp
* made Budgeted header to be multiline and increased font minimum font size
* added release note
* Update upcoming-release-notes/5900.md
Co-authored-by: Matt Fiddaman <github@m.fiddaman.uk>
---------
Co-authored-by: Quan Nguyen <quannm@Quans-MacBook-Pro.local>
Co-authored-by: Matt Fiddaman <github@m.fiddaman.uk>
* add new desktop app icons for better display on linux, and to prepare us for mac liquid glass
* png for windows
* release notes
* put old icons in archived folder
* Fix to show the notification for updating service worker
* cleanup
* Add release notes for PR #5963
* trigger pipeline
---------
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Relates to https://github.com/actualbudget/actual/pull/5925
Documentation improvements:
* Added `balance` as a supported template variable, describing its type
and value in the template variables table.
* Updated spacing to fix some markdown lints.
* Adds balance variable to rule templates
Enables access to the account balance within rule templates. This allows for more complex rule creation based on the current account balance.
Calculates the account balance up to the transaction being processed, including transactions on the same date with lower sort order.
Handles cases where the balance is undefined gracefully, defaulting to 0 to prevent errors.
## AI disclaimer
This PR contains code that was partially or fully generated by AI and may contain errors. All suggestions for improvement are welcome.
* Add release notes
* indexed sql params not supported
* [autofix.ci] apply automated fixes
* Skip parent transactions of splits
* Uses aql for account balance
Updates transaction rule preparation to use aql instead of sql calculating it from past transactions.
The balance is defaulted to 0 if no account is set.
Refactor account balance calculation to build a proper query with date and sort_order filters
* Add block scoping to switch cases and ensure correct fallthrough handling in Action type conversions
* Corrects transaction rule sorting order
Reverses the sort order comparison in transaction rules
to ensure correct identification of prior transactions with the same date.
This ensures that the correct balance is used when
calculating balance-based rule conditions.
fixup! Corrects transaction rule sorting order
* Improves transaction rule balance calculation
Uses a more efficient query for calculating the account balance
up to a transaction when applying rules, improving performance.
This change reduces the complexity of the balance calculation.
* Apply coderabbit lessons learned
* [autofix.ci] apply automated fixes
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
---
category: Enhancements
authors: [AndrewG147]
---
Transfers can now be created from split transactions (changed in
[25.9.0](https://github.com/actualbudget/actual/pull/5604)). The former
condition is not valid anymore
* update flatpak sdk and platform
* release notes
* flatpak version config
* going to 24.08 to support as many distros as possible
* remove unneded file
* enhancement: fix Cetelem bank transations
The amount coming from GoCardless has the opposite sign of what we expect.
* Cetelem bank: make code more future-proof
Change based on code review suggestion
Co-authored-by: Matt Fiddaman <github@m.fiddaman.uk>
---------
Co-authored-by: Matt Fiddaman <github@m.fiddaman.uk>
* budgetfilesSlice: Fix paste-o in fallback sorting by ID
* Create 5918.md
* 5918.md: Clarify
* 5918.md: Ah, those square brackets don't just indicate a placeholder
* upgrade electron-builder
* no postinstall when yarn immutable
* downgrade to last version without the bug
* fix issue with wrappy
* release notes
* regen yarn lock
* react-sprint
* hmm
* update yarn manually...
* fixing spring?
* lock
* finally
* conflict
* put package back
* add retries to electron server import
* release notes
* get rid of this menu. If its an app functionality it should be available within the app
* hide the menu - update the ui
* fix function call
* Update VRT
* release notes
* spelling mistake
---------
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* Align amount conversion utilities between api and loot-core
Updates api amount conversion utilities to align with loot-core, improving consistency and maintainability across the project.
Uses decimal places as parameters in conversion functions.
* Moves amount conversion utils to core
Moves amount conversion utilities to the core library.
This change consolidates these utilities for better code reuse
and maintainability across different parts of the application.
It removes the duplicate definition from the API package and
imports it from the core library where it is shared.
* add average per year to summary report
* note
* [autofix.ci] apply automated fixes
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
* initial test to trim the intervals
* bit more
* got the logic
* fix table data
* add migration for trim intervals
* release notes
* nice work rabbit
* small cleanup
* not sure how major that is but yeah why not
Users will attempt to install actual, and connect it, but then find they
cannot sign up, so pointing this out earlier is a good thing.
Ideally in the docs page actual should stop advertising it at all, and
simply leave the instructions there for people who already have
accounts, but not mention it in the features and such.
I could not find instructions on the [Budget
Templates](https://actualbudget.org/docs/experimental/goal-templates)
experimental feature docs page for how to enable the feature. I did not
look closely enough at the advanced settings to realize I had to click a
link, even though I had looked at the setting page.
After asking in discord, I was told how to enable the feature, and even
found that there was a parent page [Experimental
Features](https://actualbudget.org/docs/experimental/) which had the
instructions I would have needed.
This PR simply adds a short sentence with a link back to that root page
on the experimental features pages. This would have helped me find my
own solution without needing to ask.
I did not add anything to the [Pluggy.ai
Setup](https://actualbudget.org/docs/experimental/pluggyai) page because
it has the blurb `Pluggy integration is experimental at this point, so
before you can use it you need to enable it under Settings -> Advanced
Settings -> Experimental Features -> Pluggy.ai Bank Sync` in the page
and didn't have the same callout sections at the warning callout
sections as the other pages at the top.
Completed the beginning introduction of Restoring a Backup doc
**P.S. The first screenshot illustrating where to close the finance file
needs to be updated to comply with that in the current version.**
<img width="384" height="402" alt="截屏2025-08-15 09 48 32"
src="https://github.com/user-attachments/assets/c44012df-ecc3-4d76-8280-858001c68aa8"
/>
I changed two docs pages - multi user and oauth (opeid provider).
There were some minor inconsistencies and errors. I also fixed the
redirect URI from `<domain>/path/openid/callback` to
`<domain>/openid/callback` as the first one was incorrect for my
keycloak instance.
---------
Co-authored-by: Ruben Olsen Lærk <ruben@lku.no>
The search tool we use has always been a bit clunky for me. There's no
keyboard shortcut support, it doesn't look great, doesn't support react
19, and I had to write a theme sync function for it to work properly
with Docusaurus V3.
The package I've upgraded here fixes all those issues. I've also updated
all the packages to the latest version, and aligned the node support
with the Actual repo.
**Old (very inaccurate search):**
<img width="885" height="573" alt="image"
src="https://github.com/user-attachments/assets/eae157de-8282-412f-b89c-618f3e3e99e5"
/>
**New:**
<img width="676" height="605" alt="image"
src="https://github.com/user-attachments/assets/145db22f-8216-4e3f-9a98-a8bd469f1494"
/>
It also comes with a fancy new search page when you click _See all
results_
> [!NOTE]
> Important This will need a decent amount of testing of images, links,
sidebar, rss feed, etc
Upgrading Docusaurus to the latest.
- We can now use Mermaid diagrams
- It's supposed to have better performance
- It's actively supported (v2 wasn't)
Throughout this PR you'll notice
- Formatting updates (they are required for the build process)
- Some CSS updates - some default styling was changed in the plugins we
use. The updates I've made should make the style near identical to
what's currently live
- Some updates & fixes to bring our docs in line with the v3 way of
writing
Overall, the docs should look the same.
## Known issues:
- The top page nav is flickering when clicking links in the top page
nav. It's happening on the main Docusuarus website
https://docusaurus.io/blog
- If we upgrade we'll have to accept it until they fix it on their end
I encountered this issue when I [created a
PR](https://github.com/actualbudget/actual/pull/5479) to add a new bank
to Actual.
The docs were instructing me to first create the PR and then generate
the docs.
At the same time, when I tried to open the PR, the default template
message was instructing me to generate the release notes *before*
opening the PR.
```
<!-- Thank you for submitting a pull request! Make sure to follow the instructions to write release notes for your PR — it should only take a minute or two: https://github.com/actualbudget/docs#writing-good-release-notes. Try running yarn generate:release-notes *before* pushing your PR for an interactive experience. -->
```
I am not sure who is telling the truth here, but given the emphasis that
the template put on *before* I am inferring that the docs had the wrong
order. If this is not the case, of course feel free to nuke this PR and
update the GitHub template instead.
Add documentation for notes tagging and how to change their colors.
---------
Co-authored-by: Matt Fiddaman <github@m.fiddaman.uk>
Co-authored-by: Ruben Olsen Lærk <ruben@lku.no>
- Fixes https://github.com/actualbudget/docs/issues/449 which was closed
early
The CLI flow for setting up a new Fly app has changed and simplified.
This PR brings the Actual docs up to date.
Co-authored-by: Ruben Olsen Lærk <ruben@lku.no>
Fixed an Error:
Proxy Pass & Proxy Pass reversed need the tailing / - otherwise static
assets like /static/js/ won't be accessable.
Improvement:
"ProxyPreserveHosts on" submits the host to ActualBudget (e.g.
"budget.example.com")
RequestHeader set X-Forwarded-Proto "https"
RequestHeader set X-Forwarded-Proto "443"
Preserve an loop, if the app requires to be run with SSL
After registering for a completely unnecessary GoCardless main account,
I found out you actually need GoCardless Bank Account Data acount. Lets
point other new users in the right direction.
- Was expected to only close#696: _Add information about upcoming
schedule length._
- Added sections for Managing Schedules, Schedule Length, Find
Schedules.
- Added introductory section.
- Added clarification on the approximation on amounts
- Rewrote most of the document.
- New screen shots - and deleting old ones.
- Rewrote the intro section to reflect the planning aspects of schedules
and not the automation aspect.
- Added Account Register view screen shot and moved information on
account register view under the Adjusting the Upcoming Length heading.
- Removed "Schedule Options That Are Not Supported" section and moved
information about not supporting holidays as a note under schedule
creation.
- Introduced a new document for Cursor IDE, detailing setup, automation,
and custom rules.
- Updated the new core contributors guide to include a link to the
Cursor IDE documentation for additional tips.
- Desktop electron works with self hosted out of the box now.
- Made Sync Server a third level header for consistency since it's no
longer in a separate repo.
Current documentation includes ActualTap-Py which is a fork of
https://github.com/MattFaz/actualtap *(which I use/maintain)*.
Adding in the original ActualTap repo and updating ActualTap-Py to
clarify differences.
The last two examples for the goals have created confusion because the
template and goals line shows in one line:
https://discord.com/channels/937901803608096828/1372691110614274170/1376211790639136779
This PR makes sure that any `#template` and `#goal` lines that are meant
to go together are displayed on top of each other instead of inline.
It also makes sure that all uses of `#template` show with inline
code-formatting for overall conistency.
(Let me know if you'd rather have this in a separate PR and I'll splice
out that commit.)
There was one package in the doc (actual-appimage) but there is more
actually :D
2 Desktop clients based on the AppImage and a server based on the
@actual-app/sync-server NPM package.
- Adding new screenshots.
- Deleting old screenshot.
- Also did some language changes on the rest of the page.
This should address @youngcw wrote in a comment on PR
https://github.com/actualbudget/docs/pull/599 _The restore page is a
little weird where it says you need to logout before you can do a
restore. That should be changed at some point._
The privacy filer / scrambling function has so far only been briefly
mention on the first page of the tour guide.
I added some screenshots + text to the tips and tricks page.
As a bonus I also added ALT text to the existing images.
I think I got all instances where we specify a version, there seem to
only be two places in the docs.
We'll also call it out in the release notes.
https://github.com/actualbudget/actual/pull/4978
Changes made with some justification, in order of commits:
- removed port mapping for `actual-server` service since we're using
Caddy as the reverse proxy, similar to how there's no port mapping for
the Traefik example
- minor consistency changes by referring to the Traefik example:
- moved `image: caddy:alpine` to the top
- add restart policy
- swapped one inconsistent single-quoted port mapping to double quotes
Put Windows-specific step in parens to differentiate it from the rest of
the steps
Also gave clarification upfront to inform users what the end-goal is.
Hello!
I'm using [a plugin in my
browser](https://github.com/allanlw/gps-detect) to be notified when an
image contains GPS data in the metadata of images, and I noticed while
reading the latest release notes that matt-fidd.jpeg contained some GPS
coordinates, so this pull requests is just to remove those from the
image.
Have a nice day
Add instructions for creating the config.json via a single terminal
command.
Reasoning - Assisted a MacOS deploy where they had everything setup
correctly but when they made the config.json file their instance
crashed, this was due to using the default GUI text editor which saved
the file as a .rtf and they renamed to .json. Doing this will leave
metadata in the file and actual wont know what to do with it causing an
infinite restart loop.
This addition provides a simple method to create the file without the
possibility of extra formatting bits causing issues
I created a repository with steps to deploy Actual Budget as a Cloud Run
service. I believe this is a better way to deploy in GCP and it's less
complicated.
Issue reported here: https://github.com/actualbudget/actual/issues/4377https://deploy-preview-645.www.actualbudget.org/docs/install/local
It turns out that yarn doesn't let you run scripts without first
installing dependencies, so users will have to type it in the install
manually.
The other alternative is to run the script with npm but that would add
confusion.
I think yarn workspace focus is the best option to pick but here was the
options:
- Instruct users to ```yarn install``` (which would install all deps) -
1.07GB
- Instruct users to ```yarn workspaces focus @actual-app/sync-server
--production``` (which is a long command) - 60.6MB
- Create a new shell script to run the command ```
./install-server.sh```
In future we might want to consider packaging the server up into an
executable. That way the user wont have to install node/deal with any of
this stuff.
Here's an example packager - i've never used it:
https://github.com/nexe/nexe
Update to newer docker compose command.
From the docs: From July 2023 Compose V1 stopped receiving updates. It’s
also no longer available in new releases of Docker Desktop.
See the docs: https://docs.docker.com/compose/releases/migrate
Adding a page to Using Actual/Budgeting to demonstrate how to implement
multi-currency using Rule Templates.
---------
Co-authored-by: Ruben Olsen Lærk <ruben@lku.no>
This is the start of getting the existing template setup ready to
mainline. We can consider making each template type its own file if this
feels too long.
---------
Co-authored-by: Matt Fiddaman <github@m.fiddaman.uk>
> Off budget accounts don't effect the budget and are meant to track
stuff like investments and mortgages. Transactions in off budget
accounts can't be categorized; they simply track balances over time.
Should be `affect`, a verb, instead of `effect`, a noun.
I wrote some steps on how to automate non-Dockerized Actual starting up
with Linux systems using systemd. I'm using this on my server and so far
so good.
If this is too much for this page please consider putting it on its own
page. I think it's useful info for anyone who wants to do self-hosted on
a VPS with a non-Docker instance.
---------
Co-authored-by: Brandon Fotiu <bfotiu@bgsu.edu>
When I setup my actual account, I noticed that there was no
reconciliation button as described in documentation. Found out after
hunting, that the UI has changed resulting in this issue. I have created
this PR to update that.
Let me know if the language or images need to be changed.
Caused because of: https://github.com/actualbudget/actual/pull/3684
remove currency symbols, add note explaining how they're used, tried to
standardize how template vs #template / goal vs #goal are used, some
edits for clarity,
If the date column is not configured correctly the date format will not
show up if it's not one of the preconfigured ones.
I think that can help in the documentation.
Quick whip through to try and standardis(z)e some language, looks like
the most common English in the docs is US English so I chose that one,
but if we'd prefer the Queen's then that's okay too.
---------
Co-authored-by: Ruben Olsen Lærk <ruben@lku.no>
I was a little confused that I couldn't see a running balance in my
accounts until I realized that it's only shown in a specific sort order.
I think it would actually be useful to be able to see the running
balance no matter the sorted order, but until then maybe we should
clarify in the documentation.
add mention of how to access the edge build of actual, i couldn't find
it anywhere else in the documentation.
---------
Co-authored-by: Ruben Olsen Lærk <ruben@lku.no>
Added in a Known issues section for YNAB4 imports to cover an issue with
split transactions not receiving correct payee details.
Once this issue is resolved the documentation note can be removed:
https://github.com/actualbudget/actual/issues/3561
---------
Co-authored-by: Ruben Olsen Lærk <ruben@lku.no>
Some minor updates to the rules page to keep it in sync with the current
UI:
- Updates the list of actions and fields so the order matches the UI.
- Adds missing `category` field to the list
- Mentions you can also append/prepend to `notes`
See:
https://deploy-preview-463.www.actualbudget.org/docs/budgeting/rules/
1. Moved _Filtering_ from _Reports & Filters_ to _Accounts &
Transactions_ as it's are more natural place to have the filter
documentation.
2. Renamed _Reports & Filters_ to just _Reports_
3. Moved _Schedules_ out of _Budgeting_ to better reflect the sidebar
items in the program.
4. Based on feedback from Michael Burnside on Discord, moved the
envelope budgeting docs higher up in the menu. What he wrote on Discord:
_I think the Envelope Budgeting doc should be moved up in the list. It's
important to understand the method and the "Why" first, so that users
can make sense of the tool and the "how". I know there's a link at the
top of the Starting Fresh article, but people tend to go top to bottom
in the contents (if they're reading at all)._
5. Moved _A Tour of Actual_ out of _Getting started_ as it's marketing
and not getting started with the program.
6. Moved _Starting Fresh_ higher up to differentiate between the tech
stuff and the why stuff.
**There is no change in content - just trying to make the menu a better
place to navigate**
---------
Co-authored-by: Ruben Olsen Lærk <ruben.olsen@dnb.no>
add some basic guidelines about how to write the docs so a shared voice is heard when using the documentation.
---------
Co-authored-by: Zeus\Herb <herb@win.dows>
Co-authored-by: Ruben Olsen Lærk <ruben.olsen@dnb.no>
Co-authored-by: Ruben Olsen Lærk <ruben@lku.no>
Co-authored-by: Matt Fiddaman <github@m.fiddaman.uk>
docker compose down is not needed, and running it before pulling updated
images causes longer service downtime than required.
Simply running `docker compose up -d` after `docker compose pull` will
recreate all containers that changed (by either image version or other
settings in the compose file).
many people may not know what 'regex' is. now matches filters page. not
sure why i didn't update both places when i got the review last time,
sorry!
---------
Co-authored-by: Robert Dyer <rdyer@unl.edu>
1. Added information about the number of syncs on the free tier (which
is 50).
2. Added link to documentation on how GoCardless counts connections.
3. Added alt-text to all images.
4. Fixed a typo in one of the numeration of the steps in how to link a
GoCardless account to AB - step 8 was repeated twice.
---------
Co-authored-by: Ruben Olsen Lærk <ruben.olsen@dnb.no>
First, the way to enable it has changed so that is updated.
Second, the UI now calls it "tracking" and "envelope" budgeting, so the
text and filenames were updated to reflect the new "tracking" name.
Added link to converter from Trumf Visa PDF invoice to Actual Budget
friendly CSV import file.
---------
Co-authored-by: Ruben Olsen Lærk <ruben.olsen@dnb.no>
Co-authored-by: Matiss Janis Aboltins <matiss@mja.lv>
Fly.io no longer offers free cloud hosting; it is pay as you go with
actual usage billed monthly. I calculated between Pikapods $1.4 per
month and Fly.io's $1.5 per month and chose Pikapods since it's one
click and it's cheaper. If there's anything wrong in my calculations,
please let me know.
This adds the description about how a `goal` template line works with
some examples.
Also some minor tweaks to the page
matches actualbudget/actual#3012
The current Tour was lacking for people curious about what Actual looks
like, without going into "full teaching manual mode".
What I have done:
- Consistent screenshots
- Added some explanatory text and links to the actual manual pages
I am fully aware that there is a fine line between some of these pages
and manual pages.
Anyway - we should now have something to show the YNABers and MINTers of
the world :-)
Ideally, we should have a video introduction as the "tour" - but given
how much change we have in the program, this would kill the poor guy/gal
who wants to maintain such a video.
PS: I go on vacation on Saturday July 13th - so any changes I am not
able to do after that time.
---------
Co-authored-by: Ruben Olsen Lærk <ruben.olsen@dnb.no>
- Added links to the My Edenred Portal bank sync and Actual Task repos.
- Moved some links from Others into Various utilities to enhance
Actual's functionality, as I expect we will get more and more of these
utilities available. Let's keep Other for pure non-functional technical
stuff
Original posting:
https://discord.com/channels/937901803608096828/1027831756545609789/1260289369139580988
I did source GitHub for other interesting projects and have added those
also.
---------
Co-authored-by: Ruben Olsen Lærk <ruben.olsen@dnb.no>
This is a super rough start for a download page for the website. Please
make contributions since this is pretty bad so far. Can you tell Im not
a front end dev? 😆
In order for the links to always work we either need to:
* Modify our electron build to not add versions to the filename
* Add some way for the page to know the current version and use that in
the requested filename
For now they are hard coded with the version so they wont work next
month unless something changes.
For now the OS logos are colored so that they can be seen in both light
and dark modes. Im sure there is a better way than making them purple.
I have added a _Roadmaps for new users_ to help people decide on their
next step. The roadmaps are primarily aimed at non-technical people.
I saw the reason for doing this after getting a few questions for
non-techies people I know about "ehhh... where do I start?" ... "I did
install the desktop software, how to get this into my cell phone", etc.
---------
Co-authored-by: Ruben Olsen Lærk <ruben.olsen@dnb.no>
I have extended the PikaPods documentation to cater to non-technical
users. This should be quite straight forward.
---------
Co-authored-by: Ruben Olsen Lærk <ruben.olsen@dnb.no>
update the readme to have more of a present date, clean up various small
grammar and formatting throughout the page.
clarify that the docs donʻt have release notes written in the same way
as the rest of the project. include information about what makes it to
the git commit messages to encourage people to write good PRs.
add note that screenshots should be taken in light mode
Notes and edits welcome.
---------
Co-authored-by: Zeus\Herb <herb@win.dows>
Add information about "matches" being regex.
~~PR 9/10ths of the way there, still need to update screenshots. Is
there a style policy regarding dark/light mode screenshots? It seems
like currently it swaps between the two.~~
---------
Co-authored-by: Zeus\Herb <herb@win.dows>
We now have quite a few changes - not only moving the *generic envelope
budget* stuff out.
In short:
* Added section on handling cash. The idea behind this is to give people
that are new to this kind of budgeting, an easy idea on what to do with
cash. Even seasoned Zero-Summers can forget about this simple trick :-)
* Amended Setting up your Budget Categories with a small tip.
* Added sub section Group Your Expense Categories. I have guided a lot
of people on using Zero-Sum software (Ynab, Financier - and now Actual)
- and the grouping I propose have shown to help people to not touch
category money they should not touch.
* Assigning Available Funds is a complete rewrite - this is "Tips" we
removed from the envelope-budget.md file - I will add a link back into
the getting-started document when both PRs has been done.
* Added a section on finding your budget number if you do not want, or
can use historical data
* Keep Budgeting was amended
* Added a header before text on next step.
OBSERVATIONS: I think this document is too big - and it should be split
into it's 5 parts (+ introduction).
---------
Co-authored-by: Ruben Olsen Lærk <ruben.olsen@dnb.no>
I have added this page because I think the software used for envelope
budgeting should definitively have some documentation on how to actually
do envelope budgeting.
---------
Co-authored-by: Ruben Olsen Lærk <ruben.olsen@dnb.no>
from the docs on bank sync specifically, include best practices notes in
the FAQ to recommend limiting past transactions
Fixes#363
---------
Co-authored-by: Zeus\Herb <herb@win.dows>
some of the features on the homepage seemed there just to pad out the
list. The list if decently long and interesting so I removed Payees and
Split transactions. Those seem pretty expected and not that interesting
as a called out feature.
I modified the budgeting feature to be more specific. Just saying we
have budgeting is a bit redundant for a budgeting app.
This adds missing documentation for existing API calls and removes one
that does not exist.
---------
Co-authored-by: Matiss Janis Aboltins <matiss@mja.lv>
fly.io pricing details have changed for new users. new users can only
sign up for a pay-as-you-go plan where usage is billed monthly. as this
is about deploying actual, it should be aimed at new users, not
returning users with maybe-existing legacy plans(like the hobby plan)
details about the legacy plans can still be found at the linked page.
Updated experimental features to match what's listed in app.
---------
Co-authored-by: youngcw <calebyoung94@gmail.com>
Co-authored-by: Robert Dyer <rdyer@unl.edu>
This updates the home page documentation with some content enhancement
as per the style guide (mainly MSTP, Google Developer Style Guide).
Based on the feedback, i will further add more section to enhance the
home page to make it like a home for all the documentation for easier
navigation.
For now, this PR kepts the section that are necessary to address user's
query regarding getting started with Actual and understanding the
Actual's starter kit.
---------
Co-authored-by: youngcw <calebyoung94@gmail.com>
I think there is a better example than the one I've proposed here. I'm
not convinced the example I've given would even provide an expected
result to the user. I'd appreciate any feedback of those interested and
the PR #2480 could be improved to deliver more expected results.
Removed api methods that do not exist. Since they don't exist - they
should not be in the docs.
It would be nice to implement them though.. but until they are
implemented - lets not mislead people.
Reformatted the page, reworded some paragraphs, and added more
information about Docker for clarity.
After having to go through these steps myself, I found it might be
helpful to merge some of my suggested changes for others to view.
Added clarity about migrating from YNAB or Mint to Actual.
Corrected grammatical error about what Actual officially supports for
importing from other budgeting apps.
Explain advantages of setting an opening balance when starting from
scratch with Actual and Go Cardless
---------
Co-authored-by: youngcw <calebyoung94@gmail.com>
This updates:
1) Dated examples to reference 2024 and 2025 (rather than 2021 and 2022)
2) Adds a warning to reproduce schedule names exactly in templates
This PR removes the migration page from Full Sync to Simple Sync.
This page was needed 16 months ago when a breaking change was merged to
resolve issues with the sync algorithm. Given that there have been over
16 releases since this change, most users will never encounter this
issue.
mostly some more detailed advice in the starting fresh doc. Im trying to
make the budgeting advice be more centralized instead of being in random
places
A few minor tweaks
A few call outs that simplefin is not just a community thing anymore
While deploying with Traefik I found two small errors in the
documentation.
First is the duplicate line, the second is the missing line so that
Traefik knows on which port it should send the traffic to.
I think this fixes an issue where the links on the page don't work if
you get to the page via discord link.
The root issue is the same as
https://github.com/facebook/docusaurus/issues/2298
We may need to go through and update the links in the website, or maybe
someone can take the time to migrate the website to docusaurus v3.
We have a blog, so I wrote a post for it.
Its about how I use the goal templates in the hopes that it will inspire
some people on how they can use goals and some budgeting strategy baked
in.
---------
Signed-off-by: check-spelling-bot <check-spelling-bot@users.noreply.github.com>
Co-authored-by: Matiss Janis Aboltins <matiss@mja.lv>
Co-authored-by: Matiss Janis Aboltins <MatissJanis@users.noreply.github.com>
The question of not having contains under payee in rules gets asked a
lot. I added an example for it.
I also changed the name of that page to "Rules Examples" to be more
clear on what it is.
Added a dark mode callout in the feature list.
Working on dynamically switching between dark and light screenshots when
the page switches themes.
I pulled images from the VRT tests to use for dark images. They are
pretty close to the existing images, but from a slightly larger screen.
Related to https://github.com/actualbudget/actual/issues/1695
It's pretty common for users to have self-signed certificates for
actual, but this presents some challenges for the API.
Give a little bit of guidance here, for new contributors. Really, all
the info here is just for Node.js and not for actual. (we would want to
create seperate http agents and our own certificate config system if we
wanted to have actual specific config for this).
For many of the existing api use-cases the
`NODE_TLS_REJECT_UNAUTHORIZED` option will be fine. But
`NODE_EXTRA_CA_CERTS` seems like the proper way to do things (and the
one I tested on nodejs 21, on ubuntu via asdf install). But I also made
sure to mention the option of using openssl's ca certificates, because
if you are in a situation where your node.js is configured to link to
the system openssl on Linux, it's going to be the easiest and most
familiar to Linux sysadmins. It's just not the cross-platform supported
option like `NODE_EXTRA_CA_CERTS`.
We get lots of questions about transfers involving off budget accounts.
This will hopefully alleviate some of that confusion.
It was mentioned in
[actualbudget/#1979](https://github.com/actualbudget/actual/issues/1979)
that the docs don't have a good description of this.
When importing from nYNAB `to budget` doesn't match the previous `ready
to assign` value. I added a description of why that is and how to make
the numbers match.
Hey, since I've been using Actual via Traefik for a few days now, I took
the time to add a little bit to the documentation in that regard. I hope
it fits so far. Please feel free to comment/improve anything.
Depends on #278.
Fixes#251
This adds a dedicated guide for those that are starting fresh with
Actual and aren't familiar with zero-sum budgeting. It is a step by step
that points to the existing pertinent docs pages with additional
direction.
---------
Co-authored-by: shall0pass <20625555+shall0pass@users.noreply.github.com>
Co-authored-by: Matiss Janis Aboltins <matiss@mja.lv>
I added bank syncing as a feature on the home page, with a new svg to go
with it.
I also mentioned in the importers that more than ynab are available, but
not officially.
This adds a page that calls out useful and interesting community
projects that integrate with Actual. There are only a few that I know of
right now, but we can add any later that come up.
So they point to existing implementations. The current links are broken
and Im hoping these links are correct - someone please let me know if
this is incorrect, thanks
I'm trying to deemphasize the term 'cloud' here because I think it
implies that it's going somewhere unknown. It should be clear that it's
going to a users installed server, and nowhere else. Pikapods and
fly.io, I think would be classic examples where where the term 'cloud'
makes sense but wouldn't make sense if someone had it installed on a
local PC, NAS or Raspberry Pi.
I left a lot of the document alone further down because it seems like
there may be error messages within the app that use the term 'cloud'.
Maybe add an additional explainer in the section that explains the cloud
file?
**Came up in a discord support issue.
I don't have a GoCardless account to update the images.
Have the images fundamentally changed (besides saying GoCardless instead
of Nordigen)?
---------
Co-authored-by: Johannes Löthberg <johannes@kyriasis.com>
Added a note regarding the dropdown arrow by "Date" and "Amount"s in
view of a recent bug report that showed that these are not always easily
discovered..
PS Sorry to keep adding changes but I am trying to respond quickly to
@shall0pass comments on another issue
Updated the tagline (the hook) for the website.
For people coming in for the first time - they don't know (and care)
about the historical context of open source actual vs closed source. So
slightly changed the copy to focus on the truly important things - the
features.
---------
Co-authored-by: Jed Fox <git@jedfox.com>
Maybe these notes should form part of an existing page, but I wanted to
put some notes in about the web worker/websockets nuance and clarify the
whole frontend/backend thing as it confused me a bit at first.
Perhaps this page could be a stub for adding more 'technical' details as
we go. (stick a 'more coming soon' on the bottom?)
Or maybe it should just be called 'Technical Details'
---------
Co-authored-by: Jed Fox <git@jedfox.com>
Linked to contributing docs, replacing detail. This can't be merged
until after #176 gets merged though as the build will fail due to broken
links.
---------
Co-authored-by: Jed Fox <git@jedfox.com>
I have a suggestion for the "Updating Actual" doc page. Since fly.toml
is in .gitignore pulling changes via git won't update it. Users should
also update their fly.toml before deploying on server.
I added short info in the Fly-updating.md. However I don't know if this
info should also be updated elsewhere.
---------
Co-authored-by: Rich Howell <github@codenameowl.com>
Line 53, where it says That money will appear in next month's **To
Budget**. This isn't really happening. Should this part of the
documentation be changed?
---------
Co-authored-by: Rich Howell <github@codenameowl.com>
I added some non documented keyboard shortcuts for the transaction
ledger. I also standardized the capitalization of the existing
shortcuts.
I cant decide if its better to have the single letters upper or lower
case. I don't want to imply that a `Shift` press is needed. Also, in
`Ctrl + o` shortcut, the `o` was lower case maybe to try and not look
like the number. I don't think I have a preference and can change it to
upper case if that is preferred.
**Actual has now been moved to a stand-alone Docker organization. If you
were previously using `jlongster/actual-server` docker image - please
update it to `actualbudget/actual-server`.**
The release has the following notable features:
- Rules can now optionally be applied when any of their conditions match
(in addition to the existing option to apply when all of their
conditions match)
- Rules: quick-create option from the transaction table (in the “X
selected” menu that shows up after selecting a transaction, choose
“Create rule”)
- Ability to hide decimal places for currencies with large numbers (in
Settings → Formatting)
- New autocomplete component (please report any bugs
[here](https://github.com/actualbudget/actual/issues/773))
- Lots of smaller improvements and bugfixes
---------
Co-authored-by: Jed Fox <git@jedfox.com>
...away from `jlongster`'s personal account. We're officially an org
now!
Before merging,
1. merge https://github.com/actualbudget/actual-server/pull/175
2. build and push a new image to the org repo via `actual-server` CI
Based on testing and discussion in Discord, the `edge` tag does contain
the latest `desktop-client` as well. Removes an outdated statement in
the Docker install documentation that stated otherwise.
People contributing will now be asked to create a file containing their
PR’s entry into the release notes when opening a PR.
This approach was inspired by Prettier’s release notes approach
(https://github.com/prettier/prettier/tree/main/changelog_unreleased).
Separate files are used to avoid merge conflicts (each file is
completely separate, whereas adding lines to a file would result in
merge conflicts each time a PR is merged).
Checks will nudge people to create these files for their PRs, and PRs
created from a `release/*` branch on the main repos will have an action
run that outputs the Markdown-formatted release notes into a comment on
their PR. That action will also delete the no-longer-needed release
notes files to prep for the next release. Make sure you merge `master`
into release branch before finishing the PR to ensure the release notes
are fully generated and cleaned up. (You may encounter check failures if
you haven’t merged `master`)
I'm not a user of this feature, but I thought I could get the ball
rolling on adding some documentation. I'm not 100% sure this is how this
budget type is used, so there are likely wrong assumptions. I'm hopeful
someone will either correct me or take the reigns. There have been
several users looking for the features of this budget type, so I think
it deserves a little time to explain how it's intended to be used.
* update readme and begin img dir restructuring
* fix broken issue board link
* readme edit
* addressed RFCs : #123
* organising images
* more images organised
* more image restructuring
* img reorganisation done
* moved unused imgages to img/unusued and checked if anything broke
* typo
* move favicon and actial imgs back, deleted the rest of unused
* corrections
* img : update accounts image : #85
* doc : fixed formatting and clearer wording : #85
* doc : updated instructions due to new sidebar layout : #85
* img : update images due to new sidebar layout : #85
* doc : updated accounts/addaccount page : #85
- moved all images into their own folder
- grepped the whole repo for their img paths to make sure no other pages were referencing the same images.
- updated img paths in the addaccount page
- updated wording based on new layout / buttons
- simplified other wordings
* img : updated images due to new sidebar layout : #85
- created new folder for backup-restore section
- created new images for 'backup.md'
- deleted old images from 'backup.md'
- updated wording in 'backup.md'
* Fix image sizing
* img : try to half size with @2x, but no change : #85
* doc : implement @2x img resizing and update images : #85
- resized retina screenshots where appropriate
- updated images that showed old sidebar layout
* img : commit missing file : #85
---------
Co-authored-by: Jed Fox <git@jedfox.com>
* Installation Methods
Adding the ability to have additional installation methods in the documentation linked to from external blogs etc.
* Update overview.md
Moved section to replace last paragraph
* Update docusaurus
* Make sure images are in their own paragraph
* Add image handling logic
* oops!
* Fix issues with Image component
* Enable image plugin in dev
* Allow arbitrary scales, remove unused case
* add a note about export from old version of actual
* link to migration info from getting-started
* Update docs/Installing/overview.md
Co-authored-by: Hans Fast <fasthans@gmail.com>
* Update docs/Getting-Started/migration/migration-intro.md
Co-authored-by: Hans Fast <fasthans@gmail.com>
---------
Co-authored-by: Rich Howell <22135084+rich-howell@users.noreply.github.com>
* Run Prettier
* Add `@docusaurus/plugin-content-docs` as a direct dep
* Remove generated index pages, move Release Notes to the top level
* Move installing section inside “Getting Started”
* Rename “Using Actual” to “A Tour of Actual”
* Expand “Getting Started” by default
* Move “how it works” to the heading of the Budgeting section
* more changes
* polish styles of section headers
* Move old homepage to the start of the tour, add a new one
* A few updates to project-layout.md, remove mobile package
* Clarify that you can use a local server with preview builds
* A couple of tweaks to the Windows article
* Clarify the installation docs
* Fix some issues on the sync page
* Centralize the contact info into one page
* Fix homepage link
* Fix broken links on installation page
* Cleared Rules example
* Update docs/Budgeting/rules/rules-custom.md
Thanks!
Co-authored-by: Jed Fox <git@jedfox.com>
* verbage updates
* one more
Co-authored-by: Jed Fox <git@jedfox.com>
| [dictionary.txt](dictionary.txt) | Replacement dictionary (creating this file will override the default dictionary) | one word per line | [dictionary](https://github.com/check-spelling/check-spelling/wiki/Configuration#dictionary) |
| [allow.txt](allow.txt) | Add words to the dictionary | one word per line (only letters and `'`s allowed) | [allow](https://github.com/check-spelling/check-spelling/wiki/Configuration#allow) |
| [reject.txt](reject.txt) | Remove words from the dictionary (after allow) | grep pattern matching whole dictionary words | [reject](https://github.com/check-spelling/check-spelling/wiki/Configuration-Examples%3A-reject) |
| [only.txt](only.txt) | Only check matching files (applied after excludes) | perl regular expression | [only](https://github.com/check-spelling/check-spelling/wiki/Configuration-Examples%3A-only) |
| [patterns.txt](patterns.txt) | Patterns to ignore from checked lines | perl regular expression (order matters, first match wins) | [patterns](https://github.com/check-spelling/check-spelling/wiki/Configuration-Examples%3A-patterns) |
| [candidate.patterns](candidate.patterns) | Patterns that might be worth adding to [patterns.txt](patterns.txt) | perl regular expression with optional comment block introductions (all matches will be suggested) | [candidates](https://github.com/check-spelling/check-spelling/wiki/Feature:-Suggest-patterns) |
| [line_forbidden.patterns](line_forbidden.patterns) | Patterns to flag in checked lines | perl regular expression (order matters, first match wins) | [patterns](https://github.com/check-spelling/check-spelling/wiki/Configuration-Examples%3A-patterns) |
| [expect.txt](expect.txt) | Expected words that aren't in the dictionary | one word per line (sorted, alphabetically) | [expect](https://github.com/check-spelling/check-spelling/wiki/Configuration#expect) |
| [advice.md](advice.md) | Supplement for GitHub comment when unrecognized words are found | GitHub Markdown | [advice](https://github.com/check-spelling/check-spelling/wiki/Configuration-Examples%3A-advice) |
Note: you can replace any of these files with a directory by the same name (minus the suffix)
and then include multiple files inside that directory (with that suffix) to merge multiple files together.
<!-- See https://github.com/check-spelling/check-spelling/wiki/Configuration-Examples%3A-advice --> <!-- markdownlint-disable MD033 MD041 -->
<details>
<summary>If the flagged items are :exploding_head: false positives</summary>
If items relate to a ...
- binary file (or some other file you wouldn't want to check at all).
Please add a file path to the `excludes.txt` file matching the containing file.
File paths are Perl 5 Regular Expressions - you can [test](https://www.regexplanet.com/advanced/perl/) yours before committing to verify it will match your files.
`^` refers to the file's path from the root of the repository, so `^README\.md$` would exclude [README.md](../tree/HEAD/README.md) (on whichever branch you're using).
- well-formed pattern.
If you can write a [pattern](https://github.com/check-spelling/check-spelling/wiki/Configuration-Examples:-patterns) that would match it,
try adding it to the `patterns.txt` file.
Patterns are Perl 5 Regular Expressions - you can [test](https://www.regexplanet.com/advanced/perl/) yours before committing to verify it will match your lines.
stale-pr-message: ':wave:Hi! It looks like this PR has not had any changes for a week now. Would you like someone to review this PR? If so - please remove the "[WIP]" prefix from the PR title. That will let the community know that this PR is open for a review.'
# AGENTS.md - Guide for AI Agents Working with Actual Budget
This guide provides comprehensive information for AI agents (like Cursor) working with the Actual Budget codebase.
## Project Overview
**Actual Budget** is a local-first personal finance tool written in TypeScript/JavaScript. It's 100% free and open-source with synchronization capabilities across devices.
- **Community Docs**: https://github.com/actualbudget/actual/tree/master/packages/docs or https://actualbudget.org/docs
- **License**: MIT
- **Primary Language**: TypeScript (with React)
- **Build System**: Yarn 4 workspaces (monorepo)
## Quick Start Commands
### Essential Commands (Run from Root)
```bash
# Type checking (ALWAYS run before committing)
yarn typecheck
# Linting and formatting (with auto-fix)
yarn lint:fix
# Run all tests
yarn test
# Start development server (browser)
yarn start
# Start with sync server
yarn start:server-dev
# Start desktop app development
yarn start:desktop
```
### Important Rules
- **ALWAYS run yarn commands from the root directory** - never run them in child workspaces
- Use `yarn workspace <workspace-name> run <command>` for workspace-specific tasks
- Tests run once and exit by default (using `vitest --run`)
### Task Orchestration with Lage
The project uses **[lage](https://microsoft.github.io/lage/)** (a task runner for JavaScript monorepos) to efficiently run tests and other tasks across multiple workspaces:
- **Parallel execution**: Runs tests in parallel across workspaces for faster feedback
- **Smart caching**: Caches test results to skip unchanged packages (cached in `.lage/` directory)
- **Dependency awareness**: Understands workspace dependencies and execution order
- **Continues on error**: Uses `--continue` flag to run all packages even if one fails
**Lage Commands:**
```bash
# Run all tests across all packages
yarn test# Equivalent to: lage test --continue
# Run tests without cache (for debugging/CI)
yarn test:debug # Equivalent to: lage test --no-cache --continue
```
Configuration is in `lage.config.js` at the project root.
## Architecture & Package Structure
### Core Packages
#### 1. **loot-core** (`packages/loot-core/`)
The core application logic that runs on any platform.
- Business logic, database operations, and calculations
- Platform-agnostic code
- Exports for both browser and node environments
- Test commands:
```bash
# Run all loot-core tests
yarn workspace loot-core run test
# Or run tests across all packages using lage
yarn test
```
#### 2. **desktop-client** (`packages/desktop-client/` - aliased as `@actual-app/web`)
The React-based UI for web and desktop.
- React components using functional programming patterns
- **Feature Requests**: Label "needs votes" sorted by reactions
## Code Quality Checklist
Before committing changes, ensure:
- [ ] `yarn typecheck` passes
- [ ] `yarn lint:fix` has been run
- [ ] Relevant tests pass
- [ ] No new console.\* usage (use logger)
- [ ] User-facing strings are translated
- [ ] Prefer `type` over `interface`
- [ ] Named exports used (not default exports)
- [ ] Imports are properly ordered
- [ ] Platform-specific code uses proper exports
- [ ] No unnecessary type assertions
## Pull Request Guidelines
When creating pull requests:
- **AI-Generated PRs**: If you create a PR using AI assistance, add the **"AI generated"** label to the pull request. This helps maintainers understand the nature of the contribution.
## Performance Considerations
- **Bundle Size**: Check with rollup-plugin-visualizer
- **Type Checking**: Uses incremental compilation
- **Testing**: Tests run in parallel by default
- **Linting**: ESLint caches results for faster subsequent runs
## Workspace Commands Reference
```bash
# List all workspaces
yarn workspaces list
# Run command in specific workspace
yarn workspace <workspace-name> run <command>
# Run command in all workspaces
yarn workspaces foreach --all run <command>
# Install production dependencies only (for server deployment)
yarn install:server
```
## Environment Requirements
- **Node.js**: >=20
- **Yarn**: ^4.9.1 (managed by packageManager field)
- **Browser Targets**: Electron >= 35.0, modern browsers (see browserslist)
## Migration Notes
The codebase is actively being migrated:
- **JavaScript → TypeScript**: sync-server is in progress
Some files were not shown because too many files have changed in this diff
Show More
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.