Skip to content
/ web-starter Public template

A web-starter with e2e type-safety, an Expo application and a Golang API with hexagonal architecture

Notifications You must be signed in to change notification settings

arthur-fontaine/web-starter

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Web Starter

A web-starter with e2e type-safety, an Expo application, and a Golang API with hexagonal architecture.

First Steps

  1. Clone the Repository

    git clone https://github.com/arthur-fontaine/web-starter.git
    cd web-starter
    rm -rf .git
    
  2. Replace Project Name Globally replace the string webstarter with your project name.

  3. Generate Initial Setup

    moon :generate
    

What's Included

Project Structure

  • Source Directory: src
    • File-based Routing: src/app (Using Expo Router)
    • Feature-based Organization: src/features
      • Components: src/features/xxx/components
      • Hooks: src/features/xxx/hooks
      • Main Page: src/features/xxx/xxx-page.tsx
    • Shared Code: src/shared (e.g., hooks, components, etc.)
  • Main API Code: cmd/server/main.go (Initializes the API and handles dependency injection)
  • Database Schema: db/schema.prisma
  • Bob Generator Configuration: db/bobgen.yaml
  • Domain Entities: internal/domain/xxx/entity.go
  • Repositories: internal/domain/xxx/repository.go
  • Repository Implementations: internal/repository
  • Service Implementations: internal/usecase
  • Service Definitions: proto/xxx/xxx.proto
  • Docker Configuration: docker-compose.yaml
  • Build Configuration: Dockerfile
  • Task Definitions: moon.yml
  • Docker Configuration: docker-compose.yaml

Recommendations

  • Use TanStack Query.
  • Place every query inside a hook.
  • Implement Hexagonal Architecture.

About

A web-starter with e2e type-safety, an Expo application and a Golang API with hexagonal architecture

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published