Welcome to Create Ace App ✨

βœ… State saved through refresh!βœ… API calls, anchors & redirects are typesafe!βœ… State saved while offline!
πŸ’Έ Total Balance
Loading...
πŸ“‰ Monthly Expenses
Loading...
πŸ“ˆ Monthly Income
Loading...

🍰 Categories

πŸ“† Transactions

πŸ€“ Markdown Example

This SEO friendly markdown ❀️ aims to briefly summarize what’s included with Create Ace App!

βš™οΈ General

  1. Create Ace App can be installed as a Desktop application βœ… Create Ace App

🧠 State

  1. State saved through refresh & while offline βœ…
  2. On page load, static content is available immediately & dynamic state is streamed in βœ…

πŸ™Œ Autocomplete

  1. Anchors are typesafe βœ…
  2. Redirects are typesafe βœ…
  3. API’s called with typesafe functions βœ…

🧩 Components

  1. Creating & updating charts is easy βœ…
  2. Aria compliant tabs, toasts, tooltips βœ…
  3. Nav animations continue as current page updates βœ…
  4. Tables are filterable, scrollable & sortable βœ…
  5. Smooth list addition animations @ Chat & Fortunes βœ…
  6. SEO Friendly Markdown w/ Code Highlighting, Tabs & Solid component support from a .md file βœ…
// Component that creates this page πŸ™Œ

export default new Route('/')
  .layouts([RootLayout])
  .component(() => {
    const {sync} = useStore()

    apiGetTransactions({ // api's load simultaneously btw ❀️
      queryType: 'stream',
      onSuccess: (d) => sync('transactions', d)
    })

    apiGetFinances({ // on refresh => requests start on the BE πŸ€“
      queryType: 'stream',
      onSuccess(d) {
        sync('financeSummary', d.summary)
        sync('financeCategories', d.categories)
      }
    })

    return <>
      <Title>🏑 Home · Create Ace App</Title>
      <Meta property="og:title" content="🏑 Home · Create Ace App" />
      <Meta property="og:type" content="website" />
      <Meta property="og:url" content={buildOrigin} />
      <Meta property="og:image" content={buildOrigin + '/og/home.webp'} />

      <main class="home">
        <Welcome />

        <section class="summaries">
          <Summary key="balance" label="πŸ’Έ Total Balance"  />
          <Summary key="monthlyExpenses" label="πŸ“‰ Monthly Expenses" />
          <Summary key="monthlyIncome" label="πŸ“ˆ Monthly Income" />
        </section>

        <section class="vizs">
          <Categories />
          <Transactions/>
        </section>

        <MarkdownItStatic content={mdAppInfo} registerHljs={registerHljs} $div={{ class: 'markdown' }} />

        <Nav showRefresh={true} />
      </main>
    </>
  })