I've had a good experience with Woodpecker CI. I've heard that installation and integration with ForgeJo isn't easy, but I deploy everything to my homelab using Dokku, where I push a Dockerfile, mount a volume (on setup), and it's good to go.
I assume this isn't optimal for a business setup, but for personal projects, I don't miss GitHub Actions at all.
.env files are a different use case than config files.
You can use them together. Config files provide configuration to the application. The config file can read environment variables, so you can deploy the same code across different environments, e.g., your local computer, staging, and production.
Then, each environment will provide system-related configuration, e.g., `DATABASE_URL`.
With this setup, the same code will work on each environment.
Now, .env files should live only on your local machine; on any other environment, they should be set differently, not in files.
The .env file is a convenience, but not the only option for environment variables, nowdays you can use 1Password too.
One of the greatest things of the Vue community is that they are not dogmatic about a technology choice. They welcome everyone, and proof of that is that they are building tooling that benefit everyone not only their community.
So, we can switch over to Vue whenever we want. I personally prefer React and I'm super grateful of Vite and their ecosystem.
I came to reply this. They have been building very cool CLI projects and those projects end up composing new bigger projects. This is their last one (That I know of) which use most of the other projects they created before.
They didn't do it flashy for this project specifically (like Claude Code, which I don't think is flashy at all) but every single one of their other projects are like this.
Additionally, the explanation might work for the exec asking the question, but not for others.
I don't like that executives don't have to put in the effort to communicate their concerns and put pressure on the people who already have the pressure of researching, validating, and presenting the solution.
I'm probably going deeper than I should. Still, if the executive asking the question isn't technical, he could direct the question to the executive who's supposed to have a technical background that earned their position in the company. You know, people making decisions should have an understanding of what they are building/selling.
I think using Aider[1] with Google's models is the closest.
It's my daily driver so far. I switch between the Claude and Gemini models depending on the type of work I'm doing. When I know exactly what I want, I use Claude. When I'm experimenting and discovering, I use Gemini.
I'm looking for a Go (microservices), Python (data engineering), or React position. Most of my expertise is in leading front-end projects, specifically with React.
I've been involved in building teams and modernizing legacy platforms, and most of my work has been with SaaS enterprise applications.
i don't want to be the "get off my lawn" person or "old man yells at cloud," but i couldn't get to what the tool does because the landing page is so overwhelming with colors, the background, the borders, things moving around.
the CTA buttons across the site are inconsistent in shape, form, and color.
the text color in the footer has awful contrast, so it's hard to read.
I don't understand your point. But instead of rationalizing with words, let's put it into practice.
- I receive my paycheck in my bank account.
- I want to budget $800 for groceries every month.
- I have a credit card with a balance of $250.
- I want to know how much I have left; we will have an account named Left to Budget (LTB).
Let's outline them as accounts:
- Bank Account. It's an Asset and has a balance of $0.
- Groceries "category" Account. It's a Liability and has a balance of $0.
- AMEX Account. It's a Liability and has a balance of $250.
- LTB is my income account. It's a Liability (yeah, I know, but stay with me).
When I receive my $1,000.00 paycheck.
- Debits Bank (ASSET) for $1,000.00
- Credits LTB (LIABILITY) for $1,000.00
Balances:
- Bank (ASSET) $1,000.00
- Groceries (LIABILITY) $0.00
- AMEX (LIABILITY) $250.00
- LTB (LIABILITY) $1,000.00
I budget $800 for Groceries for this month.
- Debits LTB (LIABILITY) for $800.
- Credits Groceries (LIABILITY) for $800.
Balances:
- Bank (ASSET) $1,000.00
- Groceries (LIABILITY) $800.00
- AMEX (LIABILITY) $250.00
- LTB (LIABILITY) $200.00
I go to the grocery store and buy Milk for $50 and Bread for $10.
- Credits Bank (ASSET) for $60.00
- Debits Groceries (LIABILITY) for $60.00
Balances:
- Bank (ASSET) $940.00
- Groceries (LIABILITY) $740.00
- AMEX (LIABILITY) $250.00
- LTB (LIABILITY) $200.00
As of now, I effectively know that:
- I have $940 in my bank, but I only have $200 available to spend (LTB).
- I have $740.00 left to spend on Groceries in my Bank.
- If I wanted to pay my Credit Card (AMEX) in full, I couldn't. Even though I have enough money in my Bank, most of it is already allocated to Groceries. BUT I could adjust my budget, like so:
Adjust my Groceries budget by moving $50 back to my LTB, so I can pay my Credit Card in full this month.
- Debit Groceries (LIABILITY) for $50
- Credit LTB (LIABILITY) for $50
Balances:
- Bank (ASSET) $940.00
- Groceries (LIABILITY) $690.00
- AMEX (LIABILITY) $250.00
- LTB (LIABILITY) $250.00
OK, so now I know that:
- I still have $940.00 in my bank.
- If I wanted to pay my Credit Card I can because I have enough in my LTB category.
- I have $690.00 available to spend in Groceries, because I moved $50.00 away.
Now, let's pay my Credit Card.
- Credit Bank (ASSET) $250.00
- Debit AMEX (LIABILITY) $250.00
Balances:
- Bank (ASSET) $690
- Groceries (LIABILITY) $690.00
- AMEX (LIABILITY) $0.00
- LTB (LIABILITY) $0.00
Now the money I have left in the Bank is for Groceries only. If I wanted to spend on something else, I'd have to either:
- Create a new Category and transfer an amount from Groceries, or
- wait for my next paycheck.
--
We were able to manage all this information with only one bank account, but we successfully managed a small budget.
Double-entry is a concept that's not necessarily applied directly to "physical" accounts. We transfer values between accounts even when the money stays where it is.
> - Zero liabilities is not a reasonable goal for most people.
Zero liabilities is not a goal; it's the direction on whether money balance increases or decreases; it's not tied to the money you have or owe. It's a concept or formula rather than a reality.
> - There's an equity account type also. (Also income and expense accounts.)
Equity and expenses are Assets. Income can be an Asset or a Liability, depending on how you want to represent it. For me, it is a liability because I want it to be 0. Even tho, my income account will have money, its representation of Money Left to Budget will be zero because the accounts that transfer value from it will include savings or investing accounts.
This is my mental model and how I built the backend of a budgeting web app.
Two types of accounts:
- assets (you want your balance to be more than 0)
- liabilities (you want your balance to be 0)
Two types of entries:
- debits (increase balances of assets, decrease balances of liabilities)
- credits (increase balances of liabilities, decreases balances of liabilities)
Rules:
- A transaction represents a transfer of value between accounts.
- Every transaction must have at least two entries. The balance of all entries the transaction holds should be 0, i.e., balance = debits - credits.
You don't think about money leaving or entering an account before you nail down those definitions. The account representations can be anything that holds a numeric value, not just money.
You can affect more than two accounts by adding additional entries with the condition of keeping the balance to 0.
I assume this isn't optimal for a business setup, but for personal projects, I don't miss GitHub Actions at all.