---
title: oniropolis
canonical: "https://presque.cool/projects/oniropolis/"
description: "Un guide de voyage pour une ville qui n'existe que dans les rêves. Quartiers oniriques, récits étranges — chaque exploration est différente."
---

<div data-lang="fr">

# Oniropolis

**Oniropolis** est un guide de voyage pour une ville qui n'existe pas. Les quartiers sont générés par IA, les récits aussi — chaque visite produit une cité différente, avec sa propre géographie et ses propres histoires.

## Concept

L'idée part d'une question simple : à quoi ressemblerait un guide touristique pour un lieu imaginaire ? Oniropolis génère des quartiers oniriques via GPT-4 — noms, descriptions, ambiances — et les assemble dans une interface de navigation. Pas de carte figée : la ville se réécrit à chaque exploration.

## Fonctionnalités

- **Quartiers générés** : GPT-4 produit la structure, les noms et les récits de chaque quartier
- **Aucune visite identique** : le contenu narratif change à chaque exploration
- **Navigation libre** : on se déplace de quartier en quartier sans parcours imposé
- **Ambiance visuelle** : palette sourde, typographie serrée — l'interface accompagne le ton onirique sans le surligner

## Stack technique

<ul class="tech-stack">
  <li><strong>Astro</strong> — SSG, routing par fichiers</li>
  <li><strong>Preact</strong> + <strong>TypeScript</strong> — Composants interactifs (islands)</li>
  <li><strong>OpenAI API</strong> (GPT-4) — Génération de contenu narratif</li>
  <li><strong>Zustand</strong> — State management</li>
  <li><strong>Tailwind CSS</strong> — Styling</li>
  <li><strong>Lucide</strong> — Icônes</li>
  <li><strong>PWA</strong> via <code>@vite-pwa/astro</code> — Installable, offline</li>
<li><strong>Compression</strong> — Brotli + Gzip sur les assets</li>
<li><strong>CSP</strong> — Content-Security-Policy avec hashes auto-générés</li>
</ul>

## Évolutions

| Date     | Version | Description                                                                |
| -------- | ------- | -------------------------------------------------------------------------- |
| Fév 2024 | 1.0.0   | Version initiale — Exploration de base avec génération de quartiers par IA |
| Mar 2026 | 2.0.0   | Migration Preact + TypeScript                                              |

## Inspiration

L'idée vient d'une fascination ancienne pour les villes imaginaires — Calvino, Borges, les wikis de worldbuilding. Je voulais voir ce que ça donnait de confier la création d'une ville entière à un LLM, puis de la rendre navigable.

</div>

<div data-lang="en">

# Oniropolis

**Oniropolis** is a travel guide for a city that doesn't exist. Neighborhoods are generated by AI, narratives too — each visit produces a different city, with its own geography and its own stories.

## Concept

The idea starts from a simple question: what would a tourist guide for an imaginary place look like? Oniropolis generates dreamlike neighborhoods via GPT-4 — names, descriptions, atmospheres — and assembles them into a browsable interface. No fixed map: the city rewrites itself with every exploration.

## Features

- **Generated neighborhoods**: GPT-4 produces each neighborhood's structure, names, and narratives
- **No two visits alike**: narrative content changes with every exploration
- **Free navigation**: move from neighborhood to neighborhood with no imposed path
- **Visual atmosphere**: muted palette, tight typography — the interface supports the dreamlike tone without overselling it

## Tech stack

<ul class="tech-stack">
  <li><strong>Astro</strong> — SSG, file-based routing</li>
  <li><strong>Preact</strong> + <strong>TypeScript</strong> — Interactive components (islands)</li>
  <li><strong>OpenAI API</strong> (GPT-4) — Narrative content generation</li>
  <li><strong>Zustand</strong> — State management</li>
  <li><strong>Tailwind CSS</strong> — Styling</li>
  <li><strong>Lucide</strong> — Icons</li>
  <li><strong>PWA</strong> via <code>@vite-pwa/astro</code> — Installable, offline</li>
<li><strong>Compression</strong> — Brotli + Gzip on assets</li>
<li><strong>CSP</strong> — Content-Security-Policy with auto-generated hashes</li>
</ul>

## Timeline

| Date     | Version | Description                                                         |
| -------- | ------- | ------------------------------------------------------------------- |
| Feb 2024 | 1.0.0   | Initial version — Basic exploration with AI-generated neighborhoods |
| Mar 2026 | 2.0.0   | Preact + TypeScript migration                                       |

## Inspiration

The idea comes from a long-standing fascination with imaginary cities — Calvino, Borges, worldbuilding wikis. I wanted to see what happens when you hand city creation to an LLM, then make it browsable.

</div>
