Skip to content

jiaweing/townhall

townhall

This project was created with Better-T-Stack, a modern TypeScript stack that combines Next.js, Hono, and more.

Features

  • TypeScript - For type safety and improved developer experience
  • Next.js - Full-stack React framework
  • React Native - Build mobile apps using React
  • Expo - Tools for React Native development
  • TailwindCSS - Utility-first CSS for rapid UI development
  • shadcn/ui - Reusable UI components
  • Hono - Lightweight, performant server framework
  • Bun - Runtime environment
  • Mongoose - TypeScript-first ORM
  • MongoDB - Database engine
  • Authentication - Better-Auth
  • Biome - Linting and formatting
  • Husky - Git hooks for code quality
  • PWA - Progressive Web App support
  • Turborepo - Optimized monorepo build system

Getting Started

First, install the dependencies:

bun install

Database Setup

This project uses MongoDB with Mongoose.

  1. Make sure you have MongoDB set up.

  2. Update your apps/server/.env file with your MongoDB connection URI.

  3. Apply the schema to your database:

bun run db:push

Then, run the development server:

bun run dev

Open http://localhost:3001 in your browser to see the web application. Use the Expo Go app to run the mobile application. The API is running at http://localhost:3000.

Project Structure

townhall/
├── apps/
│   ├── web/         # Frontend application (Next.js)
│   ├── native/      # Mobile application (React Native, Expo)
│   ├── server/      # Backend API (Hono)
│   ├── extension/   # Browser extension
│   └── fumadocs/    # Documentation
├── packages/
│   ├── api/         # API layer / business logic
│   ├── auth/        # Authentication configuration & logic
│   └── db/          # Database schema & queries

Assets

To properly display icons and emojis in the application, you need to download the animated fluent emojis.

  1. Download the asset pack from Animated Fluent Emojis.
  2. Create the directory assets/web/icons in the root of the project if it doesn't exist.
  3. Extract and place the emoji assets into assets/web/icons.

Available Scripts

  • bun run dev: Start all applications in development mode
  • bun run build: Build all applications
  • bun run dev:web: Start only the web application
  • bun run dev:server: Start only the server
  • bun run check-types: Check TypeScript types across all apps
  • bun run dev:native: Start the React Native/Expo development server
  • bun run db:push: Push schema changes to database
  • bun run db:studio: Open database studio UI
  • bun run check: Run Biome formatting and linting
  • cd apps/web && bun run generate-pwa-assets: Generate PWA assets

About

No description, website, or topics provided.

Resources

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages