Skip to content

About

Los datos de contacto de todos en un solo lugar. Ejemplo abierto de una app en sube.sh

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

Directorio del equipo

Los datos de contacto de todos en un solo lugar.

Dos pantallas: el directorio con buscador, y tu ficha.

Corre en sube, que le pone la base de datos, el dominio, el TLS y el inicio de sesión. La app no trae código de autenticación.

Por qué existe este ejemplo

Es el ejemplo más chico del catálogo y el que mejor muestra dónde termina la plataforma y dónde empieza la app.

La clave primaria es la regla de acceso

export const people = pgTable('people', {
  id: text('id').primaryKey(),   // el id de usuario de la plataforma
  …
})

No hay columna ownerId que comparar, ni un if que revisar. Guardar es un upsert sobre user.id, sacado de la sesión: no existe otra fila que pudieras escribir. La regla no está en el código, está en la forma de los datos, que es el único lugar donde no se olvida.

El nombre está guardado dos veces, y hay que hacerlo

El SDK contesta exactamente una pregunta: quién está mirando esta página ahora. No hay llamada que convierta un id de usuario cualquiera en un nombre. Así que un directorio de veinte personas tiene que guardar esos veinte nombres él mismo.

Se refrescan desde la sesión cada vez que la persona guarda, que es el único momento en que la app se entera. Es duplicación a propósito, y el comentario en src/db/schema.ts dice por qué, para que nadie la "limpie" después.

El directorio no sabe quién es el equipo

La plataforma decide quién puede entrar — por defecto, todo el dominio de correo de quien creó la app — pero no le entrega a la app una lista de personas. Así que el directorio se llena solo: quien nunca lo abre, nunca aparece.

Eso es una limitación real y la página la dice al pie en vez de disimularla. Una app que muestra 12 de 40 personas sin avisar es peor que una que explica por qué.

Lo que la app guarda

Solo lo que la plataforma no sabe: cargo, área, anexo, celular, dónde te ubican y para qué te pueden buscar. Nombre, correo y foto vienen de la cuenta.

Correrlo

npm install
npm run build

Construye sin base de datos. Para verlo con datos hay que desplegarlo:

npm i -g @sube.sh/cli   # o usa npx
sube new "Directorio del equipo"
sube deploy

Estructura

app/page.tsx       el directorio y el buscador
app/yo/page.tsx    mi ficha
src/db/schema.ts   una tabla: people

middleware.ts y next.config.ts los pone la plataforma. AGENTS.md explica las reglas que un asistente de IA debe respetar al modificar esta app.

Licencia

MIT.

About

Los datos de contacto de todos en un solo lugar. Ejemplo abierto de una app en sube.sh

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages