DevFestAvatar

July 31, 2026 · View on GitHub

Read this in other languages:
English | Español | Français | Português | Èdè Yorùbá | Deutsch | Türkçe | العربية | हिन्दी | 日本語 | Kiswahili

DevFestAvatar is a lightweight web app for creating DevFest 2026 profile images. Users upload a photo, pick a DevFest frame, then download or share the result. The standard avatar flow runs in the browser; the optional Gemini mode uses Firebase Functions for image editing.

Live app: https://devfestavatar.web.app

DevFestAvatar logo

Features

  • Upload, crop, frame, download, and share DevFest avatars.
  • DevFest 2026 print-artifact inspired interface with light and dark theme support.
  • Responsive layout for phones, tablets, laptops, and large monitors.
  • Optional Gemini image edit flow through Firebase Functions.

Project Structure

public/                 Static web app
public/css/             Split frontend styles
public/js/              Browser-side app logic
functions/              Firebase Functions API

Local Development

Serve the static app:

http-server ./public -p 8081

Open the URL printed by http-server.

Functions

The Firebase function code requires Node.js 22.

cd functions
npm install
npm run serve

Gemini image editing expects:

GEMINI_API_KEY

Firebase deploy loads function environment values from functions/.env. Keep the local GEMINI_API_KEY in that file current before deploying, and never commit the file.

The Gemini implementation is split into small modules under functions/gemini/ for config, validation, prompt text, background loading, and response parsing.

Deployment

Deploy hosting and functions with Firebase CLI:

firebase deploy

Deploy functions only:

cd functions
npm run deploy

Contributing

Contributions are welcome. Keep changes small, test the browser flow on mobile and desktop, and avoid committing generated local-only artifacts.

Full documentation is in the Wiki.