<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Tomasz Janczuk</title>
    <description>The latest articles on DEV Community by Tomasz Janczuk (@tjanczuk).</description>
    <link>https://dev.to/tjanczuk</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1216422%2F77d982f4-9c8a-4e11-9009-0bacd54468d9.jpeg</url>
      <title>DEV Community: Tomasz Janczuk</title>
      <link>https://dev.to/tjanczuk</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/tjanczuk"/>
    <language>en</language>
    <item>
      <title>GetGaap - a financial API for your app or spreadsheet</title>
      <dc:creator>Tomasz Janczuk</dc:creator>
      <pubDate>Tue, 09 Apr 2024 18:08:05 +0000</pubDate>
      <link>https://dev.to/tjanczuk/getgaap-a-financial-api-for-your-app-or-spreadsheet-4799</link>
      <guid>https://dev.to/tjanczuk/getgaap-a-financial-api-for-your-app-or-spreadsheet-4799</guid>
      <description>&lt;p&gt;Today, I am launching &lt;a href="https://getgaap.com"&gt;GetGaap&lt;/a&gt;, a financial API for your app or spreadsheet. Using GetGaap, you can access data from the financial reports companies file with the Securities and Exchange Commission (SEC) in the US.&lt;/p&gt;

&lt;p&gt;GetGaap provides access to 100+ million financial facts from 18+ thousand companies filed using forms 10-K, 10-Q, and others, directly from the SEC EDGAR system. You can access quarterly or annual point-in-time data, or a quarterly or annual histogram for a specific metric.&lt;/p&gt;

&lt;p&gt;As an investor or financial researcher, you can import the data directly into a spreadsheet to build financial models, custom indices, or charts.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqa1o5zb2nbic9mwhitt9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqa1o5zb2nbic9mwhitt9.png" alt="Using GetGaap from Google Sheets" width="800" height="635"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;As a developer, you can access the financial data using convenient HTTP APIs serving JSON or CSV. For advanced use cases, GetGaap also supports SQL access.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbmnuwlon0zbtofqz0170.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbmnuwlon0zbtofqz0170.png" alt="Using GetGaap from Node.js" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The best way to get familiar with the platform is to &lt;a href="https://getgaap.com/docs/tutorial"&gt;run through the three-minute tutorial&lt;/a&gt; to build your first financial chart in Google Sheets.&lt;/p&gt;

&lt;h3&gt;
  
  
  How does GetGaap work?
&lt;/h3&gt;

&lt;p&gt;The &lt;a href="https://www.sec.gov/"&gt;Securities and Exchange Commission&lt;/a&gt; (SEC) operates the &lt;a href="https://www.sec.gov/edgar/search-and-access"&gt;SEC EDGAR&lt;/a&gt; system that allows companies to file their 10-K, 10-Q, and other financial statements. SEC is then required by law to make this information available to the general public. It does so by exposing a web interface as well as a set of rudimentary APIs. The APIs satisfy the requirement for public disclosure but are not intended for consumption at scale.&lt;/p&gt;

&lt;p&gt;This is where &lt;a href="https://getgaap.com"&gt;GetGaap&lt;/a&gt; comes in. It provides an API layer on top of the data exposed by SEC EDGAR that is more suitable for direct consumption from apps and spreadsheets.&lt;/p&gt;

&lt;p&gt;This is how GetGaap functions at the high level:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Every night, it imports all financial statements ever filed in SEC EDGAR as one large ZIP file containing &lt;a href="https://www.xbrl.org/"&gt;xBRL&lt;/a&gt; data. This contains 100+ million financial facts from 18+ thousand companies and represents the then-current source of truth.&lt;/li&gt;
&lt;li&gt;The large ZIP file is uploaded to AWS S3.&lt;/li&gt;
&lt;li&gt;Processing of the ZIP file is sharded into 40 chunks, each executed in parallel in AWS Lambda.&lt;/li&gt;
&lt;li&gt;Each shard unzips the relevant portion of the ZIP file, parses the data, and uploads it to Google BigQuery.&lt;/li&gt;
&lt;li&gt;After all the shards have completed processing, certain static aggregates are calculated and stored in AWS S3, and the snapshot of all the data is "committed" as current.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;From there, the &lt;a href="https://getgaap.com/docs"&gt;HTTP API&lt;/a&gt; exposed by GetGaap runs queries in BigQuery in response to data requests.&lt;/p&gt;

&lt;p&gt;While this may sound like a system with a lot of moving parts, its implementation was hugely accelerated by building GetGaap on top of &lt;a href="https://github.com/47chapters/letsgo"&gt;47chapters/letsgo&lt;/a&gt;, an OSS boilerplate architecture for AWS. It comes ready with application components like API, Website, workers, and queues, to cut months of development time.&lt;/p&gt;

