Tweet
I am building a SaaS, and apparently I need to get much better at #buildinpublic. Business owners on @WaveHQ, check out our integrated time tracking tool coming end of Q3 this year!
getmarshal.app
#Bookkeeping #Accounting #SmallBusiness
Day 69. Finally resolved the db problems. To kickstart marketing I need a landing page. Though Im mostly a backend dev, I'll try next js. I want to also have a dashboard for managing the user's companies, API keys etc. @100dayscode #API #Bookkeeping #buildinpublic #indiehackers
Day 68. My first snag. I'd chosen @supabase for db, but while I'm only in beta a whole schema is just gone from the FE! Support would likely be great if I was paying, but this error is a bit egregious for me. Back to shopping I guess @100dayscode #API #Bookkeeping #buildinpublic
Day 67. After spending some time attempting to get some beta testers, I realized that an API without a landing page just won't cut it. So that's what I'm working on now. @100dayscode #API #Bookkeeping #buildinpublic
Created Bills to Pay + reports section involving (Part-3):
1. Balance Sheet with Payables, other liabilities, and
2. Purchases in NotionBooks

(bookkeeping for businesses developed in @NotionHQ).

#buildinpublic #Notion #notiontwt #business #accounting #bookkeeping
Created Invoicing + reports section involving (Part-2):

1. Balance Sheet with Receivables, Bank, and
2. Sales in NotionBooks

(bookkeeping for small businesses developed in @NotionHQ).

#buildinpublic , #Notion ,#notiontwt ,#business #Accounting #bookkeeping #Finance
I am working on building a complete bookkeeping solution for businesses in @NotionHQ.

It's NotionBooks.

Aim:

1. Revenue.
2. Expenses.
3. Banking statements.
4. Stock Reports.
5. Financial Reports (B/S, P&L, C/F).

#buildinpublic, #notion, #bookkeeping, #business, #template
Day 66. Finally done with all the logging setup. Now gearing up to getting some beta testers to give the app a spin. Really hoping to get enough engagement to determine some product-market fit if any :) @100dayscode #API #Bookkeeping #buildinpublic
Day 65. Finished the setup for warning loglevel, worked on emailing for error loglevel exceptions. Hoping to finish this tomorrow. @100dayscode #API #Bookkeeping #buildinpublic
Day 64. Spent the day setting up Exceptions logs with log levels: handled Ex-> Warning, unhandled Ex -> Error, system Ex -> critical. Warnings go to papertrail, errors are emailed and criticals go to slack. Thus managing info overload @100dayscode #API #Bookkeeping #buildinpublic
Day 63. The docs were taking too many of my 100 days, so I took a hiatus to finish them. Now that's done, I'm looking for logging storage options before for looking for beta testers. So far @papertrailapp is looking pretty good @100dayscode #API #Bookkeeping #buildinpublic
Day 62. All done with the Categories cookbook. As I write about what the app currently does, I keep getting ideas on what else it could do and its a real struggle not to ditch the docs and extend it. Anyone else had this problem? @100dayscode #API #Bookkeeping #buildinpublic
Day 61. Completed the Balances cookbook. Tomorrow I'll start working on the Categories section.
@100dayscode
#API #Bookkeeping #buildinpublic
Day 60. Completed the Accounts cookbook. Mostly covering the most straightforward scenarios, I expect to add more based on feedback from beta testers. Tomorrow I'll start working on the Balances cookbook.
@100dayscode
#API #Bookkeeping #buildinpublic
Day 59. Spent the day setting up the structure of the cookbooks. Decided to go with a Problem ⇒ Solution model. I'll begin adding some actual scenarios next week, starting with Accounts @100dayscode #API #Bookkeeping #buildinpublic
Day 59. Finalized updating the API reference documentation with the missing endpoints. Now I can start writing specific scenarios in the cookbook section of the docs. @100dayscode #API #Bookkeeping #buildinpublic
Day 58. With the Transaction Assignments, the basic documentation is finished. I was about to start on the cookbook section when I realized some areas are missing from the API reference itself. So I spent the day filling these gaps. @100dayscode #API #Bookkeeping #buildinpublic
Day 57. Didn't actually get too much done today, but at least I finished the documentation for Transaction Assignments. Perhaps I'll get more done tomorrow @100dayscode #API #Bookkeeping #buildinpublic
Day 56. Finished the documentation on Taxes Discounts. These two Resources are not only similar in structure but also intimately related. They will therefore also feature prominently in the cookbook section. @100dayscode #API #Bookkeeping #buildinpublic
Day 55. Worked on and completed the Line Items docs. Like Transactions, Line Items are a key part of how the system functions so I'll add more details and examples in the cookbook section. @100dayscode #API #Bookkeeping #buildinpublic
Day 49. After a short break for the holidays, I'm back to work writing documentation for the microbooks API: Today I'm working on the Recycle Bin. @100dayscode #API #Bookkeeping #buildinpublic
Day 50: Being away for the long holiday, @supabase wisely paused the db instance to save resources. The app was thus down and I didnt know. So today I wrote a small script to call a healthcheck endpoint once a day to avoid this. @100dayscode #API #Bookkeeping #buildinpublic
Day 51. Wow, already past the halfway point, time really does fly. Today I got done with Account Categories, and that's the end of the easy part of the docs. Tomorrow I'll start on the first of the complex stuff, Transactions @100dayscode #API #Bookkeeping #buildinpublic
Day 52. Halfway done with the Transactions docs. Struggled a bit deciding how much detail to include since this Resource is one of the more vital parts of the whole system. Looking forward to feedback from devs during the beta test @100dayscode #API #Bookkeeping #buildinpublic
Day 53. While working on some scenarios with the Transactions, I decided to add short descriptions of each type for non-accounting devs. While at it, I added descriptions of the Account resource types as well @100dayscode #API #Bookkeeping #buildinpublic
Day 54. Finally completed Transaction docs. Tried to keep to the basics and only describe the functionality of the endpoints, I'll add more details and exotic scenarios in the How-To guides. @100dayscode #API #Bookkeeping #buildinpublic
Official Receipt printing for CAS accredited accounts are now live!

