Show HN: HCB Mobile – financial app built by 17 y/o, processing $6M/month
Posted by mohamad08 7 days ago
Hey everyone! I just built a mobile app using Expo (React Native) for a platform that moves $6M/month. It’s a neobank used by 6,500+ nonprofit organizations across the world.
One of my biggest challenges, while juggling being a full-time student, was getting permission from Apple/Google to use advanced native features such as Tap to Pay (for in-person donations) and Push Provisioning (for adding your card to your digital wallet). It was months of back-and-forth emails, test case recordings, and also compliance checks.
Even after securing Apple/Google’s permission, any minor fix required publishing a new build, which was time-consuming. After dealing with this for a while, I adopted the idea of “over the air updates” using Expo’s EAS update service. This allowed me to remotely trigger updates without needing a new app build.
The 250 hours I spent building this app were an INSANE learning experience, but it was also a whole lot of fun. Give the app a try, and I’d love any feedback you have on it!
btw, back in March, we open-sourced this nonprofit neobank on GitHub. https://news.ycombinator.com/item?id=43519802
Comments
Comment by KenSF 4 days ago
https://github.com/hackclub/hcb
Excellent work on the mobile app though I would wonder, since HCB runs on Hotwire, why it was not written as a Hotwire Native app which would leverage the existing Rails Hotwire app and not require a complete rewrite?
Comment by mohamad08 4 days ago
Both are 2 completely valid and separate paths you could take when building an app and I'd actually be curious what'd HCB Mobile look like if we did use Hotwire Native.
Comment by sailfast 4 days ago
Great work! Keep building OP!
Comment by indigodaddy 4 days ago
Comment by Neywiny 4 days ago
Comment by kbar13 4 days ago
Comment by jeswin 4 days ago
Comment by dang 4 days ago
Comment by mandeepj 4 days ago
OpenAI’s executive claiming - made one of the top visited websites :-)
Comment by cirrus3 4 days ago
I get that you want to be "open", but is everyone involved in these transactions ok with them being shared? Even if they are, this doesn't seem like a good idea security wise. I see partial account numbers and other IDs/numbers that I assume you'd prefer not be public, regardless of how insensitive they may seem now.
EXPENSIFY, INC. VALIDATION XXXXXX5987 THE HACK FOUNDATION +$0.89
FRONTING $10,000 TO CHRIS WALKER FOR GITHUB GRANTS MADE FROM PERSONAL ACCOUNT -$10,000.00
CHECK TO LACHLAN CAMPBELL +$800.00
Transfer to Emma's Earnings -$1,923.08
Comment by garyhtou 4 days ago
You've found an optional feature called Transparency Mode!
I admit, this is A LOT of information being made accessible. We at Hack Club (the nonprofit organization behind HCB, and the owner of the transactions above) have chosen to make our finances publicly available on the internet. You can read more about it here: https://blog.hcb.hackclub.com/posts/transparent-finances-opt...
That link (https://hcb.hackclub.com/hq/transactions) shows our donations and spending down to the cent since we believe donors deserve to know what their contributions are funding. As a nonprofit, you can talk about what you’re spending money on, but transparency in every transaction builds trust for supporters. This level of transparency is definitely atypical, and I can see why it may raise concerns.
Other organizations using HCB (such as Reboot) can choose to enable this feature too (it's off by default), and they're briefed on the potential risks and level of exposure to decide whether it's right for their organization/team. HCB supports 6.5k nonprofits, and roughly 64% of organizations have chosen to enable this feature.
> I see partial account numbers and other IDs/numbers that I assume you'd prefer not be public, regardless of how insensitive they may seem now.
> EXPENSIFY, INC. VALIDATION XXXXXX5987 THE HACK FOUNDATION +$0.89
Good catch! Thanks for flagging that verification deposit. I've pushed a fix here: https://github.com/hackclub/hcb/pull/12336
As for the account numbers (e.g. XXXXXX5987) visible in some transactions, these are our own defunct operating accounts, and we're aware they're out there on the internet. We have a new way of managing account numbers via Column.com, so these older transactions are less of a concern for me.
I very much appreciate you bringing these to my attention! We're always looking to improve, so I'd love to hear if you find anything else.
Comment by yangikan 4 days ago
Not sure if all the organizations using their software know this.
Comment by luke-stanley 4 days ago
Comment by galaxy_gas 4 days ago
The numbers and amounts used for account validations and adding it to be able to pull or push money . Should not be shown public..
Comment by skylurk 4 days ago
Did it help to be a non-profit?
Comment by mohamad08 4 days ago
Comment by VoidWhisperer 4 days ago
Comment by nxor 3 days ago
Comment by necovek 4 days ago
How are you ensuring the application will remain maintainable in the future, you are not breaking existing stuff and integration with the actual platform is always up-to-date?
In short, what's the testing strategy for something that claims to deal with $6M a month?
If there is none, you likely want to read up a bit on things like Testing Pyramid, automated test strategies (unit-, integration- and end-to-end testing).
Comment by riffic 4 days ago
Comment by whynotmaybe 4 days ago
Comment by rahimnathwani 4 days ago
I'm curious whether you were able to build the app using backend APIs that were already built, or whether building this app created new requirements for those APIs?
Comment by mohamad08 4 days ago
I actually did have to end up creating most of the backend APIs myself too or with the help of fellow engineers at HCB! What I like about HCB Mobile is that I'm not only creating a mobile app but also expanding our API infrastructure to allow for future integration with our platform.
Comment by rahimnathwani 4 days ago
My son is 9yo and loves to make little animations in Scratch. He recently started to learn a bit of Python (just the syntax so far, no projects).
I wonder whether you can share anything about your journey, especially if you have any tips for the stage my son is at.
Comment by mohamad08 4 days ago
Comment by brahbrahbat 4 days ago
Comment by mrb 4 days ago
Comment by daredoes 4 days ago
Comment by miroljub 4 days ago
We should judge software by the quality, not by authors age.
Comment by dang 4 days ago
Comment by NaOH 4 days ago
Bonus points for the wordplay.
Comment by pinkmuffinere 4 days ago
Comment by trollbridge 4 days ago
Comment by rvz 4 days ago
It is a deliberate advertisement to VCs to find "the next Mark Zuckerberg" which the entire point is that there is only one.
For every 1,000+ startups there is exactly only *one* exceptional founder.
Comment by recursive 4 days ago
Comment by Cyao 4 days ago
Comment by debo_ 4 days ago
Comment by supportengineer 4 days ago
Comment by mohamad08 4 days ago
Comment by DANmode 4 days ago
Comment by nxor 3 days ago
Comment by dang 4 days ago
Comment by baranul 3 days ago
Examples:
[1] https://news.ycombinator.com/item?id=46177518
Comment by aw1621107 3 days ago
That being said, one reason a domain gets banned is when they are spam or consistently a source of off-topic or low-quality articles" [0]. Given the string of [flagged] posts from that domain and the bit of the guidelines that say that original sources are preferred, I wouldn't be too surprised if that particular domain was determined to be ban-worthy, whether manually or automatically.
Of course, I'm a nobody with no special insight into how HN works, so take the above with an appropriately sized grain of salt.
Comment by baranul 1 day ago
Comment by aw1621107 1 day ago
> However, thanks for the response, because concerns over censorship and bans on hacker news should be out in the open.
Maybe, maybe not, but either way hijacking unrelated threads is probably not the way to go about doing such a thing.
Comment by dang 2 days ago
Comment by baranul 1 day ago
Examples of accounts using Hacker News for language and site promotion: 1) AndyKelley (Zig creator and profile promotes full throttle), 2) kristoff_it (profile clearly states he's the VP of Zig Software Foundation), 3) gingerBill (Odin creator), 4) lerno (C3 creator and numerous submissions), pcwalton (many comments about Dlang, however, submissions are very varied), etc...
Speaking of which, the number of Zig and Rust posts and submissions on Hacker News are insane (per search). Absolutely insane! Rust is not even in the top 10 of programming languages, and Zig is the lower part of the top 50 languages. It's to the extent we are left to wonder if Hacker News is financially linked to them or perhaps submissions about languages other than Zig or Rust can be quietly ghosted or treated like a bannable offense. If we submit something other than about Zig or Rust, it should not be interpreted as excessively promoting that language.
I just study about many languages (emphasis on many) and gave some opinions. Have no allegiance to any language organization. Unlike the accounts previously mentioned, who may even advertise their affiliations on their Hacker News profiles. Links I have submitted (which are few), were for and about many different languages, not just only one. Stealth censorship is something dastardly and gives the impression of a hidden approval list, and those languages not on it (and any supporters or submissions) are subject to being censored.
Comment by dang 1 day ago
The stuff about dastardly censorship and financial shenanigans is, forgive me, a bit silly. HN is a big statistical cloud or, if you want to be more vivid about it, a big Rohrschach diagram. People can (and do) imagine any such monsters into it—all I can tell you is if anything so weird is happening, I'm completely unaware of it.
There have always been waves of internet drama about programming languages, going back to Usenet and no doubt earlier than that. Your comment makes me wonder if you might be getting swept along in the latest of those a little bit. If that's not the case, I'm happy to be wrong, but some of the tone of your comment reminds me of how certain language-enthusiast communities enjoy going to battle against each other nowadays. That's fine as a hobby but not on topic for HN.
Comment by nxor 3 days ago
Comment by dang 2 days ago
Comments that try to cast shade on someone else's work or achievements are not good for HN to begin with, and when they're being used to cut down a kid, that's seriously bad.
Comment by arschficknigger 4 days ago
Comment by constantcrying 4 days ago
Comment by E-Reverance 4 days ago
That sounds like a lot of fun and should be a pretty social experience.
Also I'm going to assume his parents are proud, which should put his family at ease.
Comment by simonw 4 days ago
Comment by brailsafe 4 days ago
Comment by constantcrying 4 days ago
Do you genuinely believe that my argument is that OP should have went into a war zone as a soldier instead? If not, why bring that up at all?
Comment by brailsafe 3 days ago
No, but that is true for many 17 year olds, if you have an opportunity, jump on it.
Comment by webdevver 4 days ago
Comment by LoganDark 4 days ago
Be careful with this. If Apple finds out for instance, your app will still be taken down.
Comment by rahimnathwani 4 days ago
Interpreted code may be downloaded to an Application but only so long as such code: (a) does not change the primary purpose of the Application by providing features or functionality that are inconsistent with the intended and advertised purpose of the Application (b) does not bypass signing, sandbox, or other security features of the OS; and (c) for Applications distributed on the App Store, does not create a store or storefront for other Applications.
The app store review guidelines (section 2.5.1) seem more narrow, but I think the above is what's enforced.Comment by LoganDark 4 days ago
Comment by DANmode 4 days ago
Comment by DANmode 4 days ago
Comment by throwaway5465 4 days ago
Given how famed HN is for its pedantry I thought you may find this useful as sooner or later someone in your industry might make a judgement on it.
MM is million, BTW.
Comment by airstrike 4 days ago
Some people do use `MM` but it's far from a standard.
Comment by DANmode 4 days ago
Comment by esafak 4 days ago
Comment by enronmusk 4 days ago
> In accounting
Only in America.
Comment by efilife 4 days ago
also a simple google search disproves what you are saying. M is correct
Comment by ImPostingOnHN 3 days ago
Either OP is incorrect, or not American