50
51OpenTownie is built with:
52- React frontend with TypeScript
53- Hono API server backend
54- Tailwind CSS for styling
1import { useEffect, useRef } from 'https://esm.sh/react@18.2.0?dev';
2
3
1- [ ] Give it a tool to make an HTTP request to its own endpoint to test things!
2- [x] Get React Router working on the client & move off localstorage for storing page state
3- [ ] When it hits the max number of steps, detect that and give the user a button (or instructions on how) to get it to continue (neverstew mentioned this)
4- [x] Make it look good
1/** @jsxImportSource https://esm.sh/react@18.2.0?dev */
2import {
3 Outlet,
4 Navigate,
5 useLocation,
6} from "https://esm.sh/react-router@7?dev&deps=react@18.2.0&react-dom@18.2.0";
7import { useAuth } from "../hooks/useAuth.tsx";
8
1/** @jsxImportSource https://esm.sh/react@18.2.0?dev */
2
3export function NotFoundRoute () {
1/** @jsxImportSource https://esm.sh/react@18.2.0?dev */
2
3export function Loading () {
1import { useEffect } from "https://esm.sh/react@18.2.0?dev";
2
3export function useUsageStats (messages: any[], usages: any[]) {
1import { useEffect, useRef } from 'https://esm.sh/react@18.2.0?dev';
2
3
1import { useState, useEffect } from "https://esm.sh/react@18.2.0?dev";
2import { useAuth } from "./useAuth.tsx";
3
1import { useState, useEffect } from "https://esm.sh/react@18.2.0?dev";
2import { useAuth } from "./useAuth.tsx";
3