Let us know of you need help with the BIR requirements and we're more than happy to help.

#BIRCompliant #SaaS #accounting #Bookkeeping #SmallBusiness
Day 48. Completed the Exchange Rates and Reporting Period How To Pages. Tomorrow I'll start working on Balances, and possibly also work on the Recycle Bin. @100dayscode #API #Bookkeeping #buildinpublic microbooks.io
Day 47. Fixed all tests that were affected by the change in the Exchange Rate model. Now I can get back to writing the documentation of the API. @100dayscode #API #Bookkeeping #buildinpublic
All the learnings and failures we experienced translated to what Oojeema is today.
#buildinpublic #SaaS #bookkeeping #Accounting
Day 46. Finally finished the tests for the Exchange Rates Overlapping, but the model's factory is used so much that I spent the day refactoring the other tests to accommodate the new restrictions. @100dayscode #API #Bookkeeping #buildinpublic
Day 45. While writing the docs for Exchange Rates I realized that the validity periods for rates of a Currency should not overlap. So I spent the day writing the code and tests to cover the case. @100dayscode #API #Bookkeeping #buildinpublic
Day 44. Nothing much going on, wrote some more documentation. Hoping to finish the first draft within a week or so, then I can start thinking about marketing the MVP to beta testers. @100dayscode #API #Bookkeeping #buildinpublic
Day 43. Finally, the API reference docs are live!! 🙌 Feel free to take a look at documenter.getpostman.com/view/14650328/… and let me know what you think. Now I'll concentrate on finalizing the general docs at located at microbooks.io @100dayscode #API #Bookkeeping #buildinpublic
Day 42. Figured I'd host the non reference docs using @Netlify, but ran into some issues about custom domains. I'll try and solve those tomorrow then get back to postman. @100dayscode #API #Bookkeeping #buildinpublic
Day 41. Database all set up and API is responding nicely to requests. Time to register a domain. I chose microbooks.io and used @Namecheap to register it. I'll publish the Postman docs as soon as the domain propagates. @100dayscode #API #Bookkeeping #buildinpublic
Day 40. As promised, spent the day comparing postgres cloud providers. Selected supabase.com because 1. Its OSS which is awesome and 2. The extra stuff that comes out of the box are mind-blowing. #buildinpublic @100dayscode #API #Bookkeeping @supabase @madewifsupabase
Day 39. I finally settled on upstash.com which has a free tier thats perfect for testing. This got me thinking about outsourcing the db too since persisting data in a container is a bad idea. I'll look around on Monday. #buildinpublic @100dayscode #API #Bookkeeping
Day 38. Finally got docker-compose and git done. But then encountered the first problem: Kafka is such a memory hog it can't run on the tiny EC2 instance I'm using to test. Seems I'll have to outsource this part of the infra. #buildinpublic @100dayscode #API #Bookkeeping
Day 37. After comparing a few cloud hosting providers, I decided on aws as I have experience with it and i'm in a hurry. Spent the day setting up docker compose and git on an EC2 instance. It's harder than you'd think. #buildinpublic @100dayscode #API #Bookkeeping #Accounting
Day 36. Just when I was about to publish the docs, I realized that Postman expects the endpoints to be live. So I started laying the groundwork for deploying the app. I'm torn between heroku and aws. #buildinpublic @100dayscode #API #Bookkeeping #Accounting
Day 35. All done with the Reports, and with that all the API reference documentation. I'll spend some time tomorrow proofreading, then I'll publish the docs on postman. #buildinpublic @100dayscode #API #Bookkeeping #Accounting
Day 34. Still on the Assignments, I had to create and test new Transaction endpoints for assignments, both for the assigned and the cleared Transaction. Tomorrow I can start on the last part: Reports #buildinpublic @100dayscode #API #Bookkeeping #Accounting
Day 32 - 33. Took a while, but I finally resolved all the issues between Taxes and Discounts. Next I'll start working on Transaction Assignments. #buildinpublic @100dayscode #API #Bookkeeping #Accounting
Day 31. Run into some problems involving the combination of Taxes and Discounts on the same Line Item. I have several ideas on how to solve them that I'll try tomorrow. #buildinpublic @100dayscode #API #Bookkeeping #Accounting
Day 30. All done with Line Items. Will move on to Taxes and Discounts tomorrow. #buildinpublic @100dayscode #API #Bookkeeping #Accounting
Day 29. Finally done with the Transactions endpoint docs. Started on Line Items, though much of the work was already covered while dealing with the Transactions. They shouldn't take too long to clear. #buildinpublic @100dayscode #API #Bookkeeping #Accounting
Day 27 - 28. While working on Transactions and Line Items, had to involve Taxes and Discounts since they are all interconnected. Deeper and deeper into the rabbit hole... #buildinpublic @100dayscode #API #Bookkeeping #Accounting
Day 21. After a short break, I'm back to setting up the nginx to work with the backend docker apps. Encountered some difficulty with serving the static files for the html and psd reports, but finally got it. #buildinpublic @100dayscode #API #bookkeeping
Day 17. Done with the auth service lumen app. Found rdkafka, a php extension with a simplified kafka interface and fitted it into the app. Tomorrow I'll install the kafka and start sending some messages. #buildinpublic @100dayscode @MicroSvcArch #Bookkeeping
Day 13. Spent formatting and working on streaming pdf report data as a reposnse. Had to learn quite a bit about content types and the content disposition http header. #buildinpublic, @100dayscode @100daysofcoding #Bookkeeping
Day 12. Html reports completed. Started working on pdf versions. Since reporting is the end goal of any Bookkeeping system, I think these represent the value the product will be offering. #buildinpublic @100dayscode #api #Bookkeeping
Day 8. The tests for the public package were built with sqlite for speed. I chose postgres as the prod db, so I had to adapt the tests and optimise the queries to use pg advanced features to speed them up. #buildinpublic, #Bookkeeping @100dayscode #api
Day 7. Had to extend some of the functionality in the public package, so I copied the source files into the project and spent the day writing unit tests for the extended functionality. #buildinpublic @100dayscode #APIs #Bookkeeping #microservices
I spent day 2 optimising the controllers for the models. The resource methods are identical so I've put them in one controller and use DI to inject each model and its validation rules. Custom methods go into child controllers #buildinpublic #100daysofcoding #api #Bookkeeping
Day 5. Ran the system for the first time. Only a few endpoints mind you, but seeing the work of your hands responding to requests makes the effort is totally worth it. Major motivation boost right there! #buildinpublic @100dayscode #Bookkeeping #sidehustle