Esposter
    Preparing search index...

    Esposter

    Esposter

    Build Status Repository Score Apache-2.0 licensed

    We highly recommend you take a look at the documentation to level up.


    Nuxt

    The Intuitive Web Framework, based on Vue. We highly recommend you take a look at the Nuxt documentation to level up.


    Vue

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web. We highly recommend you take a look at the Vue documentation to level up.


    Vuetify

    🐉 Material Component Framework for Vue. We highly recommend you take a look at the Vuetify documentation to level up.


    Pinia

    🍍 Intuitive, type safe, light and flexible Store for Vue using the composition api with DevTools support. We highly recommend you take a look at the Pinia documentation to level up.


    tRPC

    🧙‍♀️ Move Fast and Break Nothing. End-to-end typesafe APIs made easy. We highly recommend you take a look at the tRPC documentation to level up.


    Zod

    TypeScript-first schema validation with static type inference. We highly recommend you take a look at the Zod documentation to level up.


    Drizzle ORM

    TypeScript ORM that feels like writing SQL. We highly recommend you take a look at the Drizzle ORM documentation to level up.


    PostgreSQL

    PostgreSQL is a powerful, open source object-relational database system with over 35 years of active development that has earned it a strong reputation for reliability, feature robustness, and performance. We highly recommend you take a look at the PostgreSQL documentation to level up.


    Railway

    Infrastructure, Instantly. We highly recommend you take a look at the Railway documentation to level up.


    Namecheap

    ICANN-accredited domain name registrar providing domain name registration and web hosting. We highly recommend you take a look at the Namecheap documentation to level up.

    Name Link
    Vue - Official (Volar) https://marketplace.visualstudio.com/items?itemName=Vue.volar
    ESLint https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint
    Oxfmt - Code formatter https://marketplace.visualstudio.com/items?itemName=oxc.oxc-vscode
    GitLens — Git supercharged https://marketplace.visualstudio.com/items?itemName=eamodio.gitlens
    Powershell https://marketplace.visualstudio.com/items?itemName=ms-vscode.PowerShell
    Material Icon Theme https://marketplace.visualstudio.com/items?itemName=PKief.material-icon-theme
    Better Comments https://marketplace.visualstudio.com/items?itemName=aaron-bond.better-comments

    The projects make use of symlinks in the git project. On Windows, this may not work as expected without extra configuration. To configure git to create symlinks on windows, you need to enable the Windows "Developer Mode" setting, and also set the core.symlinks git feature using either of the following commands:

    # Global setting
    git config --global core.symlinks true

    # Local setting
    git config core.symlinks true

    After applying this setting, you may need to reset your local branch to ensure the files get rewritten as symlinks. Note that this step is destructive and you will want to push any changes you have made prior to resetting your branch.

    git reset --hard
    
    1. Install Node Modules:
    pnpm i
    
    1. Install PostgreSQL + PgAdmin.

    2. Add .env file according to .env.example in packages/app directory.

    Checkout the deployment documentation for more information.

    1. Build the packages to be used by the application:
    pnpm build:packages
    
    1. Change to the app directory:
    cd packages/app
    
    1. Start the development server on http://localhost:3000
    pnpm dev
    

    Build the application for production:

    pnpm build
    

    Locally preview production build:

    pnpm preview
    

    Esposter is a lerna + pnpm workspaces monorepo. Packages are used directly by the nuxt application via workspace:*.

    Workspace dependency graph

    Regenerate this graph from the repo root with:

    pnpm depcruise:graph
    
    Package Description Published
    packages/app Main Nuxt 4 web application — frontend, server routes, tRPC API
    packages/azure-functions Serverless Azure Functions backend — push notifications, webhooks, EventGrid
    packages/azure-mock Mock Azure service classes for local dev and testing
    packages/configuration Shared ESLint, TSConfig, and Rolldown build configurations
    packages/db Database connection utilities for Drizzle ORM, Azure Table, Blob, and WebPubSub
    packages/db-mock In-memory PGlite database factory for unit and integration tests
    packages/db-schema Drizzle ORM schemas and migrations (PostgreSQL source of truth)
    packages/infra Pulumi infrastructure code and migration tools for Azure resources
    packages/parse-tmx Parser for Tiled Map Editor .tmx files
    packages/shared Shared TypeScript types, utilities, and error classes
    packages/vue-phaserjs Phaser 4 game engine integration for Vue 3
    packages/xml2js TypeScript rewrite of xml2js — XML ↔ JSON conversion

    We welcome contributions from everyone and are committed to maintaining a friendly, safe, and welcoming community. Please see our Code of Conduct and Security Policy for more information.

    This project is licensed under the Apache-2.0 license.