import { z } from 'zod'; import { MetricCard } from '~/app/(marketing)/open/metric-card'; import { SalaryBands } from '~/app/(marketing)/open/salary-bands'; import { CapTable } from './cap-table'; import { FundingRaised } from './funding-raised'; import { GithubMetric } from './gh-metrics'; import { TeamMembers } from './team-members'; export const revalidate = 3600; const ZGithubStatsResponse = z.object({ stargazers_count: z.number(), forks_count: z.number(), open_issues: z.number(), }); const ZMergedPullRequestsResponse = z.object({ total_count: z.number(), }); const ZStargazersLiveResponse = z.record( z.object({ stars: z.number(), forks: z.number(), mergedPRs: z.number(), openIssues: z.number(), }), ); export type StargazersType = z.infer; // const ZOpenPullRequestsResponse = ZMergedPullRequestsResponse; export default async function OpenPage() { const { forks_count: forksCount, open_issues: openIssues, stargazers_count: stargazersCount, } = await fetch('https://api.github.com/repos/documenso/documenso', { headers: { accept: 'application/vnd.github.v3+json', }, }) .then(async (res) => res.json()) .then((res) => ZGithubStatsResponse.parse(res)); const { total_count: mergedPullRequests } = await fetch( 'https://api.github.com/search/issues?q=repo:documenso/documenso/+is:pr+merged:>=2010-01-01&page=0&per_page=1', { headers: { accept: 'application/vnd.github.v3+json', }, }, ) .then(async (res) => res.json()) .then((res) => ZMergedPullRequestsResponse.parse(res)); const STARGAZERS_DATA = await fetch('https://stargrazer-live.onrender.com/api/stats', { headers: { accept: 'application/json', }, }) .then(async (res) => res.json()) .then((res) => ZStargazersLiveResponse.parse(res)); return (

Open Startup

All our metrics, finances, and learnings are public. We believe in transparency and want to share our journey with you. You can read more about why here:{' '} Announcing Open Metrics

Where's the rest?

We're still working on getting all our metrics together. We'll update this page as soon as we have more to share.

); }