&lt;p&gt;Enjoy!&lt;/p&gt;

</description>
      <category>api</category>
      <category>finance</category>
      <category>development</category>
      <category>investment</category>
    </item>
    <item>
      <title>LetsGo - a starter kit for starting startups</title>
      <dc:creator>Tomasz Janczuk</dc:creator>
      <pubDate>Wed, 22 Nov 2023 18:05:15 +0000</pubDate>
      <link>https://dev.to/tjanczuk/letsgo-a-starter-kit-for-starting-startups-1f4p</link>
      <guid>https://dev.to/tjanczuk/letsgo-a-starter-kit-for-starting-startups-1f4p</guid>
      <description>&lt;p&gt;New SaaS businesses cut corners that are hard to fix later. Today I am shipping LetsGo, an open-source project to address this issue: &lt;a href="https://github.com/47chapters/letsgo" rel="noopener noreferrer"&gt;47chapters/letsgo&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;When you start a new SaaS application, you often optimize for the time to market. In the process, many reduce the near-term work while creating technical debt. If your business shows signs of traction, the time comes to address this debt. However, making architectural changes with customers in production is expensive. It is like changing brakes on a running train. At one point, many early-stage SaaS businesses find themselves in a situation where it is hard to make progress and evolve the product.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fypcif1pl5khprt0qqtkm.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fypcif1pl5khprt0qqtkm.png" alt="Technical debt"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The root of the problem is the lack of a proper foundation to build a new SaaS application. On the operations side, AWS provides a fantastic set of building blocks, but you still have to write a lot of code to combine them all together and engineer a proper devops experience. On the product side, many of the SaaS applications solve the same problems over and over:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;marketing site,&lt;/li&gt;
&lt;li&gt;management dashboard,&lt;/li&gt;
&lt;li&gt;HTTP API,&lt;/li&gt;
&lt;li&gt;worker behind a queue,&lt;/li&gt;
&lt;li&gt;database,&lt;/li&gt;
&lt;li&gt;authentication,&lt;/li&gt;
&lt;li&gt;payment processing,&lt;/li&gt;
&lt;li&gt;devops story.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;All of this boilerplate work stands in your way to working on the core product, so it becomes a natural target for cutting corners.&lt;/p&gt;

&lt;p&gt;This is where LetsGo comes in.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;LetsGo provides the architecture and the tooling that will put your startup on a solid foundation from day one.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;It helps you save months of work leading to the launch while allowing you to focus on the essence of your product. The day you let the first customer in, you have no technical debt. As you grow, you can continue focusing your resources on what matters most: your customers and product.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6zcvswfajntlfbzn9wfw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6zcvswfajntlfbzn9wfw.png" alt="LetsGo"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;LetsGo does it by providing a prescriptive architecture implemented with a modern set of technologies and robust operational tooling for managing your app in AWS.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;On day one you start with more than most startups build in the first two years.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;LetsGo gives you:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;An application architecture with a &lt;strong&gt;web&lt;/strong&gt;, &lt;strong&gt;HTTP API&lt;/strong&gt;, &lt;strong&gt;worker&lt;/strong&gt;, and &lt;strong&gt;database&lt;/strong&gt; components, all wired up and ready to go.&lt;/li&gt;
&lt;li&gt;A &lt;strong&gt;devops CLI&lt;/strong&gt; that helps you set up CI/CD and manage several deployments of your app in AWS to help you segregate your &lt;strong&gt;production and development&lt;/strong&gt; workloads or to support &lt;strong&gt;dedicated deployments&lt;/strong&gt; for your customers.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Integration with Auth0&lt;/strong&gt; to authenticate your users and protect your APIs.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Integration with Stripe&lt;/strong&gt; to automate your billing and subscription lifecycle management.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Integration with Slack&lt;/strong&gt; to keep current with new customers signing up and subscriptions being paid.&lt;/li&gt;
&lt;li&gt;A flexible &lt;strong&gt;tenancy and user model&lt;/strong&gt; with membership management and invitation flow.&lt;/li&gt;
&lt;li&gt;A set of &lt;strong&gt;modern yet robust technologies&lt;/strong&gt; including Next.js, Node.js, and Typescript that make your days exciting and the nights boring.&lt;/li&gt;
&lt;li&gt;LetGo is &lt;strong&gt;open source&lt;/strong&gt; under MIT, so there is no vendor lock-in and you can always see what makes it tick.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I want to welcome you to explore how LetsGo can help you at &lt;a href="https://github.com/47chapters/letsgo" rel="noopener noreferrer"&gt;https://github.com/47chapters/letsgo&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Let’s go!&lt;/p&gt;

</description>
      <category>devops</category>
      <category>aws</category>
      <category>opensource</category>
      <category>javascript</category>
    </item>
  </channel>
</rss>
