Skip to content
ExploreAI toolsArticlesAboutSign in
Submit a resource

Navigation

ExploreAI toolsArticlesAboutSign inSubmit a resource
Back to DevList.appSuprnova Directory Starter Kit: build and ship a production-ready directory with Rust

About DevList.app

DevList.app is a hand-curated directory of software engineering resources. It runs on the Suprnova directory starter, a free, MIT-licensed directory application built on the Suprnova Rust framework, with Vue pages rendered on the server. The starter brings what every directory needs: owner submissions, moderation, search, categories, articles, SEO controls and free or paid publication. DevList.app adds its own features on top.

Here is how to build your own directory from the starter, from an empty folder to a site you can put online.

1. Install the tools

  • Rust 1.94 or newer builds the server and the console commands.
  • Bun installs and builds the frontend.
  • Node 24 runs the page renderer and generates your key.
  • A C toolchain, pkg-config and the OpenSSL headers compile the native libraries. On Debian or Ubuntu: sudo apt install build-essential pkg-config libssl-dev.
  • Git fetches the code.

2. Get the code

git clone https://github.com/eas4ai/suprnova-directory-starter.git my-directory
cd my-directory

3. Configure it

cp .env.example .env
node -e 'const fs=require("node:fs"); const crypto=require("node:crypto"); const p=".env"; fs.writeFileSync(p,fs.readFileSync(p,"utf8").replace(/^APP_KEY=.*$/m,"APP_KEY="+crypto.randomBytes(32).toString("base64url")))'

The second command writes a random APP_KEY into .env. The key protects sessions and saved payment settings: keep it safe, and never change it on a live site.

Open .env and give your directory a name with APP_NAME and a one-sentence SITE_DESCRIPTION, which search results and social previews show. Leave APP_URL at http://localhost:8765 for now. The database is SQLite in database.db, so there is no database server to run.

4. Build it

cargo build --locked --bins
cd frontend
bun install --frozen-lockfile
bun run build
bun run build:ssr
cd ..
cargo run --locked --bin directory -- migrate

The first build takes a few minutes while Cargo compiles the dependencies. You get two programs: directory, the web server, and console, for one-off commands. migrate creates the tables; run it again after an update and it applies only what is new.

5. Run it

The site runs as three processes. Start each in its own terminal, from the project folder:

cd frontend && bun run dev
node --env-file=.env frontend/bootstrap/ssr/ssr.js
cargo run --locked --bin directory -- serve --no-migrate

The first is Vite, which serves the frontend while you work on it. The second renders the public pages on the server, so visitors and search engines get the full page before any script runs. The third is the application. Open localhost:8765: the directory is there, empty.

6. Catch the email

Creating an account sends a verification link, and .env sends mail to a local catcher on port 1025. Run one, for example Mailpit:

docker run --rm -p 1025:1025 -p 8025:8025 axllent/mailpit

Its inbox is at localhost:8025.

7. Fill it and take charge

cargo run --locked --bin console -- directory:categories

This creates the starter's categories. To try a full directory first, directory:demo adds demo listings and articles; keep those in a demonstration copy, not in the directory you will publish.

Register at /register, open the verification link from the mail catcher, and find your account ID on Your account. Then make yourself the administrator, with your own ID:

cargo run --locked --bin console -- admin:access grant --user-id 1

Administration now appears in the menu. A new directory has no publishing plan yet, so create one: open Publishing plans, choose New plan, give it the identifier free and a name, pick the billing type Free with an amount of 0, tick Offer this plan to owners and choose Create plan. Then submit a listing from Your listings, approve it in Listing reviews, choose the free plan, and it is public.

8. Make it yours

SITE_THEME picks a color preset (zinc, blue, indigo, violet, emerald, teal, rose or orange); leave it blank and SITE_ACCENT sets your own accent color. SITE_LOGO_URL points at your logo. The pages are Vue components in frontend/src/pages, so everything else is yours to change.

9. Put it online

In production, set APP_ENV=production, APP_DEBUG=false, your real APP_URL, SESSION_SECURE=true and SESSION_COOKIE_PREFIX=__Host-; keep the database and DIRECTORY_MEDIA_ROOT outside the release folder; and send mail through a real SMTP relay with your own sender. Build the release, run migrate once, then keep the application and the page renderer running under a supervisor such as systemd, behind a reverse proxy that serves HTTPS. Back up the database, the media folder and the key together.

DevList.app runs exactly this, packed into one container image with its database on a persistent volume.

Questions about DevList.app go to our support tracker.

Markdown

Every useful resource in one place. For a brighter builder tomorrow.

Directory

ExploreAI toolsAgent frameworksCoding agentsInference

Publish

Submit a resourceYour listings

Read

AboutArticlesRSS feedSitemap
© 2026 DevList.app · Curated developer resourcesListings describe and link to resources. No code is hosted here.
PrivacyTerms
EAS4AIEngineered Automated Systems for Artificial IntelligenceSuprnovaBuilt with SuprnovaSuprnova Rust application framework

Cookies

We use necessary cookies to run the site. Measurement and marketing are optional; neither is used today. Privacy policy